This is the mail archive of the gcc-patches@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] |
This is another bug I came across while working on the ARM ldm/stm peephole patch. In loop-invariant.c, we currently replace RTL directly without ensuring that this produces valid insns. As a result, insn patterns that use match_dup to match inputs to outputs can get broken. Fixed by this patch, which uses validate_change instead of directly replacing things. It's slightly convoluted (doing the changes twice) in order to avoid changing anything until the moment we know everything is OK. Tested on arm-eabi{,mthumb}. I'm nearly certain it was also in an i686-linux tree I bootstrapped and tested, but I'll repeat that test to be sure. Ok for 4.6? Bernd
Attachment:
loop-inv.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |