combine corrupts insns + dumps with insn cost problems

Uros Bizjak ubizjak@gmail.com
Wed Jun 27 22:47:00 GMT 2007


Hello!

> The clobber of the scratch register has disappeared!
>
> A possible clue as to what sets up the failure is that the second
> replacement insn (to replace insn 7)
>
> (set (reg:HI 24)
>     (eq:HI (reg:CCZ_C 13 cc)
>         (const_int 0 [0x0])))
>
> needs to have a clobber added. It really looks like this:
>
> (set (reg:HI 24)
>     (eq:HI (reg:CCZ_C 13 cc)
>         (const_int 0 [0x0])))
> (clobber (reg:CC 13 cc))
>
> Combine knows how to add clobbers to make insns recognizable. I'm guessing
> it accidentally clobbers the original insn in doing so. Where would I look?

Try by tracing through recog_for_combine(), combine.c.

Uros.



More information about the Gcc mailing list