[PATCH]: Death to the E* tree nodes

Daniel Berlin dberlin@dberlin.org
Tue Jun 15 14:48:00 GMT 2004


This is semi-obvious, but i'd still like approval anyway since it's so 
large.
The E* nodes (EUSE,EPHI,EEXIT,EKILL) are no longer necessary now that 
the old SSAPRE is gone.

2004-06-15  Daniel Berlin  <dberlin@dberlin.org>

	* tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
	* tree-dfa.c (create_stmt_ann): Ditto.
	* tree-pretty-print.c (dump_generic_node): Remove E* node handling.
	* tree-inline.c (estimate_num_insns_1): Ditto.
	* tree.c (tree_size): Ditto.
	(make_node_stat): Ditto.
	(tree_node_structure): Ditto.
	(ephi_node_elt_check_failed): Remove.
	(is_essa_node): Ditto.
	* tree.def (EPHI_NODE): Ditto.
	(EEXIT_NODE): Ditto.
	(EUSE_NODE): Ditto.
	(EKILL_NODE): Ditto.
	* tree.h (EREF_NODE_CHECK): Remove.
	(EPHI_NODE_ELT_CHECK): Ditto.
	(struct tree_eref_common): Ditto.
	(struct tree_euse_node): Ditto.
	(struct ephi_arg_d): Ditto.
	(struct tree_ephi_node): Ditto.
	(ephi_node_elt_check_failed): Remove prototype.
	(is_essa_node): Ditto.
	(enum tree_node_structure_enum): Remove TS_E*_NODE.
	(union tree_node): Remove E*_NODE uses.
