src/share/vm/opto/node.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/opto/node.cpp
src/share/vm/opto/node.cpp
Print this page
rev 6519 : 8026796: Make replace_in_map() on parent maps generic
Summary: propagate node replacements along control flow edges to callers
Reviewed-by:
rev 6520 : [mq]: replaceinmap-8026796-reviews
*** 512,521 ****
--- 512,524 ----
}
// cloning CallNode may need to clone JVMState
if (n->is_Call()) {
n->as_Call()->clone_jvms(C);
}
+ if (n->is_SafePoint()) {
+ n->as_SafePoint()->clone_replaced_nodes();
+ }
return n; // Return the clone
}
//---------------------------setup_is_top--------------------------------------
// Call this when changing the top node, to reassert the invariants
*** 607,616 ****
--- 610,622 ----
compile->remove_macro_node(this);
}
if (is_expensive()) {
compile->remove_expensive_node(this);
}
+ if (is_SafePoint()) {
+ as_SafePoint()->delete_replaced_nodes();
+ }
#ifdef ASSERT
// We will not actually delete the storage, but we'll make the node unusable.
*(address*)this = badAddress; // smash the C++ vtbl, probably
_in = _out = (Node**) badAddress;
_max = _cnt = _outmax = _outcnt = 0;
src/share/vm/opto/node.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File