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-prefetch.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-prefetch.c')
| -rw-r--r-- | gcc/tree-ssa-loop-prefetch.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c index b58dbf6..9340bbb 100644 --- a/gcc/tree-ssa-loop-prefetch.c +++ b/gcc/tree-ssa-loop-prefetch.c @@ -1006,12 +1006,13 @@ fail:  /* Issue prefetch instructions for array references in LOOPS.  */ -void +unsigned int  tree_ssa_prefetch_arrays (struct loops *loops)  {    unsigned i;    struct loop *loop;    bool unrolled = false; +  int todo_flags = 0;    if (!HAVE_prefetch        /* It is possible to ask compiler for say -mtune=i486 -march=pentium4. @@ -1019,7 +1020,7 @@ tree_ssa_prefetch_arrays (struct loops *loops)  	 of processor costs and i486 does not have prefetch, but  	 -march=pentium4 causes HAVE_prefetch to be true.  Ugh.  */        || PREFETCH_BLOCK == 0) -    return; +    return 0;    initialize_original_copy_tables (); @@ -1057,8 +1058,9 @@ tree_ssa_prefetch_arrays (struct loops *loops)    if (unrolled)      {        scev_reset (); -      cleanup_tree_cfg_loop (); +      todo_flags |= TODO_cleanup_cfg;      }    free_original_copy_tables (); +  return todo_flags;  }  | 