Index: tree-flow-inline.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-flow-inline.h,v
retrieving revision 2.5
diff -u -3 -p -r2.5 tree-flow-inline.h
--- tree-flow-inline.h	12 Jun 2004 00:18:31 -0000	2.5
+++ tree-flow-inline.h	15 Jun 2004 12:31:05 -0000
@@ -91,7 +91,7 @@ static inline stmt_ann_t
  stmt_ann (tree t)
  {
  #if defined ENABLE_CHECKING
-  if (!is_gimple_stmt (t) && !is_essa_node (t))
+  if (!is_gimple_stmt (t))
      abort ();
  #endif

Index: tree-pretty-print.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-pretty-print.c,v
retrieving revision 2.6
diff -u -3 -p -r2.6 tree-pretty-print.c
--- tree-pretty-print.c	10 Jun 2004 21:41:06 -0000	2.6
+++ tree-pretty-print.c	15 Jun 2004 12:31:06 -0000
@@ -1358,86 +1358,6 @@ dump_generic_node (pretty_printer *buffe
        pp_character (buffer, '>');
        break;

-    case EPHI_NODE:
-      {
-	int i;
-
-	pp_string (buffer, " EPHI (");
-	dump_generic_node (buffer, EREF_NAME (node), spc, flags, false);
-	pp_string (buffer, ") ");
-	pp_character (buffer, '[');
-	pp_string (buffer, " class:");
-	pp_decimal_int (buffer, EREF_CLASS (node));
-	if (EPHI_DOWNSAFE (node))
-	  pp_string (buffer, " downsafe");
-	if (EPHI_CANT_BE_AVAIL (node))
-	  pp_string (buffer, " cant_be_avail");
-	if (EPHI_STOPS (node))
-	  pp_string (buffer, " stops");
-	pp_string (buffer, " bb:");
-	pp_decimal_int (buffer, bb_for_stmt (node)->index);
-	pp_character (buffer, ']');
-	if (! (flags & TDF_SLIM))
-	  {
-	    pp_string (buffer, " <");
-	    for (i = 0; i < EPHI_NUM_ARGS (node); i++)
-	      {	
-		if (EPHI_ARG_DEF (node, i))
-		  {
-		    newline_and_indent (buffer, spc + 2);
-		    pp_string (buffer, " edge ");
-		    pp_decimal_int (buffer, EPHI_ARG_EDGE (node, i)->src->index);
-		    pp_string (buffer, "->");
-		    pp_decimal_int (buffer, EPHI_ARG_EDGE (node, i)->dest->index);
-		    pp_string (buffer, " [ ");
-		    if (EPHI_ARG_HAS_REAL_USE (node, i))
-		      pp_string (buffer, " real use");
-		    if (EPHI_ARG_INJURED (node, i))
-		      pp_string (buffer, " injured");
-		    if (EPHI_ARG_STOPS (node, i))
-		      pp_string (buffer, " stops");
-		    pp_string (buffer, " ] ");
-		    pp_string (buffer, " defined by:");
-		    dump_generic_node (buffer, EPHI_ARG_DEF (node, i),
-				       spc + 4, flags | TDF_SLIM, false);
-		  }
-	      }
-	  }
-	pp_string (buffer, " >");
-      }
-      break;
-    case EEXIT_NODE:
-    case EKILL_NODE:
-      if (TREE_CODE (node) == EEXIT_NODE)
-	pp_string (buffer, "EEXIT (");
-      else if (TREE_CODE (node) == EKILL_NODE)
-	pp_string (buffer, "EKILL (");
-      dump_generic_node (buffer, EREF_NAME (node), spc, flags, false);
-      pp_string (buffer, ") ");
-      pp_character (buffer, '[');
-      pp_string (buffer, "class:");
-      pp_decimal_int (buffer, EREF_CLASS (node));
-      pp_string (buffer, " bb:");
-      pp_decimal_int (buffer, bb_for_stmt (node)->index);
-      pp_character (buffer, ']');
-      break;
-    case EUSE_NODE:
-      pp_string (buffer, " EUSE (");
-      dump_generic_node (buffer, EREF_NAME (node), spc, flags, false);
-
-      pp_string (buffer, ") ");
-      pp_character (buffer, '[');
-      pp_string (buffer, "class:");
-      pp_decimal_int (buffer, EREF_CLASS (node));
-      pp_string (buffer, " phiop:");
-      pp_decimal_int (buffer, EUSE_PHIOP (node));
-      pp_string (buffer, " bb:");
-      pp_decimal_int (buffer, bb_for_stmt (node)->index);
-      if (EUSE_LVAL (node))
-	pp_string (buffer, " left-occurrence");
-      pp_string (buffer, " ]");
-	
-      break;
      case PHI_NODE:
        {
  	int i;
Index: tree.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.c,v
retrieving revision 1.375
diff -u -3 -p -r1.375 tree.c
--- tree.c	10 Jun 2004 08:07:41 -0000	1.375
+++ tree.c	15 Jun 2004 12:31:09 -0000
@@ -192,15 +192,7 @@ tree_size (tree node)
  					+ (PHI_ARG_CAPACITY (node) - 1) *
  					sizeof (struct phi_arg_d));

-	case EPHI_NODE:		return (sizeof (struct tree_ephi_node)
-					+ (EPHI_ARG_CAPACITY (node) - 1) *
-					sizeof (struct ephi_arg_d));
-
  	case SSA_NAME:		return sizeof (struct tree_ssa_name);
-	case EUSE_NODE:		return sizeof (struct tree_euse_node);
-
-	case EKILL_NODE:
-	case EEXIT_NODE: 	return sizeof (struct tree_eref_common);

  	case STATEMENT_LIST:	return sizeof (struct tree_statement_list);
  	case BLOCK:		return sizeof (struct tree_block);
@@ -231,9 +223,9 @@ make_node_stat (enum tree_code code MEM_
  #endif
    struct tree_common ttmp;

-  /* We can't allocate a TREE_VEC, PHI_NODE, EPHI_NODE or STRING_CST
+  /* We can't allocate a TREE_VEC, PHI_NODE, or STRING_CST
       without knowing how many elements it will have.  */
-  if (code == TREE_VEC || code == PHI_NODE || code == EPHI_NODE)
+  if (code == TREE_VEC || code == PHI_NODE)
      abort ();

    TREE_SET_CODE ((tree)&ttmp, code);
@@ -1501,10 +1493,6 @@ tree_node_structure (tree t)
      case TREE_LIST:		return TS_LIST;
      case TREE_VEC:		return TS_VEC;
      case PHI_NODE:		return TS_PHI_NODE;
-    case EPHI_NODE:		return TS_EPHI_NODE;
-    case EUSE_NODE:             return TS_EUSE_NODE;
-    case EKILL_NODE:            return TS_EREF_NODE;
-    case EEXIT_NODE:            return TS_EREF_NODE;
      case SSA_NAME:		return TS_SSA_NAME;
      case PLACEHOLDER_EXPR:	return TS_COMMON;
      case STATEMENT_LIST:	return TS_STATEMENT_LIST;
@@ -5174,18 +5162,6 @@ tree_vec_elt_check_failed (int idx, int
       idx + 1, len, function, trim_filename (file), line);
  }

-/* Similar to above, except that the check is for the bounds of a 
EPHI_NODE's
-   (dynamically sized) vector.  */
-
-void
-ephi_node_elt_check_failed (int idx, int len, const char *file, int 
line,
-			    const char *function)
-{
-  internal_error
-    ("tree check: accessed elt %d of ephi_node with %d elts in %s, at 
%s:%d",
-     idx + 1, len, function, trim_filename (file), line);
-}
-
  /* Similar to above, except that the check is for the bounds of a 
PHI_NODE's
     (dynamically sized) vector.  */

@@ -5556,15 +5532,6 @@ build_empty_stmt (void)
    return build1 (NOP_EXPR, void_type_node, size_zero_node);
  }

-bool
-is_essa_node (tree t)
-{
-  if (TREE_CODE (t) == EPHI_NODE || TREE_CODE (t) == EUSE_NODE
-      || TREE_CODE (t) == EEXIT_NODE || TREE_CODE (t) == EKILL_NODE)
-    return true;
-  return false;
-}
-

  /* Return true if T (assumed to be a DECL) must be assigned a memory
     location.  */
Index: tree.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.def,v
retrieving revision 1.77
diff -u -3 -p -r1.77 tree.def
--- tree.def	28 May 2004 16:37:01 -0000	1.77
+++ tree.def	15 Jun 2004 12:31:10 -0000
@@ -866,19 +866,6 @@ DEFTREECODE (ASM_EXPR, "asm_expr", 's',
     nodes to implement SSA versioning.  */
  DEFTREECODE (SSA_NAME, "ssa_name", 'x', 0)

-/* Expression SSA real and phi operand occurrence node.  */
-DEFTREECODE (EUSE_NODE, "euse_node", 'x', 0)
-
-/* Expression SSA kill occurrence node.  */
-DEFTREECODE (EKILL_NODE, "ekill_node", 'x', 0)
-
-/* Expression SSA expression PHI.  Like a regular SSA PHI operator,
-   but for expressions*/
-DEFTREECODE (EPHI_NODE, "ephi_node", 'x', 0)
-
-/* Expression SSA exit occurrence node.  */
-DEFTREECODE (EEXIT_NODE, "eexit_node", 'x', 0)
-
  /* SSA PHI operator.  PHI_RESULT is the new SSA_NAME node created by
     the PHI node.  PHI_ARG_LENGTH is the number of arguments.
     PHI_ARG_ELT returns the Ith tuple <ssa_name, edge> from the
Index: tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.h,v
retrieving revision 1.511
diff -u -3 -p -r1.511 tree.h
--- tree.h	12 Jun 2004 00:18:32 -0000	1.511
+++ tree.h	15 Jun 2004 12:31:12 -0000
@@ -406,16 +406,6 @@ struct tree_common GTY(())
  			       __FUNCTION__);				\
      __t; })

-#define EREF_NODE_CHECK(t) __extension__				\
-({  const tree __t = t;							\
-    if (TREE_CODE (__t) != EPHI_NODE                                   
  \
-        && TREE_CODE (__t) != EKILL_NODE				\
-        && TREE_CODE (__t) != EUSE_NODE					\
-	&& TREE_CODE (__t) != EEXIT_NODE)				\
-      tree_check_failed (__t, TREE_CODE (t),				\
-			 __FILE__, __LINE__, __FUNCTION__);		\
-    __t; })
-
  #define TREE_VEC_ELT_CHECK(T, I) __extension__				\
  (*({const tree __t = (T);						\
      const int __i = (I);						\
@@ -427,17 +417,6 @@ struct tree_common GTY(())
  				 __FILE__, __LINE__, __FUNCTION__);	\
      &__t->vec.a[__i]; }))

-#define EPHI_NODE_ELT_CHECK(t, i) __extension__				\
-(*({const tree __t = t;							\
-    const int __i = (i);						\
-    if (TREE_CODE (__t) != EPHI_NODE)					\
-      tree_check_failed (__t, EPHI_NODE,					\
-			 __FILE__, __LINE__, __FUNCTION__);		\
-    if (__i < 0 || __i >= __t->ephi.capacity)				\
-      ephi_node_elt_check_failed (__i, __t->ephi.num_args,		\
-				 __FILE__, __LINE__, __FUNCTION__);	\
-    &__t->ephi.a[__i]; }))
-
  #define PHI_NODE_ELT_CHECK(t, i) __extension__				\
  (*({const tree __t = t;							\
      const int __i = (i);						\
@@ -506,10 +485,6 @@ extern void tree_vec_elt_check_failed (i
  extern void phi_node_elt_check_failed (int, int, const char *,
  				       int, const char *)
      ATTRIBUTE_NORETURN;
-extern void ephi_node_elt_check_failed (int, int, const char *,
-					int, const char *)
-    ATTRIBUTE_NORETURN;
-
  extern void tree_operand_check_failed (int, enum tree_code,
  				       const char *, int, const char *)
      ATTRIBUTE_NORETURN;
@@ -528,9 +503,7 @@ extern void tree_operand_check_failed (i
  #define TREE_OPERAND_CHECK(T, I)		((T)->exp.operands[I])
  #define TREE_OPERAND_CHECK_CODE(T, CODE, I)	((T)->exp.operands[I])
  #define TREE_RTL_OPERAND_CHECK(T, CODE, I)  (*(rtx *) 
&((T)->exp.operands[I]))
-#define EREF_NODE_CHECK(T)		(T)
  #define PHI_NODE_ELT_CHECK(T, i)	((T)->phi.a[i])
-#define EPHI_NODE_ELT_CHECK(T, i)	((T)->ephi.a[i])

  #endif

@@ -1271,158 +1244,6 @@ struct tree_phi_node GTY(())

  struct varray_head_tag;

-struct tree_eref_common GTY(())
-{
-  struct tree_common common;
-
-  /* SSAPRE: ID for the EREF. Used only for sorting erefs inside a
-     block.  */
-  int id;
-
-  /* SSAPRE: Name for the EREF.  Used only for printing.*/
-  tree name;
-
-  /* SSAPRE: The statement associated with this expression reference.  
*/
-  tree stmt;
-
-  /* SSAPRE: True if expression needs to be saved to a temporary.  */
-  unsigned int save:1;
-
-  /* SSAPRE: True if expression needs to be reloaded from a temporary. 
  */
-  unsigned int reload:1;
-
-  /* SSAPRE: Redundancy class of expression.  */
-  unsigned int class;
-
-  /* SSAPRE: Processed flag 1.  */
-  unsigned int processed:1;
-
-  /* SSAPRE: True if expression is injured.  */
-  unsigned int injured:1;
-
-  /* SSAPRE: Temporary assigned to this reference.  */
-  tree temp;
-
-};
-
-struct tree_euse_node GTY(())
-{
-  struct tree_eref_common common;
-
-  /* SSAPRE: Definition for this use.  */
-  tree def;
-
-  /* SSAPRE: True if this is an EPHI operand occurrence.  */
-  unsigned int op_occurrence:1;
-
-  /* SSAPRE: True if expression was inserted as a PHI operand 
occurrence.  */
-  unsigned int inserted:1;
-
-  /* SSAPRE: True if expression occurs as a lvalue.  */
-  unsigned int lval:1;
-};
-struct ephi_arg_d GTY(())
-{
-
-  /* SSAPRE: True if this phi argument is injured.  */
-  unsigned int injured:1;
-
-  /* SSAPRE: True if there is a real occurrence for this phi argument. 
  */
-  unsigned int has_real_use:1;
-
-  /* SSAPRE: True if delayed renaming is required on this phi 
argument.  */
-  unsigned int delayed_rename:1;
-
-  /* SSAPRE: Processed 2 flag for this phi argument.  */
-  unsigned int processed2:1;
-
-  /* SSAPRE: True if this operand stops forward movement.  */
-  unsigned int stops:1;
-
-  /* SSAPRE: Definition of this phi operand.  */
-  tree def;
-
-  /* SSAPRE: Phi predecessor for this phi operand.  */
-  tree pred;
-
-  struct edge_def * GTY((skip (""))) e;
-};
-struct tree_ephi_node GTY(())
-{
-  struct tree_eref_common common;
-
-  /* SSAPRE: True if PHI is downsafe.  */
-  unsigned int downsafe:1;
-
-  /* SSAPRE: True if PHI is cant_be_avail.  */
-  unsigned int cant_be_avail:1;
-
-  /* SSAPRE: True if PHI is dead.  */
-  unsigned int dead:1;
-
-  /* SSAPRE: True if PHI is pointless or identical to some value.  */
-  unsigned int identity:1;
-
-  /* SSAPRE: True if replacing occurrence known for ESSA minimization. 
  */
-  unsigned int rep_occur_known:1;
-
-  /* SSAPRE: True if PHI is pointless, but is also injured.  */
-  unsigned int ident_injured:1;
-
-  /* SSAPRE: True if this PHI stops forward movement.  */
-  unsigned int stops:1;
-
-  /* SSAPRE: If PHI's replacing occurrence is known, this is it.  */
-  tree identical_to;
-
-  /* SSAPRE: Uses of this ephi.  */
-  struct varray_head_tag *uses;
-
-  int num_args;
-  int capacity;
-  struct ephi_arg_d GTY ((length ("((tree)&%h)->ephi.capacity"))) a[1];
-
-};
-/* In both EPHI's and EUSES */
-#define EREF_PROCESSED(NODE)    EREF_NODE_CHECK (NODE)->eref.processed
-#define EREF_ID(NODE)           EREF_NODE_CHECK (NODE)->eref.id
-#define EREF_NAME(NODE)         EREF_NODE_CHECK (NODE)->eref.name
-#define EREF_STMT(NODE)         EREF_NODE_CHECK (NODE)->eref.stmt
-#define EREF_RELOAD(NODE)       EREF_NODE_CHECK (NODE)->eref.reload
-#define EREF_SAVE(NODE)         EREF_NODE_CHECK (NODE)->eref.save
-#define EREF_CLASS(NODE)        EREF_NODE_CHECK (NODE)->eref.class
-#define EREF_INJURED(NODE)      EREF_NODE_CHECK (NODE)->eref.injured
-#define EREF_TEMP(NODE)         EREF_NODE_CHECK (NODE)->eref.temp
-
-/* In a EUSE_NODE node.  */
-#define EUSE_DEF(NODE)          EUSE_NODE_CHECK (NODE)->euse.def
-#define EUSE_PHIOP(NODE)        EUSE_NODE_CHECK 
(NODE)->euse.op_occurrence
-#define EUSE_INSERTED(NODE)     EUSE_NODE_CHECK (NODE)->euse.inserted
-#define EUSE_LVAL(NODE)         EUSE_NODE_CHECK (NODE)->euse.lval
-
-/* In a EPHI_NODE node.  */
-#define EPHI_NUM_ARGS(NODE)	EPHI_NODE_CHECK (NODE)->ephi.num_args
-#define EPHI_ARG_CAPACITY(NODE)	EPHI_NODE_CHECK (NODE)->ephi.capacity
-#define EPHI_ARG_ELT(NODE, I)	EPHI_NODE_ELT_CHECK (NODE, I)
-#define EPHI_ARG_EDGE(NODE, I)	EPHI_NODE_ELT_CHECK (NODE, I).e
-#define EPHI_ARG_PRED(NODE, I)  EPHI_NODE_ELT_CHECK (NODE, I).pred
-#define EPHI_ARG_DEF(NODE, I)	EPHI_NODE_ELT_CHECK (NODE, I).def
-#define EPHI_ARG_INJURED(NODE, I) EPHI_NODE_ELT_CHECK (NODE, I).injured
-#define EPHI_ARG_DELAYED_RENAME(NODE, I) EPHI_NODE_ELT_CHECK (NODE, 
I).delayed_rename
-#define EPHI_ARG_HAS_REAL_USE(NODE, I) EPHI_NODE_ELT_CHECK (NODE, 
I).has_real_use
-#define EPHI_ARG_STOPS(NODE, I) EPHI_NODE_ELT_CHECK (NODE, I).stops
-#define EPHI_ARG_PROCESSED2(NODE, I) EPHI_NODE_ELT_CHECK (NODE, 
I).processed2
-#define EPHI_IDENTITY(NODE)     EPHI_NODE_CHECK (NODE)->ephi.identity
-#define EPHI_IDENT_INJURED(NODE) EPHI_NODE_CHECK 
(NODE)->ephi.ident_injured
-
-#define EPHI_REP_OCCUR_KNOWN(NODE) EPHI_NODE_CHECK 
(NODE)->ephi.rep_occur_known
-#define EPHI_IDENTICAL_TO(NODE) EPHI_NODE_CHECK 
(NODE)->ephi.identical_to
-#define EPHI_DOWNSAFE(NODE)     EPHI_NODE_CHECK (NODE)->ephi.downsafe
-#define EPHI_CANT_BE_AVAIL(NODE) EPHI_NODE_CHECK 
(NODE)->ephi.cant_be_avail
-#define EPHI_DEAD(NODE)         EPHI_NODE_CHECK (NODE)->ephi.dead
-#define EPHI_USES(NODE)         EPHI_NODE_CHECK (NODE)->ephi.uses
-#define EPHI_STOPS(NODE)         EPHI_NODE_CHECK (NODE)->ephi.stops
-
  /* In a BLOCK node.  */
  #define BLOCK_VARS(NODE) (BLOCK_CHECK (NODE)->block.vars)
  #define BLOCK_SUBBLOCKS(NODE) (BLOCK_CHECK (NODE)->block.subblocks)
