8200729: Conditional compilation of GCs

Reviewed-by: ehelin, coleenp, kvn, ihse
This commit is contained in:
Stefan Karlsson 2018-05-04 11:41:35 +02:00
parent d1cf230fc1
commit 1cb95bd3d1
123 changed files with 661 additions and 447 deletions

View file

@ -47,9 +47,9 @@
#include "opto/subnode.hpp"
#include "opto/type.hpp"
#include "runtime/sharedRuntime.hpp"
#if INCLUDE_ALL_GCS
#if INCLUDE_G1GC
#include "gc/g1/g1ThreadLocalData.hpp"
#endif // INCLUDE_ALL_GCS
#endif // INCLUDE_G1GC
//
@ -246,7 +246,9 @@ void PhaseMacroExpand::eliminate_card_mark(Node* p2x) {
assert(mem->is_Store(), "store required");
_igvn.replace_node(mem, mem->in(MemNode::Memory));
}
} else {
}
#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
@ -326,6 +328,7 @@ void PhaseMacroExpand::eliminate_card_mark(Node* p2x) {
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.