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
This commit is contained in:
Uros Bizjak 2007-07-09 21:22:03 +02:00
parent 15e25df5c7
commit 13c594155d
4 changed files with 30 additions and 8 deletions

View File

@ -1,3 +1,11 @@
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
@ -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.

View File

@ -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

View File

@ -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}.

View File

@ -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 */