aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-im.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
-rw-r--r--gcc/tree-ssa-loop-im.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 4b187c2..8a81aca 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -1183,14 +1183,10 @@ move_computations_worker (basic_block bb)
COND_EXPR, t, arg0, arg1);
todo |= TODO_cleanup_cfg;
}
- if (INTEGRAL_TYPE_P (TREE_TYPE (gimple_assign_lhs (new_stmt)))
- && (!ALWAYS_EXECUTED_IN (bb)
- || (ALWAYS_EXECUTED_IN (bb) != level
- && !flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level))))
- {
- tree lhs = gimple_assign_lhs (new_stmt);
- SSA_NAME_RANGE_INFO (lhs) = NULL;
- }
+ if (!ALWAYS_EXECUTED_IN (bb)
+ || (ALWAYS_EXECUTED_IN (bb) != level
+ && !flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level)))
+ reset_flow_sensitive_info (gimple_assign_lhs (new_stmt));
gsi_insert_on_edge (loop_preheader_edge (level), new_stmt);
remove_phi_node (&bsi, false);
}
@@ -1253,14 +1249,10 @@ move_computations_worker (basic_block bb)
gsi_remove (&bsi, false);
if (gimple_has_lhs (stmt)
&& TREE_CODE (gimple_get_lhs (stmt)) == SSA_NAME
- && INTEGRAL_TYPE_P (TREE_TYPE (gimple_get_lhs (stmt)))
&& (!ALWAYS_EXECUTED_IN (bb)
|| !(ALWAYS_EXECUTED_IN (bb) == level
|| flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level))))
- {
- tree lhs = gimple_get_lhs (stmt);
- SSA_NAME_RANGE_INFO (lhs) = NULL;
- }
+ reset_flow_sensitive_info (gimple_get_lhs (stmt));
/* In case this is a stmt that is not unconditionally executed
when the target loop header is executed and the stmt may
invoke undefined integer or pointer overflow rewrite it to