diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-03 15:45:10 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-03 15:45:10 +0000 |
commit | 5aaf9e3934432b01b5e05476e88a00d125cb6068 (patch) | |
tree | 2c9f40744eb2641b21f9b4f17a205bf33e0841e2 /gcc/lambda-code.c | |
parent | 878d4cb14a77ee9a27c8d6653353b142977dae71 (diff) | |
download | gcc-5aaf9e3934432b01b5e05476e88a00d125cb6068.tar.gz |
2007-10-03 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/33576
* testsuite/gcc.dg/tree-ssa/pr33576.c: New.
* tree-loop-linear.c (linear_transform_loops): Call remove_iv.
* lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
(remove_iv): Declared.
* lambda-code.c (remove_iv): Not static.
(lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
Don't remove ivs there, save ivs in the buffer.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128986 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lambda-code.c')
-rw-r--r-- | gcc/lambda-code.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/lambda-code.c b/gcc/lambda-code.c index c5734375c29..84ad869a0ef 100644 --- a/gcc/lambda-code.c +++ b/gcc/lambda-code.c @@ -1639,7 +1639,7 @@ lle_to_gcc_expression (lambda_linear_expression lle, /* Remove the induction variable defined at IV_STMT. */ -static void +void remove_iv (tree iv_stmt) { if (TREE_CODE (iv_stmt) == PHI_NODE) @@ -1692,6 +1692,7 @@ void lambda_loopnest_to_gcc_loopnest (struct loop *old_loopnest, VEC(tree,heap) *old_ivs, VEC(tree,heap) *invariants, + VEC(tree,heap) **remove_ivs, lambda_loopnest new_loopnest, lambda_trans_matrix transform, struct obstack * lambda_obstack) @@ -1861,7 +1862,7 @@ lambda_loopnest_to_gcc_loopnest (struct loop *old_loopnest, } /* Remove the now unused induction variable. */ - remove_iv (oldiv_stmt); + VEC_safe_push (tree, heap, *remove_ivs, oldiv_stmt); } VEC_free (tree, heap, new_ivs); } |