
	* tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
	(SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
	num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
	* tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
	make_temp_ssa_name): move to tree-ssanames.h
	* tree-ssa-alias.h: Move prototype.
	* tree-ssa.h: Include tree-ssanames.h.
	* tree-ssanames.c (FREE_SSANAMES): Move to here.
	* tree-ssanames.h: New.  Move items from tree-flow*.h
	* Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.

diff -rcp r1/tree-flow.h ./tree-flow.h
*** r1/tree-flow.h	2013-09-10 13:06:06.568300474 -0400
--- ./tree-flow.h	2013-09-10 13:16:27.697748702 -0400
*************** struct GTY(()) gimple_df {
*** 92,103 ****
    htab_t GTY ((param_is (struct tm_restart_node))) tm_restart;
  };
  
- /* Accessors for internal use only.  Generic code should use abstraction
-    provided by tree-flow-inline.h or specific modules.  */
- #define FREE_SSANAMES(fun) (fun)->gimple_df->free_ssanames
- #define SSANAMES(fun) (fun)->gimple_df->ssa_names
- #define MODIFIED_NORETURN_CALLS(fun) (fun)->gimple_df->modified_noreturn_calls
- #define DEFAULT_DEFS(fun) (fun)->gimple_df->default_defs
  
  typedef struct
  {
--- 92,97 ----
*************** typedef struct
*** 113,153 ****
  	!end_htab_p (&(ITER)); \
  	RESULT = (TYPE) next_htab_element (&(ITER)))
  
- /*---------------------------------------------------------------------------
- 		      Attributes for SSA_NAMEs.
- 
-   NOTE: These structures are stored in struct tree_ssa_name
-   but are only used by the tree optimizers, so it makes better sense
-   to declare them here to avoid recompiling unrelated files when
-   making changes.
- ---------------------------------------------------------------------------*/
- 
- /* Aliasing information for SSA_NAMEs representing pointer variables.  */
- 
- struct GTY(()) ptr_info_def
- {
-   /* The points-to solution.  */
-   struct pt_solution pt;
- 
-   /* Alignment and misalignment of the pointer in bytes.  Together
-      align and misalign specify low known bits of the pointer.
-      ptr & (align - 1) == misalign.  */
- 
-   /* When known, this is the power-of-two byte alignment of the object this
-      pointer points into.  This is usually DECL_ALIGN_UNIT for decls and
-      MALLOC_ABI_ALIGNMENT for allocated storage.  When the alignment is not
-      known, it is zero.  Do not access directly but use functions
-      get_ptr_info_alignment, set_ptr_info_alignment,
-      mark_ptr_info_alignment_unknown and similar.  */
-   unsigned int align;
- 
-   /* When alignment is known, the byte offset this pointer differs from the
-      above alignment.  Access only through the same helper functions as align
-      above.  */
-   unsigned int misalign;
- };
- 
- 
  /* It is advantageous to avoid things like life analysis for variables which
     do not need PHI nodes.  This enum describes whether or not a particular
     variable may need a PHI node.  */
--- 107,112 ----
*************** struct int_tree_map {
*** 282,290 ****
    tree to;
  };
  
- #define num_ssa_names (vec_safe_length (cfun->gimple_df->ssa_names))
- #define ssa_name(i) ((*cfun->gimple_df->ssa_names)[(i)])
- 
  /* Macros for showing usage statistics.  */
  #define SCALE(x) ((unsigned long) ((x) < 1024*10	\
  		  ? (x)					\
--- 241,246 ----
*************** void mark_virtual_operands_for_renaming
*** 479,504 ****
  tree get_current_def (tree);
  void set_current_def (tree, tree);
  
- /* In tree-ssanames.c  */
- extern void init_ssanames (struct function *, int);
- extern void fini_ssanames (void);
- extern tree make_ssa_name_fn (struct function *, tree, gimple);
- extern tree copy_ssa_name_fn (struct function *, tree, gimple);
- extern tree duplicate_ssa_name_fn (struct function *, tree, gimple);
- extern void duplicate_ssa_name_ptr_info (tree, struct ptr_info_def *);
- extern void release_ssa_name (tree);
- extern void release_defs (gimple);
- extern void replace_ssa_name_symbol (tree, tree);
- extern bool get_ptr_info_alignment (struct ptr_info_def *, unsigned int *,
- 				    unsigned int *);
- extern void mark_ptr_info_alignment_unknown (struct ptr_info_def *);
- extern void set_ptr_info_alignment (struct ptr_info_def *, unsigned int,
- 				    unsigned int);
- extern void adjust_ptr_info_misalignment (struct ptr_info_def *,
- 					  unsigned int);
- 
- extern void ssanames_print_statistics (void);
- 
  /* In tree-ssa-ccp.c  */
  tree fold_const_aggregate_ref (tree);
  tree gimple_fold_stmt_to_constant (gimple, tree (*)(tree));
--- 435,440 ----
diff -rcp r1/tree-flow-inline.h ./tree-flow-inline.h
*** r1/tree-flow-inline.h	2013-09-10 13:06:06.568300474 -0400
--- ./tree-flow-inline.h	2013-09-10 13:17:48.507534463 -0400
*************** gimple_ssa_operands (const struct functi
*** 1159,1204 ****
  }
  
  
