summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-phiopt.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-phiopt.c')
-rw-r--r--gcc/tree-ssa-phiopt.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 05166eb8c90..0dcfbc7a8bc 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -1820,7 +1820,8 @@ hoist_adjacent_loads (basic_block bb0, basic_block bb1,
gimple_stmt_iterator gsi2;
basic_block bb_for_def1, bb_for_def2;
- if (gimple_phi_num_args (phi_stmt) != 2)
+ if (gimple_phi_num_args (phi_stmt) != 2
+ || virtual_operand_p (gimple_phi_result (phi_stmt)))
continue;
arg1 = gimple_phi_arg_def (phi_stmt, 0);
@@ -1829,9 +1830,7 @@ hoist_adjacent_loads (basic_block bb0, basic_block bb1,
if (TREE_CODE (arg1) != SSA_NAME
|| TREE_CODE (arg2) != SSA_NAME
|| SSA_NAME_IS_DEFAULT_DEF (arg1)
- || SSA_NAME_IS_DEFAULT_DEF (arg2)
- || !is_gimple_reg (arg1)
- || !is_gimple_reg (arg2))
+ || SSA_NAME_IS_DEFAULT_DEF (arg2))
continue;
def1 = SSA_NAME_DEF_STMT (arg1);