Patchwork Move SSA macros and declarations out of tree.h

login
register
mail settings
Submitter Manuel López-Ibáñez
Date Sept. 30, 2010, 11:08 p.m.
Message ID <AANLkTi=F96j=N=zsUOi_Vwzy2E507d5aQ7dTUm1629NP@mail.gmail.com>
Download mbox | patch
Permalink /patch/66285/
State New
Headers show

Comments

Manuel López-Ibáñez - Sept. 30, 2010, 11:08 p.m.
This patch is meant to make GCC more modular by moving SSA stuff in
tree.h to its own header tree-ssa.h. Unfortunately, to define the tree
type, tree.h still needs to know about some SSA types, so they are
moved to a separate header that is included by tree.h. As noticed when
updating the headers, many parts of the compiler do not need to know
about SSA now. Another benefit is that these SSA functions should be
easier to find than before.

Bootstrapped and regression tested on x86_64-gnu-linux.

OK?


2010-10-01  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree.h: Include tree-ssa-node.h. Move SSA macros and
	declarations to ...
	* tree-ssa.h: ... here. New.
	* tree-ssa-node.h: ... and here. New.
	* tree-vrp.c: Include tree-ssa.h.
	* Makefile.in (GTFILES): Likewise.
	* alias.c: Likewise.
	* builtins.c: Likewise.
	* calls.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfgloop.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphunit.c: Likewise.
	* expr.c: Likewise.
	* fold-const.c: Likewise.
	* gengtype.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple.c: Likewise.
	* gimple.h: Likewise.
	* gimplify.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* implicit-zee.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-ref.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa-type-escape.c: Likewise.
	* ipa-utils.c: Likewise.
	* lambda-code.c: Likewise.
	* lambda-trans.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* matrix-reorg.c: Likewise.
	* omp-low.c: Likewise.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* sese.c: Likewise.
	* stmt.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-browser.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-diagnostic.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-iterator.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-loop-linear.c: Likewise.
	* tree-mudflap.c: Likewise.
	* tree-nomudflap.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-optimize.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree.c: Likewise.
Andrew Pinski - Sept. 30, 2010, 11:18 p.m.
On Thu, Sep 30, 2010 at 4:08 PM, Manuel López-Ibáñez
<lopezibanez@gmail.com> wrote:
> This patch is meant to make GCC more modular by moving SSA stuff in
> tree.h to its own header tree-ssa.h. Unfortunately, to define the tree
> type, tree.h still needs to know about some SSA types, so they are
> moved to a separate header that is included by tree.h. As noticed when
> updating the headers, many parts of the compiler do not need to know
> about SSA now. Another benefit is that these SSA functions should be
> easier to find than before.
>
> Bootstrapped and regression tested on x86_64-gnu-linux.
>
> OK?

Looks like you forgot to update dependences in the Makefile.

Thanks,
Andrew Pinski
Richard Guenther - Oct. 1, 2010, 9:51 a.m.
On Fri, Oct 1, 2010 at 1:18 AM, Andrew Pinski <pinskia@gmail.com> wrote:
> On Thu, Sep 30, 2010 at 4:08 PM, Manuel López-Ibáñez
> <lopezibanez@gmail.com> wrote:
>> This patch is meant to make GCC more modular by moving SSA stuff in
>> tree.h to its own header tree-ssa.h. Unfortunately, to define the tree
>> type, tree.h still needs to know about some SSA types, so they are
>> moved to a separate header that is included by tree.h. As noticed when
>> updating the headers, many parts of the compiler do not need to know
>> about SSA now. Another benefit is that these SSA functions should be
>> easier to find than before.
>>
>> Bootstrapped and regression tested on x86_64-gnu-linux.
>>
>> OK?
>
> Looks like you forgot to update dependences in the Makefile.

Hm, I don't see this as an improvement.

SSA name is a tree.  So it should be in tree.h.  The only argument
could be that ssa_use_operand_d belongs in tree-ssa-operands.h
(but is not there because of cyclic dependencies I think).

Adding more headers isn't necessarily a good idea.  Instead stripping
tree.h to its core pieces (keep the tree stuff only) and moving function
declarations to where they make more sense would be a better thing
to do.

Thus, I object to the patch.

Thanks,
Richard.

> Thanks,
> Andrew Pinski
>
Manuel López-Ibáñez - Oct. 1, 2010, 11:43 a.m.
On 1 October 2010 11:51, Richard Guenther <richard.guenther@gmail.com> wrote:
>
> Hm, I don't see this as an improvement.
>
> SSA name is a tree.  So it should be in tree.h.  The only argument
> could be that ssa_use_operand_d belongs in tree-ssa-operands.h
> (but is not there because of cyclic dependencies I think).

SSA tree node is a derived type of tree type. Conceptually tree type
should not require SSA tree node to build. The current implementation
does not allow that, so I have to include tree-ssa-node.h in tree.h,
but it is conceivable that in the future this constraint will
disappear. I could put back tree-ssa-node.h into tree.h, but having it
in a separate file shows that they are two different things and it
indicates that tree.h is not the place to declare SSA stuff.

Moreover, this patch enables to use tree.h in the FE/plugins/external
applications without importing any SSA macros/functions. GCC wants
modularity or not?

Since there is no design or clearly defined library boundaries, the
best we can do is separate things into modular header files.

> Adding more headers isn't necessarily a good idea.  Instead stripping
> tree.h to its core pieces (keep the tree stuff only) and moving function
> declarations to where they make more sense would be a better thing
> to do.

That is exactly what my patch does *except* that the current
implementation does not allow me to separate the SSA tree node types
declaration from tree.h. But the physical separation of
tree-ssa-node.h indicates that tree is the base type and tree_ssa_name
the derived type. Moreover, I thought it is a desired goal to split
the trees in the future, isn't it?

Moreover, people have problems finding the SSA interface in tree.h,
because logically it does not belong there, hence, tree-ssa.h should
be much easier to find.

Do you object to the whole patch, only to the tree-ssa-node.h file
separated from tree.h?

It is already very hard to contribute to GCC, could you please explain
how you envision a modular GCC?

Cheers,

Manuel.
Richard Guenther - Oct. 1, 2010, 11:57 a.m.
On Fri, Oct 1, 2010 at 1:43 PM, Manuel López-Ibáñez
<lopezibanez@gmail.com> wrote:
> On 1 October 2010 11:51, Richard Guenther <richard.guenther@gmail.com> wrote:
>>
>> Hm, I don't see this as an improvement.
>>
>> SSA name is a tree.  So it should be in tree.h.  The only argument
>> could be that ssa_use_operand_d belongs in tree-ssa-operands.h
>> (but is not there because of cyclic dependencies I think).
>
> SSA tree node is a derived type of tree type. Conceptually tree type
> should not require SSA tree node to build. The current implementation
> does not allow that, so I have to include tree-ssa-node.h in tree.h,
> but it is conceivable that in the future this constraint will
> disappear. I could put back tree-ssa-node.h into tree.h, but having it
> in a separate file shows that they are two different things and it
> indicates that tree.h is not the place to declare SSA stuff.
>
> Moreover, this patch enables to use tree.h in the FE/plugins/external
> applications without importing any SSA macros/functions. GCC wants
> modularity or not?
>
> Since there is no design or clearly defined library boundaries, the
> best we can do is separate things into modular header files.
>
>> Adding more headers isn't necessarily a good idea.  Instead stripping
>> tree.h to its core pieces (keep the tree stuff only) and moving function
>> declarations to where they make more sense would be a better thing
>> to do.
>
> That is exactly what my patch does *except* that the current
> implementation does not allow me to separate the SSA tree node types
> declaration from tree.h. But the physical separation of
> tree-ssa-node.h indicates that tree is the base type and tree_ssa_name
> the derived type. Moreover, I thought it is a desired goal to split
> the trees in the future, isn't it?

