This is the mail archive of the gcc-patches@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]

Re: [patches] Re: limited register renaming at -O2


Jan Hubicka <jh@suse.cz> writes:

>> 
>> > This patch changes register renamer to not rename user variables unless
>> > new flag messy-debugging is set.  Then I can enable it at -O2 (and get
>> > most of benefit done).
>> 
>> I'm not too happy about this approach.  I'd prefer if the debugging output
>> could be changed to deal with the effects of renaming.
>> 
> Even I would love to see that (and in fact I want to implement it in future),
> but to my understanding, on some formats it is impossible (slabs) and we have
> other places in compiler where we supress some optimizaions because of
> debugging.
>
> I am not sure what the politic is, if the target use slabs.  Would we just keep
> the info unusable, or disable register renaming when slabs are used.
> How we choose on thargets that use multiple outputs, like i386?

Well, you just need the right debug hooks.
I added support for location lists to dwarf2 already, and it works
(I'm not sure i don't have the test for things that are split over
sections backwards, but that's trivial).

I'll tell you what.
If you can make it drop labels i can refer to get the address where a
variable starts being in a given register, i'll do the rest of the
work (IE add the debug hooks to say a variable is changing to a new
register, etc)

In fact, that's why I didn't add support for it already, because i
didn't feel like hunting around final.c to figure out how to do this.

STABS could be extended to do some live range splitting trackign, but
it's not perfect.

>
> Thats why it looked to me like introducing -fmessy-debugging can be usefull
> thing to do.
>
> Honza
> > 
>> Bernd

-- 
"I went to a 7-11 and asked for a 2x4 and a box of 3x5's.  The
clerk said, "ten-four."
"-Steven Wright


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