Does this still happen after my patch from yesterday to use DF_LIVE in IRA?
Yes, it even fails at -O2.
Maybe add a cost-free dependency on the clobber, so that it's moved
with the insn?
Maybe. But I'm a little worried about (1) extending the lifetime of the hard
register and (2) simply
On Wed, Oct 17, 2012 at 11:55 AM, Eric Botcazou wrote:
Maybe add a cost-free dependency on the clobber, so that it's moved
with the insn?
Maybe. But I'm a little worried about (1) extending the lifetime of the hard
register and (2) simply moving around a clobber of a hard register.
AFAIU
I don't understand what you mean with extending the life of the hard
register in this case. If you move the clobber with the instruction,
the hard reg is dead before the clobber and after the insn that uses
it, just like when the insn is not hoisted from the loop. So you don't
extend the
For the attached Ada testcase, the compiler aborts with a spill failure at -O:
p.adb: In function 'P.F':
p.adb:16:7: error: unable to find a register to spill in class 'DREG'
p.adb:16:7: error: this is the insn:
(insn 141 140 142 17 (parallel [
(set (reg:SI 0 ax [174])
On Mon, Oct 15, 2012 at 7:45 PM, Eric Botcazou wrote:
This extends the lifetime of the hard register up to the beginning of the
function, causing reload to die on the complex division instruction.
Does this still happen after my patch from yesterday to use DF_LIVE in IRA?
The attached patch