< prev index next >
src/hotspot/share/opto/macro.cpp
Print this page
rev 49911 : imported patch removeAllGCs
*** 45,57 ****
#include "opto/rootnode.hpp"
#include "opto/runtime.hpp"
#include "opto/subnode.hpp"
#include "opto/type.hpp"
#include "runtime/sharedRuntime.hpp"
! #if INCLUDE_ALL_GCS
#include "gc/g1/g1ThreadLocalData.hpp"
! #endif // INCLUDE_ALL_GCS
//
// Replace any references to "oldref" in inputs to "use" with "newref".
// Returns the number of replacements made.
--- 45,57 ----
#include "opto/rootnode.hpp"
#include "opto/runtime.hpp"
#include "opto/subnode.hpp"
#include "opto/type.hpp"
#include "runtime/sharedRuntime.hpp"
! #if INCLUDE_G1GC
#include "gc/g1/g1ThreadLocalData.hpp"
! #endif // INCLUDE_G1GC
//
// Replace any references to "oldref" in inputs to "use" with "newref".
// Returns the number of replacements made.
*** 244,254 ****
continue;
}
assert(mem->is_Store(), "store required");
_igvn.replace_node(mem, mem->in(MemNode::Memory));
}
! } else {
// G1 pre/post barriers
assert(p2x->outcnt() <= 2, "expects 1 or 2 users: Xor and URShift nodes");
// It could be only one user, URShift node, in Object.clone() intrinsic
// but the new allocation is passed to arraycopy stub and it could not
// be scalar replaced. So we don't check the case.
--- 244,256 ----
continue;
}
assert(mem->is_Store(), "store required");
_igvn.replace_node(mem, mem->in(MemNode::Memory));
}
! }
! #if INCLUDE_G1GC
! else {
// G1 pre/post barriers
assert(p2x->outcnt() <= 2, "expects 1 or 2 users: Xor and URShift nodes");
// It could be only one user, URShift node, in Object.clone() intrinsic
// but the new allocation is passed to arraycopy stub and it could not
// be scalar replaced. So we don't check the case.
*** 324,333 ****
--- 326,336 ----
// Now CastP2X can be removed since it is used only on dead path
// which currently still alive until igvn optimize it.
assert(p2x->outcnt() == 0 || p2x->unique_out()->Opcode() == Op_URShiftX, "");
_igvn.replace_node(p2x, top());
}
+ #endif // INCLUDE_G1GC
}
// Search for a memory operation for the specified memory slice.
static Node *scan_mem_chain(Node *mem, int alias_idx, int offset, Node *start_mem, Node *alloc, PhaseGVN *phase) {
Node *orig_mem = mem;
< prev index next >