Re: [RFC] Fix spill failure at -O on 64-bit Windows

2012-10-17 Thread Eric Botcazou
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

Re: [RFC] Fix spill failure at -O on 64-bit Windows

2012-10-17 Thread Steven Bosscher
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

Re: [RFC] Fix spill failure at -O on 64-bit Windows

2012-10-17 Thread Eric Botcazou
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

[RFC] Fix spill failure at -O on 64-bit Windows

2012-10-15 Thread Eric Botcazou
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])

Re: [RFC] Fix spill failure at -O on 64-bit Windows

2012-10-15 Thread Steven Bosscher
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