This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/20969] unrolling does not take target register pressure into account.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]