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

Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED



On Thursday, May 15, 2003, at 07:30 PM, Alexandre Oliva wrote:


On May 15, 2003, Michael Matz <matz@suse.de> wrote:

Yes, you have to define clobbering parts of hardregs.  Possibly by
allowing clobbering of zero_extract's, or normal subregs.

And, again, why is it better to pollute every single call pattern with a bunch of complex clobbers just because the register allocator doesn't want to deal with a macro named HARD_REGNO_CALL_PART_CLOBBERED, if at the end it will end up having to collect the information back from call patterns and behave similarly?
You keep using "pollute" like the info shouldn't be there. That's where the info *belongs*.
The information on what registers are clobbered should be *explicit*, not implicit.
One of the problems with doing GCC optimizations historically has been implicit info and 80 different magic macros to try to determine that info explicitly.
If one made the information explicit, so that we could just rely on the list of clobbers in the call, one would *never* have to worry about calling conventions or optimizations of that sort.
Why should *anything* have to look at 3 different macros and 2 arrays (This is not an exaggeration) to determine something as trivial as what registers are affected by a given call.


Do you just not realize this is the case as of now, or are you arguing that this is the right way to do it?


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