On 10/16/09 08:53, Vladimir Makarov wrote:
The biggest problem of GCC RA is still reload pass. It frequently
changes decisions of IRA not in a good way.
Agreed. Not only may reload make a bad choice, it's horribly
unpredictable. Trivial changes often lead to drastically different
reloading decisions which in turn drastically change the final output.
One of my favorites right now is the round-robin selection of spill
registers to encourage reload inheritance. While I certainly understand
the reasoning behind the code, it's amazingly frustrating to watch
reload choose the worst possible spill register simply because of the
round-robin selection.
I've got a little hack in the reload-v2 branch which queries IRA to
mitigate this problem, but it's merely a short-term hack until I can
make reload inheritance go away.
jeff