Index: gcc/gcc/tree-ssa-loop.c |
diff --git a/gcc/gcc/tree-ssa-loop.c b/gcc/gcc/tree-ssa-loop.c |
index 33cb130e4ca5322755af3d312ae4fc1d92801127..591890ccfd579a9477d82792098e7c7f2f0c02da 100644 |
--- a/gcc/gcc/tree-ssa-loop.c |
+++ b/gcc/gcc/tree-ssa-loop.c |
@@ -1,18 +1,18 @@ |
/* Loop optimizations over tree-ssa. |
Copyright (C) 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
- |
+ |
This file is part of GCC. |
- |
+ |
GCC is free software; you can redistribute it and/or modify it |
under the terms of the GNU General Public License as published by the |
Free Software Foundation; either version 3, or (at your option) any |
later version. |
- |
+ |
GCC is distributed in the hope that it will be useful, but WITHOUT |
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
for more details. |
- |
+ |
You should have received a copy of the GNU General Public License |
along with GCC; see the file COPYING3. If not see |
<http://www.gnu.org/licenses/>. */ |
@@ -36,6 +36,8 @@ along with GCC; see the file COPYING3. If not see |
#include "flags.h" |
#include "tree-inline.h" |
#include "tree-scalar-evolution.h" |
+#include "toplev.h" |
+#include "tree-vectorizer.h" |
/* The loop superpass. */ |
@@ -45,7 +47,7 @@ gate_tree_loop (void) |
return flag_tree_loop_optimize != 0; |
} |
-struct gimple_opt_pass pass_tree_loop = |
+struct gimple_opt_pass pass_tree_loop = |
{ |
{ |
GIMPLE_PASS, |
@@ -79,8 +81,8 @@ tree_ssa_loop_init (void) |
scev_initialize (); |
return 0; |
} |
- |
-struct gimple_opt_pass pass_tree_loop_init = |
+ |
+struct gimple_opt_pass pass_tree_loop_init = |
{ |
{ |
GIMPLE_PASS, |
@@ -117,7 +119,7 @@ gate_tree_ssa_loop_im (void) |
return flag_tree_loop_im != 0; |
} |
-struct gimple_opt_pass pass_lim = |
+struct gimple_opt_pass pass_lim = |
{ |
{ |
GIMPLE_PASS, |
@@ -153,7 +155,7 @@ gate_tree_ssa_loop_unswitch (void) |
return flag_unswitch_loops != 0; |
} |
-struct gimple_opt_pass pass_tree_unswitch = |
+struct gimple_opt_pass pass_tree_unswitch = |
{ |
{ |
GIMPLE_PASS, |
@@ -191,7 +193,7 @@ gate_tree_predictive_commoning (void) |
return flag_predictive_commoning != 0; |
} |
-struct gimple_opt_pass pass_predcom = |
+struct gimple_opt_pass pass_predcom = |
{ |
{ |
GIMPLE_PASS, |
@@ -303,10 +305,10 @@ graphite_transforms (void) |
static bool |
gate_graphite_transforms (void) |
{ |
- /* Enable -fgraphite pass if any one of the graphite optimization flags |
+ /* 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_graphite_identity || flag_loop_parallelize_all) |
flag_graphite = 1; |
return flag_graphite != 0; |
@@ -433,37 +435,6 @@ struct gimple_opt_pass pass_scev_cprop = |
} |
}; |
-/* Remove empty loops. */ |
- |
-static unsigned int |
-tree_ssa_empty_loop (void) |
-{ |
- if (number_of_loops () <= 1) |
- return 0; |
- |
- return remove_empty_loops (); |
-} |
- |
-struct gimple_opt_pass pass_empty_loop = |
-{ |
- { |
- GIMPLE_PASS, |
- "empty", /* name */ |
- NULL, /* gate */ |
- tree_ssa_empty_loop, /* execute */ |
- NULL, /* sub */ |
- NULL, /* next */ |
- 0, /* static_pass_number */ |
- TV_COMPLETE_UNROLL, /* tv_id */ |
- PROP_cfg | PROP_ssa, /* properties_required */ |
- 0, /* properties_provided */ |
- 0, /* properties_destroyed */ |
- 0, /* todo_flags_start */ |
- TODO_dump_func | TODO_verify_loops |
- | TODO_ggc_collect /* todo_flags_finish */ |
- } |
-}; |
- |
/* Record bounds on numbers of iterations of loops. */ |
static unsigned int |
@@ -481,7 +452,7 @@ struct gimple_opt_pass pass_record_bounds = |
{ |
{ |
GIMPLE_PASS, |
- NULL, /* name */ |
+ "*record_bounds", /* name */ |
NULL, /* gate */ |
tree_ssa_loop_bounds, /* execute */ |
NULL, /* sub */ |
@@ -704,8 +675,8 @@ tree_ssa_loop_done (void) |
loop_optimizer_finalize (); |
return 0; |
} |
- |
-struct gimple_opt_pass pass_tree_loop_done = |
+ |
+struct gimple_opt_pass pass_tree_loop_done = |
{ |
{ |
GIMPLE_PASS, |