< 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 >