approaches to carry-flag modelling in RTL
Hans-Peter Nilsson
hp@bitrange.com
Tue Nov 1 02:43:00 GMT 2011
On Mon, 31 Oct 2011, Paulo J. Matos wrote:
> On 31/10/11 05:36, Hans-Peter Nilsson wrote:
> > BTW, I
> > don't think it helps that someone decided the canonical form of
> > a parallel that includes a CC-setter must have the CC-setting
> > *first* (contrasting with the position of clobbers)...
>
> How did you reach this conclusion?
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
More information about the Gcc
mailing list