This is the mail archive of the 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: [PATCH] PR35371 GCSE loses track of REG_POINTER attribute

Peter Bergner wrote:
On Mon, 2008-03-03 at 12:15 -0700, Jeff Law wrote:
Do you mean fix it up and then call it from more than just CSE?
Currently, the only call to reg_scan() isn't in a location that
will help me.
No.  I mean make it smarter.  If you read the code it's amazingly
simplistic and punts propagation of REG_POINTER for any pseudo
that is set more than once.

It shouldn't be terribly difficult to build a simple propagation
engine that handles multiple sets.

Sorry, making it "smarter" is what I meant by "fix it up". My problem with it, as I mentioned in my previous note, is that the only location it is currently called doesn't help me. I guess what I was asking was there shouldn't be a problem with me calling it from another location, correct?
Ah. A misunderstanding on my part.

I do recall some problems with passes substituting a pseudo without REG_POINTER set for a register with REG_POINTER set, so if you run it early, you might lose some REG_POINTER attributes.

That's not a fatal problem -- the PA backend already knows
to cope with this issue.  And if the pass is safe, you ought
to be able to just run it twice.

Ideally propagation of REG_POINTER would use both the assignment to the pseudo and the use of the pseudo to try and determine if it's a pointer.


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