I'm defining some peepholes for my machine. But I've got some troubles : I want to use peephole to reduce :
ADD R4, 1 CMP R4, a ------------------> CMPD1 R4, a - 1. The assembly code that cc1.exe generates has two instruction : ADD R4, 1 CMP R4, a 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 (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 ? And in my case, what do I have to do ? If you know why, please help me. Thank you very much.