"Dependent on" ???
Posted Feb 28, 2007 14:28 UTC (Wed) by nix
In reply to: "Dependent on" ???
Parent article: Mitchell Baker and the Firefox Paradox (Inc)
I'd expect this with -O3, as inlining tends to increase register pressure.
I've noticed that quite a few of the recent optimizations tend to do this on register-poor targets, actually; the problem seems to be that the optimizers have got no way of telling if they're causing excessive stack spills because allocation of non-pseudo-registers doesn't happen until right up until the end (and that happens to RTL, far lower-level than the GIMPLE that most optimizers chew on). This is also waiting on some heroic figure rewriting the register allocator so that earlier passes can get decent feedback on whether they're going to spill to hell and back or not (and then the earlier passes would have to get updated to use this information...)
(A good few passes are turned off at -O<3 for this reason.)
There's still a lot to do: GCC is far from perfect: a lot of the problems it tries to solve (like, well, register allocation) are NP-complete anyway, but it could definitely do a better job than it does.
But it hasn't been stagnating.
(Again, I'm just an observer; if I'm spraying ignorant rubbish someone who does actual useful work like Joe Buck should point it out. :) )
to post comments)