On 01/11/11 02:43, Hans-Peter Nilsson wrote:
Not obvious or maybe I was unclear as to what I alluded? In the below insn-bodies, "sub" is the insn that sets cc0 as a side-effect. Supposed canonical form : (parallel [(set cc_reg) (compare ...)) (set destreg) (sub ...))]) and: (parallel [(set destreg) (sub ...)) (clobber cc_reg)]) But IMHO it'd be easier (for most values of "easier") to combine both patterns with that non-existing mechanism (and no, I don't count match_parallel) if we instead canonicalized on the CC_REG set being the same as the clobber position: (parallel [(set destreg) (sub ...)) (set cc_reg) (compare ...))]) with: (parallel [(set destreg) (sub ...)) (clobber cc_reg)]) brgds, H-P
That is very strange because if you look into RX or MN10300, they all have the set REG_CC as the last in the parallel. I wonder if it has anything to do with the fact that in these backends the set of the REG_CC only shows up after reload.
-- PMatos