Commit 13c59415 by Uros Bizjak

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
parent 15e25df5
2007-07-09 Uros Bizjak <ubizjak@gmail.com> 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 PR tree-optimization/32681
* tree-if-conv.c (find_phi_replacement_condition): Use the condition * tree-if-conv.c (find_phi_replacement_condition): Use the condition
saved in second_edge->aux when first_bb is a loop header. saved in second_edge->aux when first_bb is a loop header.
...@@ -2848,7 +2856,7 @@ ...@@ -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.
......
...@@ -1063,6 +1063,10 @@ ftree-pre ...@@ -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
......
...@@ -353,7 +353,7 @@ Objective-C and Objective-C++ Dialects}. ...@@ -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. ...@@ -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. ...@@ -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}.
......
...@@ -1476,15 +1476,21 @@ execute_reassoc (void) ...@@ -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 */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment