Ifcvt and epilogue insns
Wed May 31 13:32:00 GMT 2000
Ok, I've got the new cond_exec code for the ARM to bootstrap, and I'm now
down to fixing some regressions revealed by the test suite.
Problem no. 1 is that I have an epilogue block that if_convert is trying
to alter with if-case-2. The problem block consists simply of
;; [bb 8] regs live r4, r11, r12, r13
(insn (clobber (reg r0)))
(insn (use (reg r0)))
(jump_insn (unspec_volatile [(return)] 1))
;; regs live r0, r4, r11, r12, r13
cond_exec_process_insns squashes both the clobber and the use insns (even
though conversion of the final jump eventually fails, though I don't think
that is relevant). After squashing, the block fails the life-info checks
because the return register, r0 (which wasn't set in the test), is now
considered live at the entrance to the block.
Do I need to add some sort of use to the epilogue insn? Or is there
another work-around for this one?
The testcase is in execute/931004-10.c.
More information about the Gcc-bugs