> Hello, > > Today appears to be RTL loop optimizer patch day, because here's > another patch... > > The problem here is that variable expansion does not update REG_EQUAL > notes when it performs replacement of the renamed register.
Hehe. or rather REG_EQUAL patch day :) It makes me wonder how much of the REG_EQUAL machinery we stil make good use of. > > I fixed this by using validate_replace_rtx_group(). There is already > code in analyze_insn_to_expand_var() to make sure that the > to-be-replaced register is only used to accumulate into, so I think > that using validate_replace_rtx_group is safe. Could use a 2nd pair of > eyes to make sure, though. > > Tested with a bootstrapped compiler. Test coverage isn't great, > because variable expansion is not enabled by default. Are there particular reasons to not enable it? It seems like usefull optimization. Honza