public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* VTA/debugging vs reload-v2
@ 2010-04-05 16:37 Jeff Law
  2010-04-05 20:33 ` Alexandre Oliva
  0 siblings, 1 reply; 7+ messages in thread
From: Jeff Law @ 2010-04-05 16:37 UTC (permalink / raw)
  To: Alexandre Oliva; +Cc: GCC


So as I mentioned in the meeting last week, I've largely been ignoring 
VTA (and more generally all debugging) issues with the reload work I'm 
doing.  It's time to rectify that situation.

For this phase of the work (range splitting) we only need to consider a 
few straightforward transformations to the RTL and how they impact the 
debugging information.

The goal is to take a pseudo P and break its live range down into P1, 
P2, ... Pn where each of the sub-ranges are local to a region (right now 
a region is a straight line hunk of code with no join nodes -- not quite 
an extended basic block, but close).   Outside these regions P lives in 
memory.  Within each region the new pseudos P1, P2, ... Pn may be 
allocated to different hard registers.

We accomplish this by emitting a load from memory into a new pseudo 
before the first use of P in a region and a store from the new pseudo 
back to memory after the last assignment to P within the region, then we 
rename all references from P to P'.  It's marginally more complex, but I 
think for this discussion the other complexities can be ignored.  After 
all regions have been processed, P is gone from the insn stream.  
Obviously P can be found in memory, P1, P2, ... Pn depending on 
precisely where we are in the code when the value is P is requested.

I'm not terribly familiar with how dwarf2 represents variable ranges; I 
tend to think of this as P living in memory, except during the 
subregions where its in P1, P2, .. Pn.    The sub-range pseudos P1, P2, 
.. Pn all point back to P via ORIGINAL_REGNO and all have the same 
reg_equiv_memory_loc.

So, without having looked closely at dwarf2out.c (it hurts my head every 
time I try), is it likely we're going to need to be emitting new 
debug_insns to describe how to correctly find P in the different contexts?

Thanks,
Jeff





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-04-07  7:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-05 16:37 VTA/debugging vs reload-v2 Jeff Law
2010-04-05 20:33 ` Alexandre Oliva
2010-04-05 23:18   ` Jeff Law
2010-04-06  6:36     ` Jakub Jelinek
2010-04-06 15:23       ` Jeff Law
2010-04-06 15:31         ` Jakub Jelinek
2010-04-07  8:32     ` Alexandre Oliva

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).