On Sat, 3 Feb 2007, Gerald Pfeifer wrote: >> I'd be curious to know the effect of removing the "complexity" field of >> struct tree_exp. > Doesn't work: > > trunk/gcc/cp/pt.c: In function 'tsubst_expr': > trunk/gcc/cp/pt.c:8924: error: 'struct tree_exp' has no member named > 'complexity'
The updated patch below works, but still runs into the out of memory situation building gnu/javax/swing/text/html/parser/HTML_401F.lo. Gerald Index: gcc/tree.c =================================================================== --- gcc/tree.c (revision 121572) +++ gcc/tree.c (working copy) @@ -2931,7 +2931,6 @@ #else SET_EXPR_LOCUS (t, NULL); #endif - TREE_COMPLEXITY (t) = 0; TREE_OPERAND (t, 0) = node; TREE_BLOCK (t) = NULL_TREE; if (node && !TYPE_P (node)) Index: gcc/tree.h =================================================================== --- gcc/tree.h (revision 121572) +++ gcc/tree.h (working copy) @@ -1498,7 +1498,6 @@ /* In ordinary expression nodes. */ #define TREE_OPERAND(NODE, I) TREE_OPERAND_CHECK (NODE, I) -#define TREE_COMPLEXITY(NODE) (EXPR_CHECK (NODE)->exp.complexity) /* In gimple statements. */ #define GIMPLE_STMT_OPERAND(NODE, I) GIMPLE_STMT_OPERAND_CHECK (NODE, I) @@ -1724,7 +1723,6 @@ { struct tree_common common; source_locus locus; - int complexity; tree block; tree GTY ((special ("tree_exp"), desc ("TREE_CODE ((tree) &%0)"))) Index: gcc/cp/pt.c =================================================================== --- gcc/cp/pt.c (revision 121572) +++ gcc/cp/pt.c (working copy) @@ -8921,7 +8921,9 @@ tree op0, op1; op0 = RECUR (TREE_OPERAND (t, 0)); op1 = RECUR (TREE_OPERAND (t, 1)); +/* finish_omp_atomic (OMP_ATOMIC_CODE (t), op0, op1); +*/ } break; Index: gcc/cp/semantics.c =================================================================== --- gcc/cp/semantics.c (revision 121572) +++ gcc/cp/semantics.c (working copy) @@ -3899,7 +3899,9 @@ { stmt = build2 (OMP_ATOMIC, void_type_node, orig_lhs, orig_rhs); OMP_ATOMIC_DEPENDENT_P (stmt) = 1; +/* OMP_ATOMIC_CODE (stmt) = code; +*/ } add_stmt (stmt); }