@@ -2421,9 +2242,6 @@ enum tree_node_structure_enum {
    TS_EXP,
    TS_SSA_NAME,
    TS_PHI_NODE,
-  TS_EPHI_NODE,
-  TS_EUSE_NODE,
-  TS_EREF_NODE,
    TS_BLOCK,
    TS_STATEMENT_LIST,
    LAST_TS_ENUM
@@ -2450,9 +2268,6 @@ union tree_node GTY ((ptr_alias (union l
    struct tree_exp GTY ((tag ("TS_EXP"))) exp;
    struct tree_ssa_name GTY ((tag ("TS_SSA_NAME"))) ssa_name;
    struct tree_phi_node GTY ((tag ("TS_PHI_NODE"))) phi;
-  struct tree_eref_common GTY ((tag ("TS_EREF_NODE"))) eref;
-  struct tree_ephi_node GTY ((tag ("TS_EPHI_NODE"))) ephi;
-  struct tree_euse_node GTY ((tag ("TS_EUSE_NODE"))) euse;
    struct tree_block GTY ((tag ("TS_BLOCK"))) block;
    struct tree_statement_list GTY ((tag ("TS_STATEMENT_LIST"))) 
stmt_list;
  };
@@ -3410,7 +3225,6 @@ extern tree get_callee_fndecl (tree);
  extern void change_decl_assembler_name (tree, tree);
  extern int type_num_arguments (tree);
  extern tree lhd_unsave_expr_now (tree);
-extern bool is_essa_node (tree);
  extern bool associative_tree_code (enum tree_code);
  extern bool commutative_tree_code (enum tree_code);

Index: tree-inline.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-inline.c,v
retrieving revision 1.105
diff -u -3 -p -r1.105 tree-inline.c
--- tree-inline.c	9 Jun 2004 15:07:01 -0000	1.105
+++ tree-inline.c	15 Jun 2004 12:41:43 -0000
@@ -1238,10 +1238,6 @@ estimate_num_insns_1 (tree *tp, int *wal
      case RETURN_EXPR:
      case EXIT_EXPR:
      case LOOP_EXPR:
-    case EUSE_NODE:
-    case EKILL_NODE:
-    case EPHI_NODE:
-    case EEXIT_NODE:
      case PHI_NODE:
        break;
      /* We don't account constants for now.  Assume that the cost is 
amortized
Index: tree-dfa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-dfa.c,v
retrieving revision 2.8
diff -u -3 -p -r2.8 tree-dfa.c
--- tree-dfa.c	12 Jun 2004 00:18:24 -0000	2.8
+++ tree-dfa.c	15 Jun 2004 12:42:21 -0000
@@ -443,7 +443,7 @@ create_stmt_ann (tree t)
    stmt_ann_t ann;

  #if defined ENABLE_CHECKING
-  if ((!is_gimple_stmt (t) && !is_essa_node (t))
+  if ((!is_gimple_stmt (t))
        || (t->common.ann
  	  && t->common.ann->common.type != STMT_ANN))
      abort ();



More information about the Gcc-patches mailing list