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: approaches to carry-flag modelling in RTL


Quoting Hans-Peter Nilsson <hp@bitrange.com>:

I came to the somewhat the same conclusion for CRIS where all
insns set condition codes except move to memory and a "add
reg1,reg2" (no immediate operand) and to/from special registers:
there'll one clobbering and one CC_REG-setting pattern plus a
load of others (peephole2's mostly) to get an exact match.

What would help is a kind of iterator that (also) affects the
form of the insn, so you could match the clobbering and the
cc0-setting insn in the same (iterator-using) pattern.

match_parallel is useful for recognizing insns with varying clobbers. Unfortunately, it is absolutely useless when you want a reasonable expander, so then you end up having a separate expander pattern, even if all you want to do is have structure of the patch_parallel without extra clobbers. Repeat for a dozen similar instructions, and it gets really annoying.


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