[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc-bugs
Subject:    Ifcvt and epilogue insns
From:       Richard Earnshaw <rearnsha () arm ! com>
Date:       2000-05-31 20:31:50
[Download RAW message or body]


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.

R.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic