------- Additional Comments From amylaar at gcc dot gnu dot org 2005-04-12 17:48 ------- (In reply to comment #9) > > But if we go down that route, the register allocator has to know about > > every > > other optimization. Throttling register pressure is usually much simpler > > than un-doing a complex optimization, and then re-doing it with different > > parameters, or doing some other optimizations instead. ... > > No it does not, it only needs to know about reroller, resplitter and moving things back into loops, > nothing more. Does the reroller also roll? Sometimes unrolling three or four times is bad, but unrolling two times is good. When you reroll, you might als want to re-do other things like combine and the scheduling. Will the register allocator re-start all the passes after unrolling when it re-rolls a loop?
> Also note both XLC and ICC take the route of a reroller, and they both do better than us at register > allocatation. In fact XLC compiles for a lot of targets, not just PPC, so don't use the excuse of these > compilers only compile for one target. AFAIK the problem with branch target register pressure arises only for SH64 and freecore. That is not to say that I'm sure that you couldn't make the reroller work effectively, but the circumstantial evidence does not apply to the problem currently under discussion. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20969