diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2006-09-06 06:13:22 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2006-09-05 23:13:22 -0700 |
commit | c7f965b6140ac7ac2911b04974fb539665b74abf (patch) | |
tree | 528bb95b3e49e65e4c30b14572ac1d30ded632cf /gcc/tree-ssa-loop-unswitch.c | |
parent | 10b96810c0f327303ac9a7c1519848f4c51f8eca (diff) | |
download | gcc-c7f965b6140ac7ac2911b04974fb539665b74abf.zip gcc-c7f965b6140ac7ac2911b04974fb539665b74abf.tar.gz gcc-c7f965b6140ac7ac2911b04974fb539665b74abf.tar.bz2 |
re PR tree-optimization/28937 (ICE in add_virtual_operand, at tree-ssa-operands.c:1309)
2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/28937
* tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
(canonicalize_induction_variables): Likewise.
(tree_unroll_loops_completely): Likewise.
(tree_ssa_prefetch_arrays): Likewise.
(remove_empty_loops): Likewise.
* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
TODO_cleanup_cfg instead of directly calling
cleanup_tree_cfg_loop.
* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
Likewise.
(tree_unroll_loops_completely): Likewise.
(remove_empty_loops): Likewise.
* tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
* tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
of tree_ssa_unswitch_loops.
(tree_ssa_loop_ivcanon): Use the return value of
canonicalize_induction_variables.
(tree_ssa_empty_loop): Use the return value of
remove_empty_loops.
(tree_complete_unroll): Use the return value of
tree_unroll_loops_completely.
(tree_ssa_loop_prefetch): Use the return value of
tree_ssa_prefetch_arrays.
* passes.c (execute_todo): Before Cleanup CFG, set
updating_used_alone and after cleanup CFG, call
recalculate_used_alone.
2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/28937
* g++.dg/opt/unroll2.C: New test.
From-SVN: r116717
Diffstat (limited to 'gcc/tree-ssa-loop-unswitch.c')
-rw-r--r-- | gcc/tree-ssa-loop-unswitch.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-ssa-loop-unswitch.c b/gcc/tree-ssa-loop-unswitch.c index ecb632c..d9102b2 100644 --- a/gcc/tree-ssa-loop-unswitch.c +++ b/gcc/tree-ssa-loop-unswitch.c @@ -80,7 +80,7 @@ static tree tree_may_unswitch_on (basic_block, struct loop *); /* Main entry point. Perform loop unswitching on all suitable LOOPS. */ -void +unsigned int tree_ssa_unswitch_loops (struct loops *loops) { int i, num; @@ -104,7 +104,8 @@ tree_ssa_unswitch_loops (struct loops *loops) } if (changed) - cleanup_tree_cfg_loop (); + return TODO_cleanup_cfg; + return 0; } /* Checks whether we can unswitch LOOP on condition at end of BB -- one of its |