On 10/27/10 13:54, Frederic Riss wrote:
On 27 October 2010 21:21, Jeff Law<l...@redhat.com>  wrote:
  On 10/27/10 12:15, Frederic Riss wrote:
On 26 October 2010 16:22, Jeff Law<l...@redhat.com>    wrote:

The thing is the cprop pass doesn't look at insn costs while doing its
job AFAICS. I'm interested to see how insn splitting can help with
this if you don't care to explain.
Certainly the SSA propagators don't use costing information; CSE on the
other hand does using costing info, but not always in the way you might
think (addresses in memory references for example are often backwards from
what you might think)
Care to extend on that use of the costing info? I followed the code
path in gcse.c and e.g. do_local_cprop doesn't seem to care about
costs. BTW, I'm on the 4.5 branch if that matters.
In both cse.c and gcse.c search for rtx_cost. The addition of costing info in gcse was a fairly recent addition from Maxim.

Register pressure isn't as much of a problem as you might think because
constants are relatively easy to rematerialize when there is excess register
pressure.
That's what I thought, but I have yet to see GCC split the liveness of
the commonized constants. When should that be done?
When a pseudo fails to get a hard register and has an equivalent constant or memory location, reload will replace the pseudo with its equivalent form, effectively splitting the live range.

jeff


Reply via email to