This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question about merging two instructions.
1. Can you please give me an example of something bad that can happen to
the LHS. Maybe I'm missing something here.
In this case nothing, but if NEW were a subreg, it can change a lot.
3. Isn't it reasonable to expect that every instance on old_rtx will be
replaced by new_rtx even if it can't be simplified?
This is what I understand from the function's documentation.
But actually every expressions that can't be simplified is not replaced.
SET is not an expression, so it is not handled by simplify_replace_rtx.
I agree that it is confusing, that
x = simplify_replace_rtx (a, b, c);
is different from
x = simplify_rtx (replace_rtx (a, b, c));
So maybe all you need is changing the final "return x" to "return
replace_rtx (x, old, new);". I reckon this change would be much cleaner
than handling SET, but I would very much want to see what a GWP person
thinks about this.
Paolo