> I don't think this is not the right fix for the problem. GCSE doesn't handle
> expressions containing hard registers, oprs_unchanged_p should never even
> see expressions involving hard registers.

I was afraid of this one.

> 
> What is the expression that is recorded as anticipated in insn 38? Is it 
> "mho:SI
> 0>>0x3" or "udiv(r159:SI,0xa)" from the REG_EQUAL note?
> 

Instruction 38. 

As far as I can see, a solution is to use a split pattern after register 
allocation to describe the multiplication (now it is done in the expand). 
Another one, is to force the gcse to check the regnotes (REG_EQUAL) rather than 
the instruction itself.

Best,
Claudiu

Reply via email to