- /* Return an SSA_NAME node for variable VAR defined in statement STMT
-    in function cfun.  */
- 
- static inline tree
- make_ssa_name (tree var, gimple stmt)
- {
-   return make_ssa_name_fn (cfun, var, stmt);
- }
- 
- /* Return an SSA_NAME node using the template SSA name NAME defined in
-    statement STMT in function cfun.  */
- 
- static inline tree
- copy_ssa_name (tree var, gimple stmt)
- {
-   return copy_ssa_name_fn (cfun, var, stmt);
- }
- 
- /*  Creates a duplicate of a SSA name NAME tobe defined by statement STMT
-     in function cfun.  */
- 
- static inline tree
- duplicate_ssa_name (tree var, gimple stmt)
- {
-   return duplicate_ssa_name_fn (cfun, var, stmt);
- }
- 
- /* Return an anonymous SSA_NAME node for type TYPE defined in statement STMT
-    in function cfun.  Arrange so that it uses NAME in dumps.  */
- 
- static inline tree
- make_temp_ssa_name (tree type, gimple stmt, const char *name)
- {
-   tree ssa_name;
-   gcc_checking_assert (TYPE_P (type));
-   ssa_name = make_ssa_name_fn (cfun, type, stmt);
-   SET_SSA_NAME_VAR_OR_IDENTIFIER (ssa_name, get_identifier (name));
-   return ssa_name;
- }
- 
  /* Returns the base object and a constant BITS_PER_UNIT offset in *POFFSET that
     denotes the starting address of the memory access EXP.
     Returns NULL_TREE if the offset is not constant or any component
--- 1159,1164 ----
diff -rcp r1/tree-ssa-alias.h ./tree-ssa-alias.h
*** r1/tree-ssa-alias.h	2013-09-10 13:06:06.572300471 -0400
--- ./tree-ssa-alias.h	2013-09-10 13:22:47.578955641 -0400
*************** extern void *walk_non_aliased_vuses (ao_
*** 116,122 ****
  extern unsigned int walk_aliased_vdefs (ao_ref *, tree,
  					bool (*)(ao_ref *, tree, void *),
  					void *, bitmap *);
- extern struct ptr_info_def *get_ptr_info (tree);
  extern void dump_alias_info (FILE *);
  extern void debug_alias_info (void);
  extern void dump_points_to_solution (FILE *, struct pt_solution *);
--- 116,121 ----
diff -rcp r1/tree-ssa.h ./tree-ssa.h
*** r1/tree-ssa.h	2013-09-10 13:06:06.574300470 -0400
--- ./tree-ssa.h	2013-09-10 13:10:01.063168160 -0400
*************** along with GCC; see the file COPYING3.
*** 21,26 ****
--- 21,27 ----
  #define GCC_TREE_SSA_H
  
  #include "tree-flow.h"
+ #include "tree-ssanames.h"
  
  /* Mapping for redirected edges.  */
  struct _edge_var_map {
diff -rcp r1/tree-ssanames.c ./tree-ssanames.c
*** r1/tree-ssanames.c	2013-09-10 13:06:06.575300469 -0400
--- ./tree-ssanames.c	2013-09-10 13:22:39.300968112 -0400
*************** along with GCC; see the file COPYING3.
*** 60,65 ****
--- 60,68 ----
  unsigned int ssa_name_nodes_reused;
  unsigned int ssa_name_nodes_created;
  
+ #define FREE_SSANAMES(fun) (fun)->gimple_df->free_ssanames
+ 
+ 
  /* Initialize management of SSA_NAMEs to default SIZE.  If SIZE is
     zero use default.  */
  
diff -rcp r1/tree-ssanames.h ./tree-ssanames.h
*** r1/tree-ssanames.h	2013-09-10 13:42:23.670820666 -0400
--- ./tree-ssanames.h	2013-09-10 13:22:42.102963872 -0400
***************
*** 0 ****
--- 1,119 ----
+ /* SSA name expresssons routines
+    Copyright (C) 2013 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_SSANAMES_H
+ #define GCC_TREE_SSANAMES_H
+ 
+ /* Aliasing information for SSA_NAMEs representing pointer variables.  */
+ 
+ struct GTY(()) ptr_info_def
+ {
+   /* The points-to solution.  */
+   struct pt_solution pt;
+ 
+   /* Alignment and misalignment of the pointer in bytes.  Together
+      align and misalign specify low known bits of the pointer.
+      ptr & (align - 1) == misalign.  */
+ 
+   /* When known, this is the power-of-two byte alignment of the object this
+      pointer points into.  This is usually DECL_ALIGN_UNIT for decls and
+      MALLOC_ABI_ALIGNMENT for allocated storage.  When the alignment is not
+      known, it is zero.  Do not access directly but use functions
+      get_ptr_info_alignment, set_ptr_info_alignment,
+      mark_ptr_info_alignment_unknown and similar.  */
+   unsigned int align;
+ 
+   /* When alignment is known, the byte offset this pointer differs from the
+      above alignment.  Access only through the same helper functions as align
+      above.  */
+   unsigned int misalign;
+ };
+ 
+ 
+ #define SSANAMES(fun) (fun)->gimple_df->ssa_names
+ #define MODIFIED_NORETURN_CALLS(fun) (fun)->gimple_df->modified_noreturn_calls
+ #define DEFAULT_DEFS(fun) (fun)->gimple_df->default_defs
+ 
+ #define num_ssa_names (vec_safe_length (cfun->gimple_df->ssa_names))
+ #define ssa_name(i) ((*cfun->gimple_df->ssa_names)[(i)])
+ 
+ 
+ extern void init_ssanames (struct function *, int);
+ extern void fini_ssanames (void);
+ extern void ssanames_print_statistics (void);
+ extern tree make_ssa_name_fn (struct function *, tree, gimple);
+ extern void release_ssa_name (tree);
+ extern bool get_ptr_info_alignment (struct ptr_info_def *, unsigned int *,
+ 				    unsigned int *);
+ extern void mark_ptr_info_alignment_unknown (struct ptr_info_def *);
+ extern void set_ptr_info_alignment (struct ptr_info_def *, unsigned int,
+ 				    unsigned int);
+ extern void adjust_ptr_info_misalignment (struct ptr_info_def *,
+ 					  unsigned int);
+ extern struct ptr_info_def *get_ptr_info (tree);
+ 
+ extern tree copy_ssa_name_fn (struct function *, tree, gimple);
+ extern void duplicate_ssa_name_ptr_info (tree, struct ptr_info_def *);
+ extern tree duplicate_ssa_name_fn (struct function *, tree, gimple);
+ extern void release_defs (gimple);
+ extern void replace_ssa_name_symbol (tree, tree);
+ 
+ 
+ /* Return an SSA_NAME node for variable VAR defined in statement STMT
+    in function cfun.  */
+ 
+ static inline tree
+ make_ssa_name (tree var, gimple stmt)
+ {
+   return make_ssa_name_fn (cfun, var, stmt);
+ }
+ 
+ /* Return an SSA_NAME node using the template SSA name NAME defined in
+    statement STMT in function cfun.  */
+ 
+ static inline tree
+ copy_ssa_name (tree var, gimple stmt)
+ {
+   return copy_ssa_name_fn (cfun, var, stmt);
+ }
+ 
+ /*  Creates a duplicate of a SSA name NAME tobe defined by statement STMT
+     in function cfun.  */
+ 
+ static inline tree
+ duplicate_ssa_name (tree var, gimple stmt)
+ {
+   return duplicate_ssa_name_fn (cfun, var, stmt);
+ }
+ 
+ /* Return an anonymous SSA_NAME node for type TYPE defined in statement STMT
+    in function cfun.  Arrange so that it uses NAME in dumps.  */
+ 
+ static inline tree
+ make_temp_ssa_name (tree type, gimple stmt, const char *name)
+ {
+   tree ssa_name;
+   gcc_checking_assert (TYPE_P (type));
+   ssa_name = make_ssa_name_fn (cfun, type, stmt);
+   SET_SSA_NAME_VAR_OR_IDENTIFIER (ssa_name, get_identifier (name));
+   return ssa_name;
+ }
+ 
+ 
+ #endif /* GCC_TREE_SSANAMES_H */
diff -rcp r1/Makefile.in ./Makefile.in
*** r1/Makefile.in	2013-09-10 13:06:06.546300487 -0400
--- ./Makefile.in	2013-09-10 13:33:15.770063212 -0400
*************** tree-ssa-threadupdate.o : tree-ssa-threa
*** 2379,2385 ****
     $(DIAGNOSTIC_H) $(FUNCTION_H) $(TM_H) coretypes.h $(DUMPFILE_H) \
     $(BASIC_BLOCK_H) $(FLAGS_H) $(CFGLOOP_H)
  tree-ssanames.o : tree-ssanames.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
!    $(TM_H) $(TREE_H) $(TREE_SSA_H) $(TREE_PASS_H)
  tree-phinodes.o : tree-phinodes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
     $(TM_H) $(TREE_H) $(GGC_H) $(BASIC_BLOCK_H) $(TREE_SSA_H) \
     gt-tree-phinodes.h $(DIAGNOSTIC_CORE_H) $(GIMPLE_H)
--- 2379,2385 ----
     $(DIAGNOSTIC_H) $(FUNCTION_H) $(TM_H) coretypes.h $(DUMPFILE_H) \
     $(BASIC_BLOCK_H) $(FLAGS_H) $(CFGLOOP_H)
  tree-ssanames.o : tree-ssanames.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
!    $(TM_H) $(TREE_H) $(TREE_SSA_H) $(TREE_PASS_H) tree-ssanames.h
  tree-phinodes.o : tree-phinodes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
     $(TM_H) $(TREE_H) $(GGC_H) $(BASIC_BLOCK_H) $(TREE_SSA_H) \
     gt-tree-phinodes.h $(DIAGNOSTIC_CORE_H) $(GIMPLE_H)
*************** GTFILES = $(CPP_ID_DATA_H) $(srcdir)/inp
*** 3837,3842 ****
--- 3837,3843 ----
    $(srcdir)/tree-ssa-propagate.c \
    $(srcdir)/tree-phinodes.c \
    $(srcdir)/tree-ssa-alias.h \
+   $(srcdir)/tree-ssanames.h \
    $(srcdir)/ipa-prop.h \
    $(srcdir)/trans-mem.c \
    $(srcdir)/lto-streamer.h \

