Mercurial > hg > CbC > CbC_gcc
diff gcc/tree-ssa-loop.c @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
line wrap: on
line diff
--- a/gcc/tree-ssa-loop.c Tue May 25 18:58:51 2010 +0900 +++ b/gcc/tree-ssa-loop.c Tue Mar 22 17:18:12 2011 +0900 @@ -1,5 +1,6 @@ /* Loop optimizations over tree-ssa. - Copyright (C) 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. This file is part of GCC. @@ -25,7 +26,6 @@ #include "tm_p.h" #include "basic-block.h" #include "output.h" -#include "diagnostic.h" #include "tree-flow.h" #include "tree-dump.h" #include "tree-pass.h" @@ -34,7 +34,7 @@ #include "flags.h" #include "tree-inline.h" #include "tree-scalar-evolution.h" -#include "toplev.h" +#include "diagnostic-core.h" #include "tree-vectorizer.h" /* The loop superpass. */ @@ -179,8 +179,7 @@ if (!current_loops) return 0; - tree_predictive_commoning (); - return 0; + return tree_predictive_commoning (); } static bool @@ -246,45 +245,6 @@ } }; -/* Loop nest optimizations. */ - -static unsigned int -tree_linear_transform (void) -{ - if (number_of_loops () <= 1) - return 0; - - linear_transform_loops (); - return 0; -} - -static bool -gate_tree_linear_transform (void) -{ - return flag_tree_loop_linear != 0; -} - -struct gimple_opt_pass pass_linear_transform = -{ - { - GIMPLE_PASS, - "ltrans", /* name */ - gate_tree_linear_transform, /* gate */ - tree_linear_transform, /* execute */ - NULL, /* sub */ - NULL, /* next */ - 0, /* static_pass_number */ - TV_TREE_LINEAR_TRANSFORM, /* tv_id */ - PROP_cfg | PROP_ssa, /* properties_required */ - 0, /* properties_provided */ - 0, /* properties_destroyed */ - 0, /* todo_flags_start */ - TODO_dump_func - | TODO_update_ssa_only_virtuals - | TODO_ggc_collect /* todo_flags_finish */ - } -}; - /* GRAPHITE optimizations. */ static unsigned int @@ -303,13 +263,36 @@ { /* Enable -fgraphite pass if any one of the graphite optimization flags is turned on. */ - if (flag_loop_block || flag_loop_interchange || flag_loop_strip_mine - || flag_graphite_identity || flag_loop_parallelize_all) + if (flag_loop_block + || flag_loop_interchange + || flag_loop_strip_mine + || flag_graphite_identity + || flag_loop_parallelize_all + || flag_loop_flatten) flag_graphite = 1; return flag_graphite != 0; } +struct gimple_opt_pass pass_graphite = +{ + { + GIMPLE_PASS, + "graphite0", /* name */ + gate_graphite_transforms, /* gate */ + NULL, /* execute */ + NULL, /* sub */ + NULL, /* next */ + 0, /* static_pass_number */ + TV_GRAPHITE, /* tv_id */ + PROP_cfg | PROP_ssa, /* properties_required */ + 0, /* properties_provided */ + 0, /* properties_destroyed */ + 0, /* todo_flags_start */ + 0 /* todo_flags_finish */ + } +}; + struct gimple_opt_pass pass_graphite_transforms = { { @@ -325,7 +308,7 @@ 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0 /* todo_flags_finish */ + TODO_dump_func /* todo_flags_finish */ } }; @@ -439,7 +422,7 @@ if (number_of_loops () <= 1) return 0; - estimate_numbers_of_iterations (); + estimate_numbers_of_iterations (true); scev_reset (); return 0; } @@ -544,7 +527,8 @@ 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func + TODO_verify_flow + | TODO_dump_func | TODO_ggc_collect /* todo_flags_finish */ } }; @@ -601,7 +585,7 @@ static bool gate_tree_ssa_loop_prefetch (void) { - return flag_prefetch_loop_arrays != 0; + return flag_prefetch_loop_arrays > 0; } struct gimple_opt_pass pass_loop_prefetch = @@ -686,6 +670,8 @@ 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_cleanup_cfg | TODO_dump_func /* todo_flags_finish */ + TODO_cleanup_cfg + | TODO_verify_flow + | TODO_dump_func /* todo_flags_finish */ } };