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