This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]