On 3/29/07, Daniel Jacobowitz <[EMAIL PROTECTED]> wrote:
On Thu, Mar 29, 2007 at 06:40:30PM -0700, Andrew Pinski wrote:
> On 29 Mar 2007 18:24:56 -0700, Ian Lance Taylor <[EMAIL PROTECTED]> wrote:
> >Why will expressions have location? It seems to me preferable to save
> >the memory. After a few optimization passes many of the expressions
> >have no location anyhow.
> And I know from past experiences, that this is really a bug that they
> don't produce expressions with locations. I remember Daniel Berlin
> was talking about how SRA does the correct thing with respect of
> locations and other passes should really follow that. We can see how
> out of SSA can produce cases where PHIs would create expressions
> without locations but that is a bug (I cannot find the PR right now
> but Daniel J. filed it).
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26475
But I'm not convinced that adding locations on more things is a
workable solution to the problem. I wish someone had sufficient
incentive to sit down and design a proper solution to our degenerating
debug info.
The problem is that we have conflicting goals. We want good debug
info, but don't want -g to affect the optimizations performed.
However, the easiest (and probably best) way to keep the debug info up
to date through optimizations is to do what LLVM does, and make it
part of the IR.
This sadly, can affect optimizations performed.
I'm not sure we will ever keep every pass from mucking up debug info
unless they have to do a *lot* less work than they would now. I don't
see how to make that happen without making it either completely
automatic using magic pixie dust, or part of the IR.