< prev index next >

src/share/vm/opto/escape.cpp

Print this page

        

@@ -35,10 +35,11 @@
 #include "opto/compile.hpp"
 #include "opto/escape.hpp"
 #include "opto/phaseX.hpp"
 #include "opto/movenode.hpp"
 #include "opto/rootnode.hpp"
+#include "opto/valuetypenode.hpp"
 
 ConnectionGraph::ConnectionGraph(Compile * C, PhaseIterGVN *igvn) :
   _nodes(C->comp_arena(), C->unique(), C->unique(), NULL),
   _in_worklist(C->comp_arena()),
   _next_pidx(0),

@@ -592,10 +593,15 @@
     }
     case Op_ThreadLocal: {
       add_java_object(n, PointsToNode::ArgEscape);
       break;
     }
+    case Op_ValueTypePtr: {
+      add_local_var_and_edge(n, PointsToNode::NoEscape,
+                             n->as_ValueTypeBase()->get_oop(), delayed_worklist);
+      break;
+    }
     default:
       ; // Do nothing for nodes not related to EA.
   }
   return;
 }

@@ -797,10 +803,15 @@
           add_edge(n_ptn, ptn);
         }
       }
       break;
     }
+    case Op_ValueTypePtr: {
+      add_local_var_and_edge(n, PointsToNode::NoEscape,
+                             n->as_ValueTypeBase()->get_oop(), NULL);
+      break;
+    }
     default: {
       // This method should be called only for EA specific nodes which may
       // miss some edges when they were created.
 #ifdef ASSERT
       n->dump(1);
< prev index next >