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> 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/32681 PR tree-optimization/32681
@ -2848,7 +2856,7 @@
2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com> 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
Tony Linthicum <tony.linthicum@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. * common.opt (fvect-cost-model): New flag.
* tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
cost fields in stmt_vec_info struct for STMT. cost fields in stmt_vec_info struct for STMT.

View File

@ -1063,6 +1063,10 @@ ftree-pre
Common Report Var(flag_tree_pre) Optimization Common Report Var(flag_tree_pre) Optimization
Enable SSA-PRE optimization on trees Enable SSA-PRE optimization on trees
ftree-reassoc
Common Report Var(flag_tree_reassoc) Init(1) Optimization
Enable reassociation on tree level
ftree-salias ftree-salias
Common Report Var(flag_tree_salias) Optimization Common Report Var(flag_tree_salias) Optimization
Perform structural alias analysis Perform structural alias analysis

View File

@ -353,7 +353,7 @@ Objective-C and Objective-C++ Dialects}.
-fstrict-aliasing -fstrict-overflow -ftracer -fthread-jumps @gol -fstrict-aliasing -fstrict-overflow -ftracer -fthread-jumps @gol
-funroll-all-loops -funroll-loops -fpeel-loops @gol -funroll-all-loops -funroll-loops -fpeel-loops @gol
-fsplit-ivs-in-unroller -funswitch-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-pre -ftree-ccp -ftree-dce -ftree-loop-optimize @gol
-ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts @gol -ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts @gol
-fcheck-data-deps @gol -fcheck-data-deps @gol
@ -5584,9 +5584,9 @@ ones to optimal placement using LCM.
@item -freschedule-modulo-scheduled-loops @item -freschedule-modulo-scheduled-loops
@opindex fscheduling-in-modulo-scheduled-loops @opindex fscheduling-in-modulo-scheduled-loops
The modulo scheduling comes before the traditional scheduling, if a loop was modulo scheduled The modulo scheduling comes before the traditional scheduling, if a loop
we may want to prevent the later scheduling passes from changing its schedule, we use this was modulo scheduled we may want to prevent the later scheduling passes
option to control that. from changing its schedule, we use this option to control that.
@item -fcaller-saves @item -fcaller-saves
@opindex 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}. 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 @item -ftree-pre
Perform Partial Redundancy Elimination (PRE) on trees. This flag is Perform Partial Redundancy Elimination (PRE) on trees. This flag is
enabled by default at @option{-O2} and @option{-O3}. enabled by default at @option{-O2} and @option{-O3}.

View File

@ -1476,15 +1476,21 @@ execute_reassoc (void)
return 0; return 0;
} }
static bool
gate_tree_ssa_reassoc (void)
{
return flag_tree_reassoc != 0;
}
struct tree_opt_pass pass_reassoc = struct tree_opt_pass pass_reassoc =
{ {
"reassoc", /* name */ "reassoc", /* name */
NULL, /* gate */ gate_tree_ssa_reassoc, /* gate */
execute_reassoc, /* execute */ execute_reassoc, /* execute */
NULL, /* sub */ NULL, /* sub */
NULL, /* next */ NULL, /* next */
0, /* static_pass_number */ 0, /* static_pass_number */
TV_TREE_REASSOC, /* tv_id */ TV_TREE_REASSOC, /* tv_id */
PROP_cfg | PROP_ssa | PROP_alias, /* properties_required */ PROP_cfg | PROP_ssa | PROP_alias, /* properties_required */
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */