]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/tree-ssa-phiopt.c
2012-08-14 Richard Guenther <rguenther@suse.de>
[thirdparty/gcc.git] / gcc / tree-ssa-phiopt.c
index 05166eb8c902a34254b279d17e571b2465ec48a6..0dcfbc7a8bc2250c7bd6d0e903670566b75a6b91 100644 (file)
@@ -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);