aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-manip.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2012-08-08 17:39:46 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2012-08-08 17:39:46 +0000
commit07c5a154bb3d23948235bd9481fecca779b1f62d (patch)
treeb760397677133adc286f0671661422a803af861f /gcc/tree-ssa-loop-manip.c
parenta471762f68f0315df2d3c772596c45f38f45fb7c (diff)
downloadgcc-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.c8
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);
}