On Fri, Jul 13, 2012 at 3:36 PM, Richard Guenther
<richard.guent...@gmail.com> wrote:
>
> On Fri, Jul 13, 2012 at 9:18 AM, Steven Bosscher <stevenb....@gmail.com> 
> wrote:
> > On Fri, Jul 13, 2012 at 3:36 AM, Dehao Chen <de...@google.com> wrote:
> >> I'd suggest:
> >> 1. Remove this unittest for now.
> >
> > And revert the patch for now.
> >
> >
> >> 2. Integrate locus with block, and store them as an index. (This will
> >> incur big operation to GCC)
> >
> > I'm not sure what you mean with "integrate"...?
> >
> > A lot of the code you'll need already exists in emit-rtl.c. That code
> > should be split out to a new file and be shared between rtl and
> > gimple. You'll probably want to make block_locators_locs,
> > block_locators_blocks, and locations_locators_locs part of struct
> > function. The biggest challenges will be avoiding bloat and managing
> > the locators for inlining/cloning...
>
> Btw, we discussed this briefly on the summit with Dodji and libcpp
> virtual locations already provide a way to associate a location_t with
> something else resulting in a new location_t.  For inlining we simply have
> to say that the location_t's we use would always refer to the original
> BLOCK (thus, the abstract origin).  There is no point to update the BLOCKs
> to point to the copies as far as debug information is concerned (?).

I'm not quite sure if I understand correctly: we will clone all blocks
and update them during function inline/clone, and assign new
location_t to the cloned gimple/phi_arg_t/expr etc. Otherwise, the
inline stack cannot be maintained, right?

Thanks,
Dehao


>
> Richard.
>
> > Ciao!
> > Steven

Reply via email to