aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-sink.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-sink.cc')
-rw-r--r--gcc/tree-ssa-sink.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-ssa-sink.cc b/gcc/tree-ssa-sink.cc
index e79762b..959e0d5 100644
--- a/gcc/tree-ssa-sink.cc
+++ b/gcc/tree-ssa-sink.cc
@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "cfgloop.h"
#include "tree-eh.h"
#include "tree-ssa-live.h"
+#include "tree-dfa.h"
/* TODO:
1. Sinking store only using scalar promotion (IE without moving the RHS):
@@ -516,7 +517,8 @@ sink_common_stores_to_bb (basic_block bb)
gimple *def = SSA_NAME_DEF_STMT (arg);
if (! is_gimple_assign (def)
|| stmt_can_throw_internal (cfun, def)
- || (gimple_phi_arg_edge (phi, i)->flags & EDGE_ABNORMAL))
+ || (gimple_phi_arg_edge (phi, i)->flags & EDGE_ABNORMAL)
+ || stmt_references_abnormal_ssa_name (def))
{
/* ??? We could handle some cascading with the def being
another PHI. We'd have to insert multiple PHIs for