Commit 8495c94f by Richard Guenther Committed by Richard Biener

re PR tree-optimization/37991 (excessive memory consumption - possible hang)

2008-11-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37991
	* tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
	* tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
	(set_ssa_val_to): Print if the value changed.
	(simplify_binary_expression): Strip useless conversions.

	* gcc.c-torture/compile/pr37991.c: New testcase.

From-SVN: r141532
parent 99f9aa7b
2008-11-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37991
* tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
* tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
(set_ssa_val_to): Print if the value changed.
(simplify_binary_expression): Strip useless conversions.
2008-11-01 Hans-Peter Nilsson <hp@axis.com> 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
PR target/37939 PR target/37939
......
2008-11-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37991
* gcc.c-torture/compile/pr37991.c: New testcase.
2008-11-01 Hans-Peter Nilsson <hp@axis.com> 2008-11-01 Hans-Peter Nilsson <hp@axis.com>
PR target/37939 PR target/37939
......
typedef int Int32;
void use_it(int);
void FindAndReadSignature(int processedSize)
{
int numPrevBytes = 1;
for (;;)
{
int numBytesInBuffer = numPrevBytes + processedSize;
Int32 numTests = numBytesInBuffer - 1;
use_it (numTests);
numPrevBytes = numBytesInBuffer - numTests;
}
}
...@@ -498,7 +498,7 @@ vuses_to_vec (gimple stmt, VEC (tree, gc) **result) ...@@ -498,7 +498,7 @@ vuses_to_vec (gimple stmt, VEC (tree, gc) **result)
/* Copy the VUSE names in STMT into a vector, and return /* Copy the VUSE names in STMT into a vector, and return
the vector. */ the vector. */
VEC (tree, gc) * static VEC (tree, gc) *
copy_vuses_from_stmt (gimple stmt) copy_vuses_from_stmt (gimple stmt)
{ {
VEC (tree, gc) *vuses = NULL; VEC (tree, gc) *vuses = NULL;
...@@ -1579,7 +1579,6 @@ set_ssa_val_to (tree from, tree to) ...@@ -1579,7 +1579,6 @@ set_ssa_val_to (tree from, tree to)
print_generic_expr (dump_file, from, 0); print_generic_expr (dump_file, from, 0);
fprintf (dump_file, " to "); fprintf (dump_file, " to ");
print_generic_expr (dump_file, to, 0); print_generic_expr (dump_file, to, 0);
fprintf (dump_file, "\n");
} }
currval = SSA_VAL (from); currval = SSA_VAL (from);
...@@ -1587,8 +1586,12 @@ set_ssa_val_to (tree from, tree to) ...@@ -1587,8 +1586,12 @@ set_ssa_val_to (tree from, tree to)
if (currval != to && !operand_equal_p (currval, to, OEP_PURE_SAME)) if (currval != to && !operand_equal_p (currval, to, OEP_PURE_SAME))
{ {
SSA_VAL (from) = to; SSA_VAL (from) = to;
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, " (changed)\n");
return true; return true;
} }
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, "\n");
return false; return false;
} }
...@@ -2113,6 +2116,8 @@ simplify_binary_expression (gimple stmt) ...@@ -2113,6 +2116,8 @@ simplify_binary_expression (gimple stmt)
result = fold_binary (gimple_assign_rhs_code (stmt), result = fold_binary (gimple_assign_rhs_code (stmt),
TREE_TYPE (gimple_get_lhs (stmt)), op0, op1); TREE_TYPE (gimple_get_lhs (stmt)), op0, op1);
if (result)
STRIP_USELESS_TYPE_CONVERSION (result);
fold_undefer_overflow_warnings (result && valid_gimple_rhs_p (result), fold_undefer_overflow_warnings (result && valid_gimple_rhs_p (result),
stmt, 0); stmt, 0);
......
...@@ -196,5 +196,4 @@ unsigned int get_constant_value_id (tree); ...@@ -196,5 +196,4 @@ unsigned int get_constant_value_id (tree);
unsigned int get_or_alloc_constant_value_id (tree); unsigned int get_or_alloc_constant_value_id (tree);
bool value_id_constant_p (unsigned int); bool value_id_constant_p (unsigned int);
VEC (tree, gc) *shared_vuses_from_stmt (gimple); VEC (tree, gc) *shared_vuses_from_stmt (gimple);
VEC (tree, gc) *copy_vuses_from_stmt (gimple);
#endif /* TREE_SSA_SCCVN_H */ #endif /* TREE_SSA_SCCVN_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment