< prev index next >

src/hotspot/share/opto/macroArrayCopy.cpp

Print this page

        

*** 29,38 **** --- 29,42 ---- #include "opto/convertnode.hpp" #include "opto/graphKit.hpp" #include "opto/macro.hpp" #include "opto/runtime.hpp" #include "utilities/align.hpp" + #if INCLUDE_SHENANDOAHGC + #include "gc/shenandoah/c2/shenandoahBarrierSetC2.hpp" + #include "gc/shenandoah/shenandoahRuntime.hpp" + #endif void PhaseMacroExpand::insert_mem_bar(Node** ctrl, Node** mem, int opcode, Node* precedent) { MemBarNode* mb = MemBarNode::make(C, opcode, Compile::AliasIdxBot, precedent); mb->init_req(TypeFunc::Control, *ctrl);
*** 550,560 **** } } // At this point we know we do not need type checks on oop stores. BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); ! if (alloc != NULL && !bs->array_copy_requires_gc_barriers(copy_type)) { // If we do not need gc barriers, copy using the jint or jlong stub. copy_type = LP64_ONLY(UseCompressedOops ? T_INT : T_LONG) NOT_LP64(T_INT); assert(type2aelembytes(basic_elem_type) == type2aelembytes(copy_type), "sizes agree"); } --- 554,564 ---- } } // At this point we know we do not need type checks on oop stores. BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); ! if (alloc != NULL && !bs->array_copy_requires_gc_barriers(copy_type) && !UseShenandoahGC) { // If we do not need gc barriers, copy using the jint or jlong stub. copy_type = LP64_ONLY(UseCompressedOops ? T_INT : T_LONG) NOT_LP64(T_INT); assert(type2aelembytes(basic_elem_type) == type2aelembytes(copy_type), "sizes agree"); }
< prev index next >