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?


On Mon, 2007-07-09 at 16:48 +0200, Richard Guenther wrote:
> On 7/9/07, Alexandre Oliva <aoliva@redhat.com> wrote:
> > On Jul  9, 2007, "Richard Guenther" <richard.guenther@gmail.com> wrote:

> Actually in ssa_form your example looks like
> 
>   foo_1 = <initial_value>;
> 0: bar_1 = <expr>;
> 
> 1: foo_2 = bar_1;
> 
> 2: bar_2 = bar_1 + 1;
> 2: foo_3 = foo_2 - 1;
> 
>    use (bar_2)
>    use (foo_3)
> 
> For all ssa_nam

Perhaps one detail that isn't clear yet, we are talking about doing this
in out-of-ssa where the ssa_names are mapped back to normal variables.
The writing out of the normal variables is the very very final thing it
does. Until that point, we know the exact range of each individual
ssa-name that gets coalesced, and to which user variable.
 
So as we step through each instruction rewriting the ssa_name to the
user variable it was coalesced to, we emit the appropriate debug info,
or we can do that in a pass immediately before if we need to resolve any
overlaps, or whatever works best. we have the actually ssa_name ranges
and since they are all single def, their ranges are well defined. 

Andrew


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