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

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. AF

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 m

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 patc

[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])