diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2012-08-08 17:39:46 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2012-08-08 17:39:46 +0000 |
commit | 07c5a154bb3d23948235bd9481fecca779b1f62d (patch) | |
tree | b760397677133adc286f0671661422a803af861f /gcc/tree-ssa-loop-manip.c | |
parent | a471762f68f0315df2d3c772596c45f38f45fb7c (diff) | |
download | gcc-07c5a154bb3d23948235bd9481fecca779b1f62d.zip gcc-07c5a154bb3d23948235bd9481fecca779b1f62d.tar.gz gcc-07c5a154bb3d23948235bd9481fecca779b1f62d.tar.bz2 |
re PR middle-end/54146 (Very slow compile with attribute((flatten)))
PR middle-end/54146
* gimpify.c (gimplify_body): Only verify_gimple_in_seq with
checking enabled.
* tree-ssa-loop-manip.c (add_exit_phis_var): Assert that var is
a gimple_reg if checking is enabled.
(find_uses_to_rename_stmt): Only look at non-virtual USE operands.
* tree-into-ssa (compute_global_livein): Change the worklist
type from an array to a VEC.
From-SVN: r190235
Diffstat (limited to 'gcc/tree-ssa-loop-manip.c')
-rw-r--r-- | gcc/tree-ssa-loop-manip.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c index 0ddc56f..19a8eca 100644 --- a/gcc/tree-ssa-loop-manip.c +++ b/gcc/tree-ssa-loop-manip.c @@ -160,10 +160,8 @@ add_exit_phis_var (tree var, bitmap livein, bitmap exits) basic_block def_bb = gimple_bb (SSA_NAME_DEF_STMT (var)); bitmap_iterator bi; - if (is_gimple_reg (var)) - bitmap_clear_bit (livein, def_bb->index); - else - bitmap_set_bit (livein, def_bb->index); + gcc_checking_assert (is_gimple_reg (var)); + bitmap_clear_bit (livein, def_bb->index); def = BITMAP_ALLOC (NULL); bitmap_set_bit (def, def_bb->index); @@ -272,7 +270,7 @@ find_uses_to_rename_stmt (gimple stmt, bitmap *use_blocks, bitmap need_phis) if (is_gimple_debug (stmt)) return; - FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, SSA_OP_ALL_USES) + FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, SSA_OP_USE) find_uses_to_rename_use (bb, var, use_blocks, need_phis); } |