Dong Phuong wrote on 30 September 2008 17:32: > But when I define peepholes to reduce it, there's > nothing change. When I look at the rtl expression, I > see that there something beetween the instruction ADD > and CMP : > > (insn 18 16 19 0x0 (set (reg/v:HI 22) > (plus:HI (reg/v:HI 22) > (const_int 1 [0x1]))) -1 (nil) -----> ADD > (nil)) > > (note 19 18 20 NOTE_INSN_LOOP_CONT) -----> st that I > don't understand
This is documented in the manual (which you really ought to read) alongside all the other note types: http://gcc.gnu.org/onlinedocs/gccint/Insns.html#index-NOTE_005fINSN_005fLOOP_0 05fCONT-2615 > (code_label 20 19 22 5 "" [0 uses]) > > (insn 22 20 23 0x0 (set (cc0) > (compare (reg/v:HI 22) > (const_int 4 [0x4]))) -1 (nil) ------> CMP > (nil)) > > > so does that strange expressions prevent my peepholes > from running ? Yes. > And in my case, what do I have to do ? Nothing. That's not a valid match, because there's a label in-between the two instructions; they can't possibly be combined into one single instruction if there's a branch target in between them. cheers, DaveK -- Can't think of a witty .sigline today....