diff src/share/vm/opto/node.hpp @ 128:a76240c8b133

Merge
author rasbold
date Mon, 28 Apr 2008 08:08:12 -0700
parents ec73d88d5b43 72f4a668df19
children 7793bd37a336
line wrap: on
line diff
--- a/src/share/vm/opto/node.hpp	Wed Apr 23 06:35:28 2008 -0400
+++ b/src/share/vm/opto/node.hpp	Mon Apr 28 08:08:12 2008 -0700
@@ -741,8 +741,9 @@
   bool is_Goto() const { return (_flags & Flag_is_Goto) != 0; }
   // The data node which is safe to leave in dead loop during IGVN optimization.
   bool is_dead_loop_safe() const {
-    return is_Phi() || is_Proj() ||
-           (_flags & (Flag_is_dead_loop_safe | Flag_is_Con)) != 0;
+    return is_Phi() || (is_Proj() && in(0) == NULL) ||
+           ((_flags & (Flag_is_dead_loop_safe | Flag_is_Con)) != 0 &&
+            (!is_Proj() || !in(0)->is_Allocate()));
   }
 
   // is_Copy() returns copied edge index (0 or 1)