pub fn fusable(
func: &Func,
insts: &BranchInsts,
names: &mut Interner,
) -> HashMap<Inst, usize>Expand description
The comparisons whose byte only selects in the same block read, each with how many do.
Run before allocation, on the same function moves is later given, for the reason
crate::layout::fusable is: whether anything else reads a register is a question about a
virtual one, and after allocation a register is written many times.
The byte has to be what a select reads as its condition and nothing else. A select that also chose the byte as one of its values would want the byte kept, and so the count of reads has to come out the same as the count of selects that read it as a condition.