Sorry, an SSA name is a tree node.  It does belong in tree.h, not
in a separate SSA whatever header file.

> Moreover, people have problems finding the SSA interface in tree.h,
> because logically it does not belong there, hence, tree-ssa.h should
> be much easier to find.

I disagree.

> Do you object to the whole patch, only to the tree-ssa-node.h file
> separated from tree.h?

To the whole patch.

> It is already very hard to contribute to GCC, could you please explain
> how you envision a modular GCC?

GCC doesn't become more modular by this kind of fake modularity.

Trees are (and will likely be for a long time) a central piece that
spreads everywhere.  To deny that doesn't make GCC easier to grok.

There are a lot of header files (and .c files!) that have aggregated
functions that are used very commonly (tree-dfa.c is one such
weird file, tree-flow*.h is another).  I would like to see improved
modularity by separating the common helpers out from where
they first appeared in optimization passes and later got exported.

Thus, modularity is first identify commonly used helpers, move them
to a more logical place (which isn't always a new .c file) and eventually
document them.

If you think that the SSA accessors are hard to find then direct to
them by means of documentation in a more logical place like
for example tree-ssa-operands.h (if that's really a more logical place).

Note that IMHO our headers should mainly follow the implementation,
not serve as high-level documentation.

Thanks,
Richard.

> Cheers,
>
> Manuel.
>
Manuel López-Ibáñez - Oct. 1, 2010, 1 p.m.
On 1 October 2010 13:57, Richard Guenther <richard.guenther@gmail.com> wrote:
>
> Note that IMHO our headers should mainly follow the implementation,
> not serve as high-level documentation.

It has been stated several times that the sources are the only
up-to-date documentation and there are no hopes of keeping an
up-to-date documentation (since maintainers do not enforce this on
themselves).

Anyway, perhaps better like this. It saves me the pain of updating the
makefile dependencies and keep wasting my time.

Sorry for the noise and good luck,

Manuel.
Basile Starynkevitch - Oct. 1, 2010, 1:16 p.m.
[slightly off topic about the specific patch discussed, but on topic
with the comments]

On Fri, Oct 01, 2010 at 03:00:06PM +0200, Manuel López-Ibáñez wrote:
> On 1 October 2010 13:57, Richard Guenther <richard.guenther@gmail.com> wrote:
> >
> > Note that IMHO our headers should mainly follow the implementation,
> > not serve as high-level documentation.
> 
> It has been stated several times that the sources are the only
> up-to-date documentation and there are no hopes of keeping an
> up-to-date documentation (since maintainers do not enforce this on
> themselves).

We might find that state of affairs pitiful. 

Let's take as an example the documentation of our nearly 250
passes. So far, it is very incomplete
http://gcc.gnu.org/onlinedocs/gccint/Passes.html most gcc passes are
not individually documented in gcc/doc/passes.texi

We could imagine that every struct opt_pass (or some "sub-class" of it
like struct rtl_opt_pass, struct gimple_opt_pass, ...) would have
either a specific comment (or perhaps an additional string field)
which is a short one sentence description.  Then we could have a small
(perhaps awk) script which extract all these sentences to make a
texinfo table of all documented passes.  That would put a much smaller
burden on developpers than expecting each of them to add a paragraph
to gcc/doc/passes.texi (which did not happen in the past and probably
won't happen in the future). But going that [easier] route means that
we accept to derive a piece of [*.texi] documentation from a piece of
[*.c] code.

FWIW, in GCC MELT I had a similar issue. See
http://gcc.gnu.org/ml/gcc/2010-05/msg00539.html and many other
messages.

Regards.
Diego Novillo - Oct. 2, 2010, 6:08 p.m.
On Fri, Oct 1, 2010 at 05:51, Richard Guenther
<richard.guenther@gmail.com> wrote:

> Thus, I object to the patch.

I agree with Richard here.  This separation does not seem useful.  I
would keep all the tree data structure definitions in tree.h.  I have
been thinking about stripping appart tree.h in these ways.  I haven't
really spent a long time analyzing whether this separation makes
perfect sense, however:

- Keep all the tree data structures in tree.h.

- Make tree an opaque void * pointer to prevent users accessing
internal fields directly.  This is already used in libcpp.

- Convert macro accessors to inline functions and move them into a
separate header.  I expect some pushback on this idea, but it really
simplifies debugging, increases encapsulation and allows us to expose
a clearer API by exporting all the interfaces through which trees can
be manipulated.

- Move function declarations to other .h files (e.g., all the folding
prototypes, dwarf2 prototypes, etc).


Thoughts?


Diego.
Richard Guenther - Oct. 3, 2010, 3:33 p.m.
On Sat, Oct 2, 2010 at 8:08 PM, Diego Novillo <dnovillo@google.com> wrote:
> On Fri, Oct 1, 2010 at 05:51, Richard Guenther
> <richard.guenther@gmail.com> wrote:
>
>> Thus, I object to the patch.
>
> I agree with Richard here.  This separation does not seem useful.  I
> would keep all the tree data structure definitions in tree.h.  I have
> been thinking about stripping appart tree.h in these ways.  I haven't
> really spent a long time analyzing whether this separation makes
> perfect sense, however:
>
> - Keep all the tree data structures in tree.h.
>
> - Make tree an opaque void * pointer to prevent users accessing
> internal fields directly.  This is already used in libcpp.
>
> - Convert macro accessors to inline functions and move them into a
> separate header.  I expect some pushback on this idea, but it really
> simplifies debugging, increases encapsulation and allows us to expose
> a clearer API by exporting all the interfaces through which trees can
> be manipulated.

All the above might be a good idea at some point.  But I see little
value in doing that now given that it doesn't really improve modularity.

I think it's more useful to spend time on more obvious things.

> - Move function declarations to other .h files (e.g., all the folding
> prototypes, dwarf2 prototypes, etc).

Well sure - making tree.h less of a kitchen sink that it is right now is always
a good idea (at the same time don't try turning gimple.h into one ...)

Richard.

>
> Thoughts?
>
>
> Diego.
>

Patch

Index: gcc/tree-vrp.c
===================================================================
--- gcc/tree-vrp.c	(revision 164733)
+++ gcc/tree-vrp.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "flags.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-flow.h"
 #include "tree-pass.h"
 #include "tree-dump.h"
 #include "timevar.h"
Index: gcc/tree-loop-linear.c
===================================================================
--- gcc/tree-loop-linear.c	(revision 164733)
+++ gcc/tree-loop-linear.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "obstack.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
 #include "timevar.h"
Index: gcc/tree-into-ssa.c
===================================================================
--- gcc/tree-into-ssa.c	(revision 164733)
+++ gcc/tree-into-ssa.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "langhooks.h"
 #include "basic-block.h"
 #include "output.h"
Index: gcc/tree-ssa-loop-im.c
===================================================================
--- gcc/tree-ssa-loop-im.c	(revision 164733)
+++ gcc/tree-ssa-loop-im.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
Index: gcc/tree-dump.c
===================================================================
--- gcc/tree-dump.c	(revision 164733)
+++ gcc/tree-dump.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "splay-tree.h"
 #include "diagnostic-core.h"
 #include "toplev.h"
 #include "tree-dump.h"
 #include "tree-pass.h"
Index: gcc/tree-complex.c
===================================================================
--- gcc/tree-complex.c	(revision 164733)
+++ gcc/tree-complex.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tree-flow.h"
 #include "gimple.h"
 #include "tree-iterator.h"
 #include "tree-pass.h"
Index: gcc/tree-ssa-node.h
===================================================================
--- gcc/tree-ssa-node.h	(revision 0)
+++ gcc/tree-ssa-node.h	(revision 0)
@@ -0,0 +1,69 @@ 
+/* Tree SSA node definition
+   Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef GCC_TREE_SSA_NODE_H
+#define GCC_TREE_SSA_NODE_H
+
+/* Defined in tree-flow.h.  */
+struct ptr_info_def;
+
+/* Immediate use linking structure.  This structure is used for maintaining
+   a doubly linked list of uses of an SSA_NAME.  */
+typedef struct GTY(()) ssa_use_operand_d {
+  struct ssa_use_operand_d* GTY((skip(""))) prev;
+  struct ssa_use_operand_d* GTY((skip(""))) next;
+  /* Immediate uses for a given SSA name are maintained as a cyclic
+     list.  To recognize the root of this list, the location field
+     needs to point to the original SSA name.  Since statements and
+     SSA names are of different data types, we need this union.  See
+     the explanation in struct immediate_use_iterator_d.  */
+  union { gimple stmt; tree ssa_name; } GTY((skip(""))) loc;
+  tree *GTY((skip(""))) use;
+} ssa_use_operand_t;
+
+struct GTY(()) tree_ssa_name {
+  struct tree_common common;
+
+  /* _DECL wrapped by this SSA name.  */
+  tree var;
+
+  /* Statement that defines this SSA name.  */
+  gimple def_stmt;
+
+  /* SSA version number.  */
+  unsigned int version;
+
+  /* Pointer attributes used for alias analysis.  */
+  struct ptr_info_def *ptr_info;
+
+  /* Immediate uses list for this SSA_NAME.  */
+  struct ssa_use_operand_d imm_uses;
+};
+
+struct GTY(()) phi_arg_d {
+  /* imm_use MUST be the first element in struct because we do some
+     pointer arithmetic with it.  See phi_arg_index_from_use.  */
+  struct ssa_use_operand_d imm_use;
+  tree def;
+  location_t locus;
+};
+
+#endif
Index: gcc/tree-ssa-uninit.c
===================================================================
--- gcc/tree-ssa-uninit.c	(revision 164733)
+++ gcc/tree-ssa-uninit.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "langhooks.h"
 #include "basic-block.h"
 #include "output.h"
Index: gcc/tree-ssa-threadupdate.c
===================================================================
--- gcc/tree-ssa-threadupdate.c	(revision 164733)
+++ gcc/tree-ssa-threadupdate.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "function.h"
Index: gcc/tree-ssa-loop-niter.c
===================================================================
--- gcc/tree-ssa-loop-niter.c	(revision 164733)
+++ gcc/tree-ssa-loop-niter.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
Index: gcc/tree-pretty-print.c
===================================================================
--- gcc/tree-pretty-print.c	(revision 164733)
+++ gcc/tree-pretty-print.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "output.h"
 #include "tree-pretty-print.h"
 #include "hashtab.h"
 #include "tree-flow.h"
 #include "langhooks.h"
Index: gcc/gengtype.c
===================================================================
--- gcc/gengtype.c	(revision 164733)
+++ gcc/gengtype.c	(working copy)
@@ -1571,11 +1571,11 @@  open_base_files (void)
   {
     /* The order of files here matters very much.  */
     static const char *const ifiles[] = {
       "config.h", "system.h", "coretypes.h", "tm.h",
       "hashtab.h", "splay-tree.h", "obstack.h", "bitmap.h", "input.h",
-      "tree.h", "rtl.h", "function.h", "insn-config.h", "expr.h",
+      "tree.h", "tree-ssa.h", "rtl.h", "function.h", "insn-config.h", "expr.h",
       "hard-reg-set.h", "basic-block.h", "cselib.h", "insn-addr.h",
       "optabs.h", "libfuncs.h", "debug.h", "ggc.h", "cgraph.h",
       "tree-flow.h", "reload.h", "cpp-id-data.h", "tree-chrec.h",
       "cfglayout.h", "except.h", "output.h", "gimple.h", "cfgloop.h",
       "target.h", "ipa-prop.h", "lto-streamer.h", "target-globals.h", NULL
Index: gcc/tree-loop-distribution.c
===================================================================
--- gcc/tree-loop-distribution.c	(revision 164733)
+++ gcc/tree-loop-distribution.c	(working copy)
@@ -45,10 +45,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
 #include "timevar.h"
 #include "cfgloop.h"
Index: gcc/tree-ssa-loop-unswitch.c
===================================================================
--- gcc/tree-ssa-loop-unswitch.c	(revision 164733)
+++ gcc/tree-ssa-loop-unswitch.c	(working copy)
@@ -20,10 +20,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/cgraph.c
===================================================================
--- gcc/cgraph.c	(revision 164733)
+++ gcc/cgraph.c	(working copy)
@@ -75,10 +75,11 @@  The callgraph:
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-inline.h"
 #include "langhooks.h"
 #include "hashtab.h"
 #include "toplev.h"
 #include "flags.h"
Index: gcc/tree-ssa-loop-manip.c
===================================================================
--- gcc/tree-ssa-loop-manip.c	(revision 164733)
+++ gcc/tree-ssa-loop-manip.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree-tailcall.c
===================================================================
--- gcc/tree-tailcall.c	(revision 164733)
+++ gcc/tree-tailcall.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "function.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree-ssa-loop-ch.c
===================================================================
--- gcc/tree-ssa-loop-ch.c	(revision 164733)
+++ gcc/tree-ssa-loop-ch.c	(working copy)
@@ -20,10 +20,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree.c
===================================================================
--- gcc/tree.c	(revision 164733)
+++ gcc/tree.c	(working copy)
@@ -33,10 +33,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "flags.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "function.h"
 #include "obstack.h"
 #include "toplev.h"
 #include "ggc.h"
Index: gcc/tree.h
===================================================================
--- gcc/tree.h	(revision 164733)
+++ gcc/tree.h	(working copy)
@@ -1849,96 +1849,11 @@  struct GTY(()) tree_exp {
   tree block;
   tree GTY ((special ("tree_exp"),
 	     desc ("TREE_CODE ((tree) &%0)")))
     operands[1];
 };
-
-/* SSA_NAME accessors.  */
-
-/* Returns the variable being referenced.  Once released, this is the
-   only field that can be relied upon.  */
-#define SSA_NAME_VAR(NODE)	SSA_NAME_CHECK (NODE)->ssa_name.var
-
-/* Returns the statement which defines this SSA name.  */
-#define SSA_NAME_DEF_STMT(NODE)	SSA_NAME_CHECK (NODE)->ssa_name.def_stmt
-
-/* Returns the SSA version number of this SSA name.  Note that in
-   tree SSA, version numbers are not per variable and may be recycled.  */
-#define SSA_NAME_VERSION(NODE)	SSA_NAME_CHECK (NODE)->ssa_name.version
-
-/* Nonzero if this SSA name occurs in an abnormal PHI.  SSA_NAMES are
-   never output, so we can safely use the ASM_WRITTEN_FLAG for this
-   status bit.  */
-#define SSA_NAME_OCCURS_IN_ABNORMAL_PHI(NODE) \
-    SSA_NAME_CHECK (NODE)->base.asm_written_flag
-
-/* Nonzero if this SSA_NAME expression is currently on the free list of
-   SSA_NAMES.  Using NOTHROW_FLAG seems reasonably safe since throwing
-   has no meaning for an SSA_NAME.  */
-#define SSA_NAME_IN_FREE_LIST(NODE) \
-    SSA_NAME_CHECK (NODE)->base.nothrow_flag
-
-/* Nonzero if this SSA_NAME is the default definition for the
-   underlying symbol.  A default SSA name is created for symbol S if
-   the very first reference to S in the function is a read operation.
-   Default definitions are always created by an empty statement and
-   belong to no basic block.  */
-#define SSA_NAME_IS_DEFAULT_DEF(NODE) \
-    SSA_NAME_CHECK (NODE)->base.default_def_flag
-
-/* Attributes for SSA_NAMEs for pointer-type variables.  */
-#define SSA_NAME_PTR_INFO(N) \
-    SSA_NAME_CHECK (N)->ssa_name.ptr_info
-
-/* Defined in tree-flow.h.  */
-struct ptr_info_def;
-
-/* Immediate use linking structure.  This structure is used for maintaining
-   a doubly linked list of uses of an SSA_NAME.  */
-typedef struct GTY(()) ssa_use_operand_d {
-  struct ssa_use_operand_d* GTY((skip(""))) prev;
-  struct ssa_use_operand_d* GTY((skip(""))) next;
-  /* Immediate uses for a given SSA name are maintained as a cyclic
-     list.  To recognize the root of this list, the location field
-     needs to point to the original SSA name.  Since statements and
-     SSA names are of different data types, we need this union.  See
-     the explanation in struct immediate_use_iterator_d.  */
-  union { gimple stmt; tree ssa_name; } GTY((skip(""))) loc;
-  tree *GTY((skip(""))) use;
-} ssa_use_operand_t;
-
-/* Return the immediate_use information for an SSA_NAME. */
-#define SSA_NAME_IMM_USE_NODE(NODE) SSA_NAME_CHECK (NODE)->ssa_name.imm_uses
-
-struct GTY(()) tree_ssa_name {
-  struct tree_common common;
-
-  /* _DECL wrapped by this SSA name.  */
-  tree var;
 
-  /* Statement that defines this SSA name.  */
-  gimple def_stmt;
-
-  /* SSA version number.  */
-  unsigned int version;
-
-  /* Pointer attributes used for alias analysis.  */
-  struct ptr_info_def *ptr_info;
-
-  /* Immediate uses list for this SSA_NAME.  */
-  struct ssa_use_operand_d imm_uses;
-};
-
-struct GTY(()) phi_arg_d {
-  /* imm_use MUST be the first element in struct because we do some
-     pointer arithmetic with it.  See phi_arg_index_from_use.  */
-  struct ssa_use_operand_d imm_use;
-  tree def;
-  location_t locus;
-};
-
-
 #define OMP_CLAUSE_CODE(NODE)					\
 	(OMP_CLAUSE_CHECK (NODE))->omp_clause.code
 
 #define OMP_CLAUSE_SET_CODE(NODE, CODE)				\
 	((OMP_CLAUSE_CHECK (NODE))->omp_clause.code = (CODE))
@@ -2462,23 +2377,10 @@  struct GTY (()) tree_binfo {
 };
 
 
 /* Define fields and accessors for nodes representing declared names.  */
 
-/* Nonzero if DECL represents a variable for the SSA passes.  */
-#define SSA_VAR_P(DECL)							\
-	(TREE_CODE (DECL) == VAR_DECL					\
-	 || TREE_CODE (DECL) == PARM_DECL				\
-	 || TREE_CODE (DECL) == RESULT_DECL				\
-	 || (TREE_CODE (DECL) == SSA_NAME				\
-	     && (TREE_CODE (SSA_NAME_VAR (DECL)) == VAR_DECL		\
-		 || TREE_CODE (SSA_NAME_VAR (DECL)) == PARM_DECL	\
-		 || TREE_CODE (SSA_NAME_VAR (DECL)) == RESULT_DECL)))
-
-
-
-
 /* Enumerate visibility settings.  */
 #ifndef SYMBOL_VISIBILITY_DEFINED
 #define SYMBOL_VISIBILITY_DEFINED
 enum symbol_visibility
 {
@@ -3455,10 +3357,13 @@  struct GTY(()) tree_target_option {
 
 /* Return a tree node that encapsulates the current target options.  */
 extern tree build_target_option_node (void);
 
 
+
+#include "tree-ssa-node.h"
+
 /* Define the overall contents of a tree node.
    It may be any of the structures declared above
    for various types of node.  */
 
 union GTY ((ptr_alias (union lang_tree_node),
Index: gcc/tree-scalar-evolution.c
===================================================================
--- gcc/tree-scalar-evolution.c	(revision 164733)
+++ gcc/tree-scalar-evolution.c	(working copy)
@@ -258,10 +258,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree-phinodes.c
===================================================================
--- gcc/tree-phinodes.c	(revision 164733)
+++ gcc/tree-phinodes.c	(working copy)
@@ -20,10 +20,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"	/* FIXME: Only for ceil_log2, of all things...  */
 #include "ggc.h"
 #include "basic-block.h"
 #include "tree-flow.h"
 #include "diagnostic-core.h"
Index: gcc/tree-diagnostic.c
===================================================================
--- gcc/tree-diagnostic.c	(revision 164733)
+++ gcc/tree-diagnostic.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "diagnostic.h"
 #include "tree-diagnostic.h"
 #include "langhooks.h"
 #include "langhooks-def.h"
 
Index: gcc/builtins.c
===================================================================
--- gcc/builtins.c	(revision 164733)
+++ gcc/builtins.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "coretypes.h"
 #include "tm.h"
 #include "machmode.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "realmpfr.h"
 #include "gimple.h"
 #include "flags.h"
 #include "regs.h"
 #include "hard-reg-set.h"
Index: gcc/tree-emutls.c
===================================================================
--- gcc/tree-emutls.c	(revision 164733)
+++ gcc/tree-emutls.c	(working copy)
@@ -20,10 +20,11 @@  along with GCC; see the file COPYING3.  
 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple.h"
 #include "tree-pass.h"
 #include "tree-flow.h"
 #include "cgraph.h"
 #include "langhooks.h"
Index: gcc/fold-const.c
===================================================================
--- gcc/fold-const.c	(revision 164733)
+++ gcc/fold-const.c	(working copy)
@@ -46,10 +46,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "flags.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "realmpfr.h"
 #include "rtl.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "target.h"
Index: gcc/omp-low.c
===================================================================
--- gcc/omp-low.c	(revision 164733)
+++ gcc/omp-low.c	(working copy)
@@ -25,10 +25,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "gimple.h"
 #include "tree-iterator.h"
 #include "tree-inline.h"
 #include "langhooks.h"
Index: gcc/tree-ssa-dse.c
===================================================================
--- gcc/tree-ssa-dse.c	(revision 164733)
+++ gcc/tree-ssa-dse.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "timevar.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
Index: gcc/ipa-reference.c
===================================================================
--- gcc/ipa-reference.c	(revision 164733)
+++ gcc/ipa-reference.c	(working copy)
@@ -40,10 +40,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
 #include "langhooks.h"
 #include "pointer-set.h"
Index: gcc/tree-ssa-uncprop.c
===================================================================
--- gcc/tree-ssa-uncprop.c	(revision 164733)
+++ gcc/tree-ssa-uncprop.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "function.h"
Index: gcc/tree-chrec.c
===================================================================
--- gcc/tree-chrec.c	(revision 164733)
+++ gcc/tree-chrec.c	(working copy)
@@ -28,10 +28,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-pretty-print.h"
 #include "cfgloop.h"
 #include "tree-flow.h"
 #include "tree-chrec.h"
 #include "tree-pass.h"
Index: gcc/tree-ssa-sccvn.c
===================================================================
--- gcc/tree-ssa-sccvn.c	(revision 164733)
+++ gcc/tree-ssa-sccvn.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-inline.h"
 #include "tree-flow.h"
Index: gcc/cgraphunit.c
===================================================================
--- gcc/cgraphunit.c	(revision 164733)
+++ gcc/cgraphunit.c	(working copy)
@@ -109,10 +109,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "tree-flow.h"
 #include "tree-inline.h"
 #include "langhooks.h"
 #include "pointer-set.h"
Index: gcc/tree-vect-loop-manip.c
===================================================================
--- gcc/tree-vect-loop-manip.c	(revision 164733)
+++ gcc/tree-vect-loop-manip.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree-ssa-copyrename.c
===================================================================
--- gcc/tree-ssa-copyrename.c	(revision 164733)
+++ gcc/tree-ssa-copyrename.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple.h"
 #include "flags.h"
 #include "basic-block.h"
 #include "function.h"
 #include "tree-pretty-print.h"
Index: gcc/ipa-ref.c
===================================================================
--- gcc/ipa-ref.c	(revision 164733)
+++ gcc/ipa-ref.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "ggc.h"
 #include "target.h"
 #include "cgraph.h"
 
 static const char *ipa_ref_use_name[] = {"read","write","addr"};
Index: gcc/tree-ssa-ccp.c
===================================================================
--- gcc/tree-ssa-ccp.c	(revision 164733)
+++ gcc/tree-ssa-ccp.c	(working copy)
@@ -113,10 +113,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "function.h"
Index: gcc/lto-cgraph.c
===================================================================
--- gcc/lto-cgraph.c	(revision 164733)
+++ gcc/lto-cgraph.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "toplev.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "expr.h"
 #include "flags.h"
 #include "params.h"
 #include "input.h"
 #include "hashtab.h"
Index: gcc/tree-ssa-loop-ivopts.c
===================================================================
--- gcc/tree-ssa-loop-ivopts.c	(revision 164733)
+++ gcc/tree-ssa-loop-ivopts.c	(working copy)
@@ -65,10 +65,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
Index: gcc/tree-nomudflap.c
===================================================================
--- gcc/tree-nomudflap.c	(revision 164733)
+++ gcc/tree-nomudflap.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-inline.h"
 #include "gimple.h"
 #include "hashtab.h"
 #include "output.h"
 #include "langhooks.h"
Index: gcc/tree-call-cdce.c
===================================================================
--- gcc/tree-call-cdce.c	(revision 164733)
+++ gcc/tree-call-cdce.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "basic-block.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
 #include "gimple.h"
 #include "tree-dump.h"
 #include "tree-pass.h"
Index: gcc/ipa-pure-const.c
===================================================================
--- gcc/ipa-pure-const.c	(revision 164733)
+++ gcc/ipa-pure-const.c	(working copy)
@@ -35,10 +35,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
 #include "langhooks.h"
 #include "pointer-set.h"
Index: gcc/tree-stdarg.c
===================================================================
--- gcc/tree-stdarg.c	(revision 164733)
+++ gcc/tree-stdarg.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "function.h"
 #include "langhooks.h"
 #include "gimple-pretty-print.h"
 #include "target.h"
 #include "tree-flow.h"
Index: gcc/lto-streamer-out.c
===================================================================
--- gcc/lto-streamer-out.c	(revision 164733)
+++ gcc/lto-streamer-out.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "toplev.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "expr.h"
 #include "flags.h"
 #include "params.h"
 #include "input.h"
 #include "hashtab.h"
Index: gcc/tree-ssa-math-opts.c
===================================================================
--- gcc/tree-ssa-math-opts.c	(revision 164733)
+++ gcc/tree-ssa-math-opts.c	(working copy)
@@ -89,10 +89,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "flags.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "timevar.h"
 #include "tree-pass.h"
 #include "alloc-pool.h"
 #include "basic-block.h"
Index: gcc/tree-ssa-dom.c
===================================================================
--- gcc/tree-ssa-dom.c	(revision 164733)
+++ gcc/tree-ssa-dom.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "output.h"
Index: gcc/tree-nrv.c
===================================================================
--- gcc/tree-nrv.c	(revision 164733)
+++ gcc/tree-nrv.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "tree-flow.h"
 #include "timevar.h"
Index: gcc/tree-ssa-propagate.c
===================================================================
--- gcc/tree-ssa-propagate.c	(revision 164733)
+++ gcc/tree-ssa-propagate.c	(working copy)
@@ -22,10 +22,11 @@ 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "function.h"
Index: gcc/ipa-utils.c
===================================================================
--- gcc/ipa-utils.c	(revision 164733)
+++ gcc/ipa-utils.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
 #include "langhooks.h"
 #include "pointer-set.h"
Index: gcc/tree-ssa-alias.c
===================================================================
--- gcc/tree-ssa-alias.c	(revision 164733)
+++ gcc/tree-ssa-alias.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "timevar.h"
 #include "ggc.h"
 #include "langhooks.h"
Index: gcc/gimple-low.c
===================================================================
--- gcc/gimple-low.c	(revision 164733)
+++ gcc/gimple-low.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple.h"
 #include "tree-iterator.h"
 #include "tree-inline.h"
 #include "tree-flow.h"
 #include "flags.h"
Index: gcc/tree-ssa-sink.c
===================================================================
--- gcc/tree-ssa-sink.c	(revision 164733)
+++ gcc/tree-ssa-sink.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "gimple-pretty-print.h"
 #include "tree-inline.h"
 #include "tree-flow.h"
 #include "gimple.h"
Index: gcc/ipa-inline.c
===================================================================
--- gcc/ipa-inline.c	(revision 164733)
+++ gcc/ipa-inline.c	(working copy)
@@ -121,10 +121,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-inline.h"
 #include "langhooks.h"
 #include "flags.h"
 #include "cgraph.h"
 #include "diagnostic.h"
Index: gcc/expr.c
===================================================================
--- gcc/expr.c	(revision 164733)
+++ gcc/expr.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "coretypes.h"
 #include "tm.h"
 #include "machmode.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "except.h"
 #include "function.h"
Index: gcc/tree-browser.c
===================================================================
--- gcc/tree-browser.c	(revision 164733)
+++ gcc/tree-browser.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-inline.h"
 #include "tree-pretty-print.h"
 #include "hashtab.h"
 
 
Index: gcc/tree-ssa-loop-ivcanon.c
===================================================================
--- gcc/tree-ssa-loop-ivcanon.c	(revision 164733)
+++ gcc/tree-ssa-loop-ivcanon.c	(working copy)
@@ -36,10 +36,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
Index: gcc/tree-ssa-loop.c
===================================================================
--- gcc/tree-ssa-loop.c	(revision 164733)
+++ gcc/tree-ssa-loop.c	(working copy)
@@ -20,10 +20,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/predict.c
===================================================================
--- gcc/predict.c	(revision 164733)
+++ gcc/predict.c	(working copy)
@@ -31,10 +31,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "tm_p.h"
 #include "hard-reg-set.h"
 #include "basic-block.h"
 #include "insn-config.h"
Index: gcc/tree-parloops.c
===================================================================
--- gcc/tree-parloops.c	(revision 164733)
+++ gcc/tree-parloops.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "cfgloop.h"
 #include "tree-data-ref.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
Index: gcc/gimple-iterator.c
===================================================================
--- gcc/gimple-iterator.c	(revision 164733)
+++ gcc/gimple-iterator.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple.h"
 #include "tree-flow.h"
 #include "value-prof.h"
 
 
Index: gcc/tree-ssa-address.c
===================================================================
--- gcc/tree-ssa-address.c	(revision 164733)
+++ gcc/tree-ssa-address.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree-pretty-print.h"
 #include "tree-flow.h"
Index: gcc/tree-ssa-ifcombine.c
===================================================================
--- gcc/tree-ssa-ifcombine.c	(revision 164733)
+++ gcc/tree-ssa-ifcombine.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "timevar.h"
 #include "tree-pretty-print.h"
 #include "tree-flow.h"
 #include "tree-pass.h"
Index: gcc/matrix-reorg.c
===================================================================
--- gcc/matrix-reorg.c	(revision 164733)
+++ gcc/matrix-reorg.c	(working copy)
@@ -112,10 +112,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "tree-inline.h"
 #include "tree-flow.h"
 #include "tree-flow-inline.h"
 #include "langhooks.h"
Index: gcc/lto-streamer-in.c
===================================================================
--- gcc/lto-streamer-in.c	(revision 164733)
+++ gcc/lto-streamer-in.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "toplev.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "expr.h"
 #include "flags.h"
 #include "params.h"
 #include "input.h"
 #include "hashtab.h"
Index: gcc/tree-eh.c
===================================================================
--- gcc/tree-eh.c	(revision 164733)
+++ gcc/tree-eh.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "function.h"
 #include "except.h"
 #include "pointer-set.h"
 #include "tree-flow.h"
Index: gcc/gimple-pretty-print.c
===================================================================
--- gcc/gimple-pretty-print.c	(revision 164733)
+++ gcc/gimple-pretty-print.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "diagnostic.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "hashtab.h"
 #include "tree-flow.h"
Index: gcc/lambda-trans.c
===================================================================
--- gcc/lambda-trans.c	(revision 164733)
+++ gcc/lambda-trans.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "target.h"
 #include "tree-flow.h"
 #include "lambda.h"
 
 /* Allocate a new transformation matrix.  */
Index: gcc/tree-vectorizer.c
===================================================================
--- gcc/tree-vectorizer.c	(revision 164733)
+++ gcc/tree-vectorizer.c	(working copy)
@@ -59,10 +59,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-pretty-print.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
 #include "cfgloop.h"
 #include "cfglayout.h"
Index: gcc/ipa-split.c
===================================================================
--- gcc/ipa-split.c	(revision 164733)
+++ gcc/ipa-split.c	(working copy)
@@ -77,10 +77,11 @@  along with GCC; see the file COPYING3.  
 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "target.h"
 #include "cgraph.h"
 #include "ipa-prop.h"
 #include "tree-flow.h"
 #include "tree-pass.h"
Index: gcc/ipa-type-escape.c
===================================================================
--- gcc/ipa-type-escape.c	(revision 164733)
+++ gcc/ipa-type-escape.c	(working copy)
@@ -36,10 +36,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
 #include "langhooks.h"
 #include "pointer-set.h"
Index: gcc/alias.c
===================================================================
--- gcc/alias.c	(revision 164733)
+++ gcc/alias.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "function.h"
 #include "alias.h"
 #include "emit-rtl.h"
 #include "regs.h"
Index: gcc/tree-if-conv.c
===================================================================
--- gcc/tree-if-conv.c	(revision 164733)
+++ gcc/tree-if-conv.c	(working copy)
@@ -84,10 +84,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "timevar.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
Index: gcc/tree-vect-loop.c
===================================================================
--- gcc/tree-vect-loop.c	(revision 164733)
+++ gcc/tree-vect-loop.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree-data-ref.c
===================================================================
--- gcc/tree-data-ref.c	(revision 164733)
+++ gcc/tree-data-ref.c	(working copy)
@@ -79,10 +79,11 @@  along with GCC; see the file COPYING3.  
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "flags.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree-affine.c
===================================================================
--- gcc/tree-affine.c	(revision 164733)
+++ gcc/tree-affine.c	(working copy)
@@ -19,10 +19,11 @@  along with GCC; see the file COPYING3.  
 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "output.h"
 #include "tree-pretty-print.h"
 #include "tree-dump.h"
 #include "pointer-set.h"
 #include "tree-affine.h"
Index: gcc/tree-vect-data-refs.c
===================================================================
--- gcc/tree-vect-data-refs.c	(revision 164733)
+++ gcc/tree-vect-data-refs.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "target.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
Index: gcc/gimplify.c
===================================================================
--- gcc/gimplify.c	(revision 164733)
+++ gcc/gimplify.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple.h"
 #include "tree-iterator.h"
 #include "tree-inline.h"
 #include "tree-pretty-print.h"
 #include "langhooks.h"
Index: gcc/graphite-scop-detection.c
===================================================================
--- gcc/graphite-scop-detection.c	(revision 164733)
+++ gcc/graphite-scop-detection.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "basic-block.h"
 #include "diagnostic.h"
 #include "tree-flow.h"
 #include "toplev.h"
Index: gcc/tree-ssa-phiopt.c
===================================================================
--- gcc/tree-ssa-phiopt.c	(revision 164733)
+++ gcc/tree-ssa-phiopt.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "timevar.h"
 #include "tree-flow.h"
Index: gcc/implicit-zee.c
===================================================================
--- gcc/implicit-zee.c	(revision 164733)
+++ gcc/implicit-zee.c	(working copy)
@@ -178,10 +178,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "flags.h"
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "basic-block.h"
Index: gcc/calls.c
===================================================================
--- gcc/calls.c	(revision 164733)
+++ gcc/calls.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple.h"
 #include "flags.h"
 #include "expr.h"
 #include "optabs.h"
 #include "libfuncs.h"
Index: gcc/tree-ssa-coalesce.c
===================================================================
--- gcc/tree-ssa-coalesce.c	(revision 164733)
+++ gcc/tree-ssa-coalesce.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tree-pretty-print.h"
 #include "bitmap.h"
 #include "tree-flow.h"
 #include "hashtab.h"
Index: gcc/tree-dfa.c
===================================================================
--- gcc/tree-dfa.c	(revision 164733)
+++ gcc/tree-dfa.c	(working copy)
@@ -25,10 +25,11 @@  along with GCC; see the file COPYING3.  
 #include "tm.h"
 #include "toplev.h"
 #include "hashtab.h"
 #include "pointer-set.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "timevar.h"
 #include "ggc.h"
Index: gcc/gimple-fold.c
===================================================================
--- gcc/gimple-fold.c	(revision 164733)
+++ gcc/gimple-fold.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "function.h"
 #include "tree-dump.h"
 #include "tree-flow.h"
 #include "tree-pass.h"
Index: gcc/cfgexpand.c
===================================================================
--- gcc/cfgexpand.c	(revision 164733)
+++ gcc/cfgexpand.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "function.h"
 #include "expr.h"
Index: gcc/tree-cfgcleanup.c
===================================================================
--- gcc/tree-cfgcleanup.c	(revision 164733)
+++ gcc/tree-cfgcleanup.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "diagnostic-core.h"
 #include "toplev.h"
Index: gcc/tree-ssa-pre.c
===================================================================
--- gcc/tree-ssa-pre.c	(revision 164733)
+++ gcc/tree-ssa-pre.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-inline.h"
 #include "tree-flow.h"
Index: gcc/tree-ssa-live.c
===================================================================
--- gcc/tree-ssa-live.c	(revision 164733)
+++ gcc/tree-ssa-live.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "bitmap.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree-sra.c
===================================================================
--- gcc/tree-sra.c	(revision 164733)
+++ gcc/tree-sra.c	(working copy)
@@ -76,10 +76,11 @@  along with GCC; see the file COPYING3.  
 #include "coretypes.h"
 #include "alloc-pool.h"
 #include "tm.h"
 #include "toplev.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple.h"
 #include "cgraph.h"
 #include "tree-flow.h"
 #include "ipa-prop.h"
 #include "tree-pretty-print.h"
Index: gcc/tree-predcom.c
===================================================================
--- gcc/tree-predcom.c	(revision 164733)
+++ gcc/tree-predcom.c	(working copy)
@@ -188,10 +188,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "cfgloop.h"
 #include "tree-flow.h"
 #include "ggc.h"
 #include "tree-data-ref.h"
Index: gcc/sese.c
===================================================================
--- gcc/sese.c	(revision 164733)
+++ gcc/sese.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "basic-block.h"
 #include "diagnostic.h"
 #include "tree-pretty-print.h"
 #include "tree-flow.h"
Index: gcc/tree-mudflap.c
===================================================================
--- gcc/tree-mudflap.c	(revision 164733)
+++ gcc/tree-mudflap.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "flags.h"
 #include "function.h"
 #include "tree-inline.h"
Index: gcc/ipa-prop.c
===================================================================
--- gcc/ipa-prop.c	(revision 164733)
+++ gcc/ipa-prop.c	(working copy)
@@ -20,10 +20,11 @@  along with GCC; see the file COPYING3.  
 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "langhooks.h"
 #include "ggc.h"
 #include "target.h"
 #include "cgraph.h"
 #include "ipa-prop.h"
Index: gcc/print-tree.c
===================================================================
--- gcc/print-tree.c	(revision 164733)
+++ gcc/print-tree.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "ggc.h"
 #include "langhooks.h"
 #include "tree-iterator.h"
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
Index: gcc/tree-ssa-copy.c
===================================================================
--- gcc/tree-ssa-copy.c	(revision 164733)
+++ gcc/tree-ssa-copy.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "function.h"
Index: gcc/tree-ssa-forwprop.c
===================================================================
--- gcc/tree-ssa-forwprop.c	(revision 164733)
+++ gcc/tree-ssa-forwprop.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "timevar.h"
 #include "tree-pretty-print.h"
 #include "tree-flow.h"
Index: gcc/graphite-clast-to-gimple.c
===================================================================
--- gcc/graphite-clast-to-gimple.c	(revision 164733)
+++ gcc/graphite-clast-to-gimple.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "basic-block.h"
 #include "diagnostic.h"
 #include "tree-flow.h"
 #include "toplev.h"
Index: gcc/tree-ssa-dce.c
===================================================================
--- gcc/tree-ssa-dce.c	(revision 164733)
+++ gcc/tree-ssa-dce.c	(working copy)
@@ -47,10 +47,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "basic-block.h"
 #include "tree-flow.h"
 #include "gimple.h"
Index: gcc/tree-vect-patterns.c
===================================================================
--- gcc/tree-vect-patterns.c	(revision 164733)
+++ gcc/tree-vect-patterns.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "target.h"
 #include "basic-block.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree-ssa-ter.c
===================================================================
--- gcc/tree-ssa-ter.c	(revision 164733)
+++ gcc/tree-ssa-ter.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "bitmap.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
Index: gcc/tree-ssa.c
===================================================================
--- gcc/tree-ssa.c	(revision 164733)
+++ gcc/tree-ssa.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "target.h"
 #include "ggc.h"
 #include "langhooks.h"
Index: gcc/lambda-code.c
===================================================================
--- gcc/lambda-code.c	(revision 164733)
+++ gcc/lambda-code.c	(working copy)
@@ -23,10 +23,11 @@ 
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "target.h"
 #include "rtl.h"
 #include "basic-block.h"
 #include "diagnostic-core.h"
 #include "obstack.h"
Index: gcc/tree-ssa-loop-prefetch.c
===================================================================
--- gcc/tree-ssa-loop-prefetch.c	(revision 164733)
+++ gcc/tree-ssa-loop-prefetch.c	(working copy)
@@ -20,10 +20,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree-pretty-print.h"
 #include "tree-flow.h"
Index: gcc/tree-ssa.h
===================================================================
--- gcc/tree-ssa.h	(revision 0)
+++ gcc/tree-ssa.h	(revision 0)
@@ -0,0 +1,76 @@ 
+/* Tree SSA interface
+   Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef GCC_TREE_SSA_H
+#define GCC_TREE_SSA_H
+
+/* SSA_NAME accessors.  */
+
+/* Returns the variable being referenced.  Once released, this is the
+   only field that can be relied upon.  */
+#define SSA_NAME_VAR(NODE)	SSA_NAME_CHECK (NODE)->ssa_name.var
+
+/* Returns the statement which defines this SSA name.  */
+#define SSA_NAME_DEF_STMT(NODE)	SSA_NAME_CHECK (NODE)->ssa_name.def_stmt
+
+/* Returns the SSA version number of this SSA name.  Note that in
+   tree SSA, version numbers are not per variable and may be recycled.  */
+#define SSA_NAME_VERSION(NODE)	SSA_NAME_CHECK (NODE)->ssa_name.version
+
+/* Nonzero if this SSA name occurs in an abnormal PHI.  SSA_NAMES are
+   never output, so we can safely use the ASM_WRITTEN_FLAG for this
+   status bit.  */
+#define SSA_NAME_OCCURS_IN_ABNORMAL_PHI(NODE) \
+    SSA_NAME_CHECK (NODE)->base.asm_written_flag
+
+/* Nonzero if this SSA_NAME expression is currently on the free list of
+   SSA_NAMES.  Using NOTHROW_FLAG seems reasonably safe since throwing
+   has no meaning for an SSA_NAME.  */
+#define SSA_NAME_IN_FREE_LIST(NODE) \
+    SSA_NAME_CHECK (NODE)->base.nothrow_flag
+
+/* Nonzero if this SSA_NAME is the default definition for the
+   underlying symbol.  A default SSA name is created for symbol S if
+   the very first reference to S in the function is a read operation.
+   Default definitions are always created by an empty statement and
+   belong to no basic block.  */
+#define SSA_NAME_IS_DEFAULT_DEF(NODE) \
+    SSA_NAME_CHECK (NODE)->base.default_def_flag
+
+/* Attributes for SSA_NAMEs for pointer-type variables.  */
+#define SSA_NAME_PTR_INFO(N) \
+    SSA_NAME_CHECK (N)->ssa_name.ptr_info
+
+/* Return the immediate_use information for an SSA_NAME. */
+#define SSA_NAME_IMM_USE_NODE(NODE) SSA_NAME_CHECK (NODE)->ssa_name.imm_uses
+
+
+/* Nonzero if DECL represents a variable for the SSA passes.  */
+#define SSA_VAR_P(DECL)							\
+	(TREE_CODE (DECL) == VAR_DECL					\
+	 || TREE_CODE (DECL) == PARM_DECL				\
+	 || TREE_CODE (DECL) == RESULT_DECL				\
+	 || (TREE_CODE (DECL) == SSA_NAME				\
+	     && (TREE_CODE (SSA_NAME_VAR (DECL)) == VAR_DECL		\
+		 || TREE_CODE (SSA_NAME_VAR (DECL)) == PARM_DECL	\
+		 || TREE_CODE (SSA_NAME_VAR (DECL)) == RESULT_DECL)))
+
+#endif
Index: gcc/tree-vect-stmts.c
===================================================================
--- gcc/tree-vect-stmts.c	(revision 164733)
+++ gcc/tree-vect-stmts.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "target.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
Index: gcc/tree-inline.c
===================================================================
--- gcc/tree-inline.c	(revision 164733)
+++ gcc/tree-inline.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "coretypes.h"
 #include "tm.h"
 #include "toplev.h" /* floor_log2 */
 #include "diagnostic-core.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-inline.h"
 #include "flags.h"
 #include "params.h"
 #include "input.h"
 #include "insn-config.h"
Index: gcc/tree-iterator.c
===================================================================
--- gcc/tree-iterator.c	(revision 164733)
+++ gcc/tree-iterator.c	(working copy)
@@ -20,10 +20,11 @@  along with GCC; see the file COPYING3.  
 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple.h"
 #include "tree-iterator.h"
 #include "ggc.h"
 
 
Index: gcc/tree-optimize.c
===================================================================
--- gcc/tree-optimize.c	(revision 164733)
+++ gcc/tree-optimize.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "flags.h"
 #include "tree-flow.h"
Index: gcc/graphite-sese-to-poly.c
===================================================================
--- gcc/graphite-sese-to-poly.c	(revision 164733)
+++ gcc/graphite-sese-to-poly.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "basic-block.h"
 #include "diagnostic.h"
 #include "tree-flow.h"
 #include "toplev.h"
Index: gcc/tree-ssa-phiprop.c
===================================================================
--- gcc/tree-ssa-phiprop.c	(revision 164733)
+++ gcc/tree-ssa-phiprop.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "timevar.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
Index: gcc/tree-object-size.c
===================================================================
--- gcc/tree-object-size.c	(revision 164733)
+++ gcc/tree-object-size.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "diagnostic-core.h"
 #include "toplev.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
Index: gcc/tree-outof-ssa.c
===================================================================
--- gcc/tree-outof-ssa.c	(revision 164733)
+++ gcc/tree-outof-ssa.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "ggc.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "bitmap.h"
Index: gcc/cfgloop.c
===================================================================
--- gcc/cfgloop.c	(revision 164733)
+++ gcc/cfgloop.c	(working copy)
@@ -29,10 +29,11 @@  along with GCC; see the file COPYING3.  
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "diagnostic-core.h"
 #include "flags.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "pointer-set.h"
 #include "output.h"
 #include "ggc.h"
 
Index: gcc/tree-profile.c
===================================================================
--- gcc/tree-profile.c	(revision 164733)
+++ gcc/tree-profile.c	(working copy)
@@ -36,10 +36,11 @@  along with GCC; see the file COPYING3.  
 #include "basic-block.h"
 #include "diagnostic-core.h"
 #include "toplev.h"
 #include "coverage.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "tree-dump.h"
 #include "tree-pass.h"
 #include "timevar.h"
 #include "value-prof.h"
Index: gcc/tree-vect-generic.c
===================================================================
--- gcc/tree-vect-generic.c	(revision 164733)
+++ gcc/tree-vect-generic.c	(working copy)
@@ -20,10 +20,11 @@  along with GCC; see the file COPYING3.  
 
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm.h"
 #include "langhooks.h"
 #include "tree-flow.h"
 #include "gimple.h"
 #include "tree-iterator.h"
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in	(revision 164733)
+++ gcc/Makefile.in	(working copy)
@@ -3720,11 +3720,11 @@  s-tm-texi: build/genhooks$(build_exeext)
 GTFILES = $(CPP_ID_DATA_H) $(srcdir)/input.h $(srcdir)/coretypes.h \
   $(srcdir)/vecprim.h $(srcdir)/vecir.h \
   $(host_xm_file_list) \
   $(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \
   $(srcdir)/alias.h $(srcdir)/coverage.c $(srcdir)/rtl.h \
-  $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/libfuncs.h $(SYMTAB_H) \
+  $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/tree-ssa-node.h $(srcdir)/libfuncs.h $(SYMTAB_H) \
   $(srcdir)/real.h $(srcdir)/function.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \
   $(srcdir)/fixed-value.h \
   $(srcdir)/output.h $(srcdir)/cfgloop.h \
   $(srcdir)/cselib.h $(srcdir)/basic-block.h  $(srcdir)/ipa-ref.h $(srcdir)/cgraph.h \
   $(srcdir)/reload.h $(srcdir)/caller-save.c \
Index: gcc/gimple.c
===================================================================
--- gcc/gimple.c	(revision 164733)
+++ gcc/gimple.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "target.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "ggc.h"
 #include "hard-reg-set.h"
 #include "basic-block.h"
 #include "gimple.h"
 #include "toplev.h"
Index: gcc/tree-ssa-structalias.c
===================================================================
--- gcc/tree-ssa-structalias.c	(revision 164733)
+++ gcc/tree-ssa-structalias.c	(working copy)
@@ -28,10 +28,11 @@ 
 #include "bitmap.h"
 #include "flags.h"
 #include "basic-block.h"
 #include "output.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "tree-inline.h"
 #include "diagnostic-core.h"
 #include "toplev.h"
 #include "gimple.h"
Index: gcc/tree-switch-conversion.c
===================================================================
--- gcc/tree-switch-conversion.c	(revision 164733)
+++ gcc/tree-switch-conversion.c	(working copy)
@@ -84,10 +84,11 @@  eight) times the number of the actual sw
 
 #include "line-map.h"
 #include "params.h"
 #include "flags.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-flow.h"
 #include "tree-flow-inline.h"
 #include "tree-ssa-operands.h"
 #include "output.h"
Index: gcc/gimple.h
===================================================================
--- gcc/gimple.h	(revision 164733)
+++ gcc/gimple.h	(working copy)
@@ -28,10 +28,11 @@  along with GCC; see the file COPYING3.  
 #include "vecir.h"
 #include "ggc.h"
 #include "tm.h"
 #include "hard-reg-set.h"
 #include "basic-block.h"
+#include "tree-ssa.h"
 #include "tree-ssa-operands.h"
 #include "tree-ssa-alias.h"
 
 struct gimple_seq_node_d;
 typedef struct gimple_seq_node_d *gimple_seq_node;
Index: gcc/tree-cfg.c
===================================================================
--- gcc/tree-cfg.c	(revision 164733)
+++ gcc/tree-cfg.c	(working copy)
@@ -22,10 +22,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "output.h"
 #include "flags.h"
 #include "function.h"
Index: gcc/ipa-struct-reorg.c
===================================================================
--- gcc/ipa-struct-reorg.c	(revision 164733)
+++ gcc/ipa-struct-reorg.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "gimple.h"
 #include "tree-inline.h"
 #include "tree-flow.h"
 #include "tree-flow-inline.h"
Index: gcc/tree-ssa-reassoc.c
===================================================================
--- gcc/tree-ssa-reassoc.c	(revision 164733)
+++ gcc/tree-ssa-reassoc.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-inline.h"
 #include "tree-flow.h"
Index: gcc/tree-vect-slp.c
===================================================================
--- gcc/tree-vect-slp.c	(revision 164733)
+++ gcc/tree-vect-slp.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "target.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"
Index: gcc/stmt.c
===================================================================
--- gcc/stmt.c	(revision 164733)
+++ gcc/stmt.c	(working copy)
@@ -30,10 +30,11 @@  along with GCC; see the file COPYING3.  
 #include "tm.h"
 
 #include "rtl.h"
 #include "hard-reg-set.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tm_p.h"
 #include "flags.h"
 #include "except.h"
 #include "function.h"
 #include "insn-config.h"
Index: gcc/lto-section-out.c
===================================================================
--- gcc/lto-section-out.c	(revision 164733)
+++ gcc/lto-section-out.c	(working copy)
@@ -23,10 +23,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "toplev.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "expr.h"
 #include "params.h"
 #include "input.h"
 #include "hashtab.h"
 #include "basic-block.h"
Index: gcc/tree-ssanames.c
===================================================================
--- gcc/tree-ssanames.c	(revision 164733)
+++ gcc/tree-ssanames.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "tree-flow.h"
 #include "tree-pass.h"
 
 /* Rewriting a function into SSA form can create a huge number of SSA_NAMEs,
    many of which may be thrown away shortly after their creation if jumps
Index: gcc/tree-ssa-threadedge.c
===================================================================
--- gcc/tree-ssa-threadedge.c	(revision 164733)
+++ gcc/tree-ssa-threadedge.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "tm_p.h"
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "output.h"
Index: gcc/lto-streamer.c
===================================================================
--- gcc/lto-streamer.c	(revision 164733)
+++ gcc/lto-streamer.c	(working copy)
@@ -25,10 +25,11 @@  along with GCC; see the file COPYING3.  
 #include "coretypes.h"
 #include "tm.h"
 #include "toplev.h"
 #include "flags.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "gimple.h"
 #include "tree-flow.h"
 #include "diagnostic-core.h"
 #include "bitmap.h"
 #include "vec.h"
Index: gcc/graphite-interchange.c
===================================================================
--- gcc/graphite-interchange.c	(revision 164733)
+++ gcc/graphite-interchange.c	(working copy)
@@ -24,10 +24,11 @@  along with GCC; see the file COPYING3.  
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "ggc.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "rtl.h"
 #include "output.h"
 #include "basic-block.h"
 #include "diagnostic.h"
 #include "tree-flow.h"
Index: gcc/tree-ssa-operands.c
===================================================================
--- gcc/tree-ssa-operands.c	(revision 164733)
+++ gcc/tree-ssa-operands.c	(working copy)
@@ -21,10 +21,11 @@  along with GCC; see the file COPYING3.  
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
 #include "tree.h"
+#include "tree-ssa.h"
 #include "flags.h"
 #include "function.h"
 #include "tree-pretty-print.h"
 #include "gimple-pretty-print.h"
 #include "tree-flow.h"