> 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
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.
AF
> 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 m
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 patc
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])