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