This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] reaching def. question
- From: Chris Lattner <sabre at nondot dot org>
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: Jeff Law <law at redhat dot com>, Devang Patel <dpatel at apple dot com>,<gcc at gcc dot gnu dot org>
- Date: Wed, 17 Mar 2004 10:43:33 -0600 (CST)
- Subject: Re: [tree-ssa] reaching def. question
Diego Novillo wrote:
> I had originally implemented an SSA form that did not need an out-of-ssa
> pass. You could just drop the SSA_NAME wrappers because no overlapping
> live ranges would occur. Other compilers (IBM's and SGI's) do the same,
> but to date I have not found a convincing explanation favouring one
> design over the other.
At least in the case of SGI, I understood that they implemented it that
way for two reasons: 1. avoid an increase in register pressure, and 2.
work better with the legacy compiler optimizations they already had.
#2 certainly makes a lot of sense, and this decision also made their
implementation of (e.g.) SSAPRE simpler, but I have a hard time buying
argument #1.
For the record, LLVM allows arbitrary overlapping of virtual registers.
We don't even have "versions" or an "out of SSA renamer". In my
*extremely biased* opinion, this makes it a lot easier to reason about
what code does, e.g., making it trivial to answer Devang's original
question.
-Chris
--
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/