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]
Other format: [Raw text]

Re: PR 23551: why should we coalesce inlined variables?


Hi,

On Mon, 9 Jul 2007, Alexandre Oliva wrote:

> On Jul  9, 2007, Michael Matz <matz@suse.de> wrote:
> 
> > You somehow keep forgetting SSA form.
> 
> No, I'm just reporting the result of the optimizations I'm seeing.

I know what we currently do.  But we are discussing about a proper 
solution for that problem.

> Early SSA coalescing is not the end of it.  The assignment to foo_2 
> *does* go away, and if we don't introduce some means to preserve its 
> location in a way that doesn't hurt optimization, we won't be able to 
> emit correct debug info for foo.

See my other mail on that topic.  There will be cases where you 
unavoidably either lose debug information or have to throttle the 
transformations you do.  But all cases you came up until now are not in 
that class, and are relatively easily solved with a proper (but until now 
hypothetic) infrastructure.

> > An SSA name _is_ a range for exactly the value that it holds 
> > initially.
> 
> Yes.  It's a range for the value.  But not for the multiple variables 
> that may end up holding that value.

As some people said multiple times here, you can simply attach multiple 
variables to one SSA name.  My mail even contained examples of such, 
please take the time to study it.

> In my example, you'll find cases in which it both starts too early and 
> ends too late WRT the variable that holds that value at some point.

I've seen none in your examples.  Please provide one or refer to the mail 
URL, but please, not that simple {foo=bar;bar++;foo--} example again.  I 
handled that.


Ciao,
Michael.


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