aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2007-07-09 21:22:03 +0200
committerUros Bizjak <uros@gcc.gnu.org>2007-07-09 21:22:03 +0200
commit13c594155d94f64e49681064ddb1a9e4e02a6562 (patch)
treea7d61234c913d65d41ef83d40ec2e713ee5e9f49
parent15e25df5c772b13a68a4ced2fb466cd16eaf36d4 (diff)
downloadgcc-13c594155d94f64e49681064ddb1a9e4e02a6562.zip
gcc-13c594155d94f64e49681064ddb1a9e4e02a6562.tar.gz
gcc-13c594155d94f64e49681064ddb1a9e4e02a6562.tar.bz2
re PR target/27855 (reassociation causes the RA to be confused)
PR target/27855 * doc/extend.texi: Add ftree-reassoc flag. * common.opt (ftree-reassoc): New flag. * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function. (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc. From-SVN: r126491
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/common.opt4
-rw-r--r--gcc/doc/invoke.texi12
-rw-r--r--gcc/tree-ssa-reassoc.c12
4 files changed, 30 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca82ac2..2c30159 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2007-07-09 Uros Bizjak <ubizjak@gmail.com>
+ PR target/27855
+ * doc/invoke.texi: Add ftree-reassoc flag.
+ * common.opt (ftree-reassoc): New flag.
+ * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
+ (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
+
+2007-07-09 Uros Bizjak <ubizjak@gmail.com>
+
PR tree-optimization/32681
* tree-if-conv.c (find_phi_replacement_condition): Use the condition
saved in second_edge->aux when first_bb is a loop header.
@@ -2848,7 +2856,7 @@
2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
Tony Linthicum <tony.linthicum@amd.com>
- * doc/extend.texi: Add fvect-cost-model flag.
+ * doc/invoke.texi: Add fvect-cost-model flag.
* common.opt (fvect-cost-model): New flag.
* tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
cost fields in stmt_vec_info struct for STMT.
diff --git a/gcc/common.opt b/gcc/common.opt
index c40a408..dfbbf92 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -1063,6 +1063,10 @@ ftree-pre
Common Report Var(flag_tree_pre) Optimization
Enable SSA-PRE optimization on trees
+ftree-reassoc
+Common Report Var(flag_tree_reassoc) Init(1) Optimization
+Enable reassociation on tree level
+
ftree-salias
Common Report Var(flag_tree_salias) Optimization
Perform structural alias analysis
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f7487a1..6a4bc29 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -353,7 +353,7 @@ Objective-C and Objective-C++ Dialects}.
-fstrict-aliasing -fstrict-overflow -ftracer -fthread-jumps @gol
-funroll-all-loops -funroll-loops -fpeel-loops @gol
-fsplit-ivs-in-unroller -funswitch-loops @gol
--fvariable-expansion-in-unroller @gol
+-fvariable-expansion-in-unroller -ftree-reassoc @gol
-ftree-pre -ftree-ccp -ftree-dce -ftree-loop-optimize @gol
-ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts @gol
-fcheck-data-deps @gol
@@ -5584,9 +5584,9 @@ ones to optimal placement using LCM.
@item -freschedule-modulo-scheduled-loops
@opindex fscheduling-in-modulo-scheduled-loops
-The modulo scheduling comes before the traditional scheduling, if a loop was modulo scheduled
-we may want to prevent the later scheduling passes from changing its schedule, we use this
-option to control that.
+The modulo scheduling comes before the traditional scheduling, if a loop
+was modulo scheduled we may want to prevent the later scheduling passes
+from changing its schedule, we use this option to control that.
@item -fcaller-saves
@opindex fcaller-saves
@@ -5600,6 +5600,10 @@ those which have no call-preserved registers to use instead.
Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+@item -ftree-reassoc
+Perform Reassociation on trees This flag is enabled by default
+at @option{-O} and higher.
+
@item -ftree-pre
Perform Partial Redundancy Elimination (PRE) on trees. This flag is
enabled by default at @option{-O2} and @option{-O3}.
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index 448107b..a38290b 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -1476,15 +1476,21 @@ execute_reassoc (void)
return 0;
}
+static bool
+gate_tree_ssa_reassoc (void)
+{
+ return flag_tree_reassoc != 0;
+}
+
struct tree_opt_pass pass_reassoc =
{
"reassoc", /* name */
- NULL, /* gate */
- execute_reassoc, /* execute */
+ gate_tree_ssa_reassoc, /* gate */
+ execute_reassoc, /* execute */
NULL, /* sub */
NULL, /* next */
0, /* static_pass_number */
- TV_TREE_REASSOC, /* tv_id */
+ TV_TREE_REASSOC, /* tv_id */
PROP_cfg | PROP_ssa | PROP_alias, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */