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: [RFC] New SSA variable mapping infrastructure


On Oct  3, 2007, "Richard Guenther" <richard.guenther@gmail.com> wrote:

> During RTL optimization a reference or placeholder DECL from the
> sets of associated variables will make var-tracking work as before.
> Only at the time we write out debug information we will need to go
> back to the variable sets and create copies of the variable location
> lists for each of the variable in the associated set.  (fingers crossing,
> this is all pure speculation)

'fraid this won't work.  Different SSA versions of the same variable
can get coalesced or otherwise combined into different codegen
variables, so you'd have to expand the individual tracking before or
during var-tracking, such that it can do the propagation correctly.

> Note that as opposed to the DEBUG_STMT/INSN approach this is _not_
> a way we can conveniently cause values to be preserved that would
> otherwise be deleted.

The DEBUG_STMT/INSN doesn't do this, actually.  It doesn't (and can't)
preserve values that would be deleted.  It must only keep track of
what is still around, if it is.  The main difference with your
approach is that you lose track of the point of assignment, so you
might be extending inappropriately the life of a variable, or causing
it to hold values at points that would be very surprising to users,
even if they are defensible.  For an example, see
http://gcc.gnu.org/ml/gcc/2007-11/msg00176.html

-- 
Alexandre Oliva         http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member         http://www.fsfla.org/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}


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