re PR tree-optimization/34683 (SSA rewriting in the loop unroller causes quadratic behavior)

2008-01-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34683
	* tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
	VOPs of the needed size to save memory.  Use VEC_quick_push
	to save compile-time.
	(vdefs_to_vec): Likewise.

From-SVN: r131375
This commit is contained in:
Richard Guenther 2008-01-07 14:49:36 +00:00 committed by Richard Biener
parent c4bd75cd50
commit b61ea03d2d
2 changed files with 15 additions and 2 deletions

View File

@ -1,4 +1,13 @@
2008-01-07 Richard Guenther <rguenther@suse.de>
PR tree-optimization/34683
* tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
VOPs of the needed size to save memory. Use VEC_quick_push
to save compile-time.
(vdefs_to_vec): Likewise.
2008-01-07 Sa Liu <saliu@de.ibm.com>
* config/spu/spu.md (divdf3): Genetate inline code for double division.
The implementation doesn't handle INF or NAN, therefore it only applies
when -ffinite-math-only is given.

View File

@ -389,8 +389,10 @@ vuses_to_vec (tree stmt, VEC (tree, gc) **result)
if (!stmt)
return;
*result = VEC_alloc (tree, gc, num_ssa_operands (stmt, SSA_OP_VIRTUAL_USES));
FOR_EACH_SSA_TREE_OPERAND (vuse, stmt, iter, SSA_OP_VIRTUAL_USES)
VEC_safe_push (tree, gc, *result, vuse);
VEC_quick_push (tree, *result, vuse);
if (VEC_length (tree, *result) > 1)
sort_vuses (*result);
@ -421,8 +423,10 @@ vdefs_to_vec (tree stmt, VEC (tree, gc) **result)
if (!stmt)
return;
*result = VEC_alloc (tree, gc, num_ssa_operands (stmt, SSA_OP_VIRTUAL_DEFS));
FOR_EACH_SSA_TREE_OPERAND (vdef, stmt, iter, SSA_OP_VIRTUAL_DEFS)
VEC_safe_push (tree, gc, *result, vdef);
VEC_quick_push (tree, *result, vdef);
if (VEC_length (tree, *result) > 1)
sort_vuses (*result);