diff --git a/8204947-Port-ShenandoahTaskTerminator-to-mainline-and-make-it-default.patch b/8204947-Port-ShenandoahTaskTerminator-to-mainline-and-make-it-default.patch index 6fd91f7ea386a8c8a7f0623aead26b05571e5582..379c0a0b06f7c07a26230b6efe2dc4511536d3b9 100644 --- a/8204947-Port-ShenandoahTaskTerminator-to-mainline-and-make-it-default.patch +++ b/8204947-Port-ShenandoahTaskTerminator-to-mainline-and-make-it-default.patch @@ -1,14 +1,5 @@ -commit 21a400b0cecd92cbaf446ac3581df4ff17b1fde1 -Date: Tue Sep 15 19:52:43 2020 +0800 - - 8204947: Port ShenandoahTaskTerminator to mainline and make it default - - Summary: : Improve gc performance, port ShenandoahTaskTerminator to mainline and make it default - LLT: jtreg - Bug url: https://bugs.openjdk.java.net/browse/JDK-8204947 - diff --git a/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp b/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp -index c98691ea7..5fc5ee83e 100644 +index c98691e..5fc5ee8 100644 --- a/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp +++ b/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp @@ -55,6 +55,7 @@ @@ -175,7 +166,7 @@ index c98691ea7..5fc5ee83e 100644 }; diff --git a/src/hotspot/share/gc/cms/parNewGeneration.cpp b/src/hotspot/share/gc/cms/parNewGeneration.cpp -index f6c55900f..0febc5292 100644 +index f6c5590..0febc52 100644 --- a/src/hotspot/share/gc/cms/parNewGeneration.cpp +++ b/src/hotspot/share/gc/cms/parNewGeneration.cpp @@ -74,7 +74,7 @@ ParScanThreadState::ParScanThreadState(Space* to_space_, @@ -250,7 +241,7 @@ index f6c55900f..0febc5292 100644 *to(), *this, *_old_gen, *task_queues(), _overflow_stacks, _preserved_marks_set, diff --git a/src/hotspot/share/gc/cms/parNewGeneration.hpp b/src/hotspot/share/gc/cms/parNewGeneration.hpp -index b3e7c5a7d..7bf37e535 100644 +index b3e7c5a..7bf37e5 100644 --- a/src/hotspot/share/gc/cms/parNewGeneration.hpp +++ b/src/hotspot/share/gc/cms/parNewGeneration.hpp @@ -134,7 +134,7 @@ class ParScanThreadState { @@ -263,7 +254,7 @@ index b3e7c5a7d..7bf37e535 100644 public: AgeTable* age_table() {return &_ageTable;} diff --git a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp -index a987377ae..130f8ec0a 100644 +index a987377..130f8ec 100644 --- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp +++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp @@ -3241,7 +3241,7 @@ protected: @@ -296,7 +287,7 @@ index a987377ae..130f8ec0a 100644 _workers->run_task(&proc_task_proxy, ergo_workers); } diff --git a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp -index eff6b7b02..920f796b5 100644 +index eff6b7b..920f796 100644 --- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp +++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp @@ -366,7 +366,7 @@ G1ConcurrentMark::G1ConcurrentMark(G1CollectedHeap* g1h, @@ -318,7 +309,7 @@ index eff6b7b02..920f796b5 100644 _second_overflow_barrier_sync.set_n_workers((int) active_tasks); } diff --git a/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp b/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp -index 6707537fd..dd253bbdf 100644 +index 6707537..dd253bb 100644 --- a/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp +++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp @@ -322,8 +322,8 @@ class G1ConcurrentMark : public CHeapObj { @@ -348,7 +339,7 @@ index 6707537fd..dd253bbdf 100644 // Claims the next available region to be scanned by a marking // task/thread. It might return NULL if the next region is empty or diff --git a/src/hotspot/share/gc/g1/g1FullGCMarkTask.cpp b/src/hotspot/share/gc/g1/g1FullGCMarkTask.cpp -index 34025dce0..d2c4b8d60 100644 +index 34025dc..d2c4b8d 100644 --- a/src/hotspot/share/gc/g1/g1FullGCMarkTask.cpp +++ b/src/hotspot/share/gc/g1/g1FullGCMarkTask.cpp @@ -60,7 +60,7 @@ void G1FullGCMarkTask::work(uint worker_id) { @@ -361,7 +352,7 @@ index 34025dce0..d2c4b8d60 100644 // This is the point where the entire marking should have completed. assert(marker->oop_stack()->is_empty(), "Marking should have completed"); diff --git a/src/hotspot/share/gc/g1/g1FullGCMarkTask.hpp b/src/hotspot/share/gc/g1/g1FullGCMarkTask.hpp -index 8dfff0555..7223cee50 100644 +index 8dfff05..7223cee 100644 --- a/src/hotspot/share/gc/g1/g1FullGCMarkTask.hpp +++ b/src/hotspot/share/gc/g1/g1FullGCMarkTask.hpp @@ -36,7 +36,7 @@ @@ -374,7 +365,7 @@ index 8dfff0555..7223cee50 100644 public: G1FullGCMarkTask(G1FullCollector* collector); diff --git a/src/hotspot/share/gc/g1/g1FullGCReferenceProcessorExecutor.hpp b/src/hotspot/share/gc/g1/g1FullGCReferenceProcessorExecutor.hpp -index 492c783b6..d4f06f56e 100644 +index 492c783..d4f06f5 100644 --- a/src/hotspot/share/gc/g1/g1FullGCReferenceProcessorExecutor.hpp +++ b/src/hotspot/share/gc/g1/g1FullGCReferenceProcessorExecutor.hpp @@ -32,6 +32,7 @@ @@ -399,7 +390,7 @@ index 492c783b6..d4f06f56e 100644 public: G1RefProcTaskProxy(ProcessTask& proc_task, diff --git a/src/hotspot/share/gc/parallel/pcTasks.cpp b/src/hotspot/share/gc/parallel/pcTasks.cpp -index 57ff23550..30a0f26bc 100644 +index 57ff235..30a0f26 100644 --- a/src/hotspot/share/gc/parallel/pcTasks.cpp +++ b/src/hotspot/share/gc/parallel/pcTasks.cpp @@ -154,14 +154,15 @@ void RefProcTaskExecutor::execute(ProcessTask& task, uint ergo_workers) @@ -421,7 +412,7 @@ index 57ff23550..30a0f26bc 100644 } PSParallelCompact::gc_task_manager()->execute_and_wait(q); diff --git a/src/hotspot/share/gc/parallel/psParallelCompact.cpp b/src/hotspot/share/gc/parallel/psParallelCompact.cpp -index f4cbb9f3a..f6ba28260 100644 +index f4cbb9f..f6ba282 100644 --- a/src/hotspot/share/gc/parallel/psParallelCompact.cpp +++ b/src/hotspot/share/gc/parallel/psParallelCompact.cpp @@ -2075,7 +2075,7 @@ void PSParallelCompact::marking_phase(ParCompactionManager* cm, @@ -458,7 +449,7 @@ index f4cbb9f3a..f6ba28260 100644 { GCTraceTime(Trace, gc, phases) tm("Par Compact", &_gc_timer); diff --git a/src/hotspot/share/gc/parallel/psScavenge.cpp b/src/hotspot/share/gc/parallel/psScavenge.cpp -index 87b2b4cac..9022654da 100644 +index 87b2b4c..9022654 100644 --- a/src/hotspot/share/gc/parallel/psScavenge.cpp +++ b/src/hotspot/share/gc/parallel/psScavenge.cpp @@ -166,11 +166,11 @@ void PSRefProcTaskExecutor::execute(ProcessTask& task, uint ergo_workers) @@ -497,10 +488,10 @@ index 87b2b4cac..9022654da 100644 } diff --git a/src/hotspot/share/gc/shared/gc_globals.hpp b/src/hotspot/share/gc/shared/gc_globals.hpp -index 33ce1dadd..5f39a2671 100644 +index a77964e..b7fa7f6 100644 --- a/src/hotspot/share/gc/shared/gc_globals.hpp +++ b/src/hotspot/share/gc/shared/gc_globals.hpp -@@ -348,6 +348,10 @@ +@@ -376,6 +376,10 @@ develop(uintx, PromotionFailureALotInterval, 5, \ "Total collections between promotion failures a lot") \ \ @@ -513,7 +504,7 @@ index 33ce1dadd..5f39a2671 100644 \ diff --git a/src/hotspot/share/gc/shared/owstTaskTerminator.cpp b/src/hotspot/share/gc/shared/owstTaskTerminator.cpp new file mode 100644 -index 000000000..3c32ab627 +index 0000000..3c32ab6 --- /dev/null +++ b/src/hotspot/share/gc/shared/owstTaskTerminator.cpp @@ -0,0 +1,171 @@ @@ -690,7 +681,7 @@ index 000000000..3c32ab627 +} diff --git a/src/hotspot/share/gc/shared/owstTaskTerminator.hpp b/src/hotspot/share/gc/shared/owstTaskTerminator.hpp new file mode 100644 -index 000000000..9e6fe135a +index 0000000..9e6fe13 --- /dev/null +++ b/src/hotspot/share/gc/shared/owstTaskTerminator.hpp @@ -0,0 +1,79 @@ @@ -774,7 +765,7 @@ index 000000000..9e6fe135a + +#endif // SHARE_VM_GC_SHARED_OWSTTASKTERMINATOR_HPP diff --git a/src/hotspot/share/gc/shared/taskqueue.cpp b/src/hotspot/share/gc/shared/taskqueue.cpp -index 024fbbc9b..2738d6823 100644 +index 024fbbc..2738d68 100644 --- a/src/hotspot/share/gc/shared/taskqueue.cpp +++ b/src/hotspot/share/gc/shared/taskqueue.cpp @@ -24,6 +24,7 @@ @@ -812,29 +803,29 @@ index 024fbbc9b..2738d6823 100644 +} + diff --git a/src/hotspot/share/gc/shared/taskqueue.hpp b/src/hotspot/share/gc/shared/taskqueue.hpp -index 877b843ab..1cafcdeb2 100644 +index ad97377..8909060 100644 --- a/src/hotspot/share/gc/shared/taskqueue.hpp +++ b/src/hotspot/share/gc/shared/taskqueue.hpp -@@ -358,6 +358,8 @@ protected: +@@ -359,6 +359,8 @@ protected: public: // Returns "true" if some TaskQueue in the set contains a task. virtual bool peek() = 0; + // Tasks in queue + virtual uint tasks() const = 0; - }; - - template class TaskQueueSetSuperImpl: public CHeapObj, public TaskQueueSetSuper { -@@ -389,6 +391,7 @@ public: + #if INCLUDE_SHENANDOAHGC + virtual size_t tasks() = 0; + #endif +@@ -393,6 +395,7 @@ public: bool steal(uint queue_num, int* seed, E& t); bool peek(); + uint tasks() const; - - uint size() const { return _n; } - }; -@@ -414,6 +417,15 @@ bool GenericTaskQueueSet::peek() { - return false; + #if INCLUDE_SHENANDOAHGC + size_t tasks(); + #endif +@@ -432,6 +435,15 @@ size_t GenericTaskQueueSet::tasks() { } + #endif +template +uint GenericTaskQueueSet::tasks() const { @@ -848,7 +839,7 @@ index 877b843ab..1cafcdeb2 100644 // When to terminate from the termination protocol. class TerminatorTerminator: public CHeapObj { public: -@@ -425,8 +437,8 @@ public: +@@ -443,8 +455,8 @@ public: #undef TRACESPINNING @@ -856,19 +847,19 @@ index 877b843ab..1cafcdeb2 100644 -private: +class ParallelTaskTerminator: public CHeapObj { +protected: - uint _n_threads; - TaskQueueSetSuper* _queue_set; - -@@ -462,7 +474,7 @@ public: + #if INCLUDE_SHENANDOAHGC + protected: + #endif +@@ -483,7 +495,7 @@ public: // As above, but it also terminates if the should_exit_termination() // method of the terminator parameter returns true. If terminator is // NULL, then it is ignored. -- bool offer_termination(TerminatorTerminator* terminator); -+ virtual bool offer_termination(TerminatorTerminator* terminator); +- SHENANDOAHGC_ONLY(virtual) bool offer_termination(TerminatorTerminator* terminator); ++ SHENANDOAHGC_ONLY(virtual) virtual bool offer_termination(TerminatorTerminator* terminator); // Reset the terminator, so that it may be reused again. // The caller is responsible for ensuring that this is done -@@ -481,6 +493,38 @@ public: +@@ -502,6 +514,38 @@ public: #endif }; diff --git a/8214527-AArch64-ZGC-for-Aarch64.patch b/8214527-AArch64-ZGC-for-Aarch64.patch index abbe2e8f350e02757d3be9b650d46f2eb24d8a19..3696fcea2793404dc1bf0531677fc588cf8e4c51 100644 --- a/8214527-AArch64-ZGC-for-Aarch64.patch +++ b/8214527-AArch64-ZGC-for-Aarch64.patch @@ -1,52 +1,8 @@ -From 7995d2341ea83431d68cf36d22577074e111e32d Mon Sep 17 00:00:00 2001 -Date: Mon, 13 Apr 2020 10:40:13 +0800 -Subject: [PATCH] 8214527: AArch64: ZGC for Aarch64 - -Summary: : -LLT: jtreg -Bug url: https://bugs.openjdk.java.net/browse/JDK-8214527 ---- - make/autoconf/hotspot.m4 | 3 +- - src/hotspot/cpu/aarch64/aarch64.ad | 486 +++++++++++++++++++++ - .../cpu/aarch64/c1_LIRAssembler_aarch64.cpp | 12 +- - .../aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp | 408 +++++++++++++++++ - .../aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp | 92 ++++ - src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp | 19 +- - .../cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp | 8 +- - .../gc/z/zAddress_linux_aarch64.inline.hpp | 31 ++ - .../gc/z/zBackingFile_linux_aarch64.cpp | 426 ++++++++++++++++++ - .../gc/z/zBackingFile_linux_aarch64.hpp | 63 +++ - .../gc/z/zBackingPath_linux_aarch64.cpp | 149 +++++++ - .../gc/z/zBackingPath_linux_aarch64.hpp | 52 +++ - .../linux_aarch64/gc/z/zGlobals_linux_aarch64.cpp | 33 ++ - .../linux_aarch64/gc/z/zGlobals_linux_aarch64.hpp | 88 ++++ - .../gc/z/zLargePages_linux_aarch64.cpp | 38 ++ - .../linux_aarch64/gc/z/zNUMA_linux_aarch64.cpp | 83 ++++ - .../gc/z/zPhysicalMemoryBacking_linux_aarch64.cpp | 270 ++++++++++++ - .../gc/z/zPhysicalMemoryBacking_linux_aarch64.hpp | 65 +++ - .../gc/z/zVirtualMemory_linux_aarch64.cpp | 41 ++ - src/hotspot/share/gc/z/c1/zBarrierSetC1.cpp | 20 +- - 20 files changed, 2361 insertions(+), 20 deletions(-) - create mode 100644 src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp - create mode 100644 src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zAddress_linux_aarch64.inline.hpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.cpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.hpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.cpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.hpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.cpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.hpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zLargePages_linux_aarch64.cpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zNUMA_linux_aarch64.cpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.cpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.hpp - create mode 100644 src/hotspot/os_cpu/linux_aarch64/gc/z/zVirtualMemory_linux_aarch64.cpp - diff --git a/make/autoconf/hotspot.m4 b/make/autoconf/hotspot.m4 -index 1d4c710be..6bfda33da 100644 +index d598b98..61739b9 100644 --- a/make/autoconf/hotspot.m4 +++ b/make/autoconf/hotspot.m4 -@@ -340,7 +340,8 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES], +@@ -367,7 +367,8 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES], # Only enable ZGC on supported platforms AC_MSG_CHECKING([if zgc can be built]) @@ -57,7 +13,7 @@ index 1d4c710be..6bfda33da 100644 else DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES zgc" diff --git a/src/hotspot/cpu/aarch64/aarch64.ad b/src/hotspot/cpu/aarch64/aarch64.ad -index f2a9207b8..57b20775e 100644 +index 890e457..0625053 100644 --- a/src/hotspot/cpu/aarch64/aarch64.ad +++ b/src/hotspot/cpu/aarch64/aarch64.ad @@ -957,6 +957,146 @@ reg_class v3_reg( @@ -219,7 +175,7 @@ index f2a9207b8..57b20775e 100644 //----------SOURCE BLOCK------------------------------------------------------- // This is a block of C++ code which provides values, functions, and -@@ -4732,6 +4877,258 @@ operand vRegD_V3() +@@ -4738,6 +4883,258 @@ operand vRegD_V3() interface(REG_INTER); %} @@ -478,7 +434,7 @@ index f2a9207b8..57b20775e 100644 // Flags register, used as output of signed compare instructions // note that on AArch64 we also use this register as the output for -@@ -17077,6 +17474,95 @@ instruct vsrl2L_imm(vecX dst, vecX src, immI shift) %{ +@@ -17078,6 +17475,95 @@ instruct vsrl2L_imm(vecX dst, vecX src, immI shift) %{ ins_pipe(vshift128_imm); %} @@ -575,10 +531,10 @@ index f2a9207b8..57b20775e 100644 // These must follow all instruction definitions as they use the names // defined in the instructions definitions. diff --git a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp -index 73202f669..cf3ce0a8f 100644 +index fe301df..6ab944b 100644 --- a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp -@@ -1012,7 +1012,11 @@ void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_Patch +@@ -1013,7 +1013,11 @@ void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_Patch if (UseCompressedOops && !wide) { __ decode_heap_oop(dest->as_register()); } @@ -591,10 +547,10 @@ index 73202f669..cf3ce0a8f 100644 } else if (type == T_ADDRESS && addr->disp() == oopDesc::klass_offset_in_bytes()) { if (UseCompressedClassPointers) { __ decode_klass_not_null(dest->as_register()); -@@ -2818,7 +2822,11 @@ void LIR_Assembler::negate(LIR_Opr left, LIR_Opr dest, LIR_Opr tmp) { - - - void LIR_Assembler::leal(LIR_Opr addr, LIR_Opr dest, LIR_PatchCode patch_code, CodeEmitInfo* info) { +@@ -2825,7 +2829,11 @@ void LIR_Assembler::leal(LIR_Opr addr, LIR_Opr dest, LIR_PatchCode patch_code, C + return; + } + #endif - assert(patch_code == lir_patch_none, "Patch code not supported"); + if (patch_code != lir_patch_none) { + deoptimize_trap(info); @@ -606,7 +562,7 @@ index 73202f669..cf3ce0a8f 100644 diff --git a/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp new file mode 100644 -index 000000000..90b2b4ca7 +index 0000000..90b2b4c --- /dev/null +++ b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp @@ -0,0 +1,408 @@ @@ -1020,7 +976,7 @@ index 000000000..90b2b4ca7 +} diff --git a/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp new file mode 100644 -index 000000000..7e8be01cc +index 0000000..7e8be01 --- /dev/null +++ b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp @@ -0,0 +1,92 @@ @@ -1117,7 +1073,7 @@ index 000000000..7e8be01cc + +#endif // CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP diff --git a/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp b/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp -index 89a433013..ac7eb8480 100644 +index 89a4330..ac7eb84 100644 --- a/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp @@ -45,6 +45,9 @@ @@ -1148,7 +1104,7 @@ index 89a433013..ac7eb8480 100644 __ mov(c_rarg3, (intptr_t) Universe::verify_oop_mask()); __ andr(c_rarg2, r0, c_rarg3); diff --git a/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp b/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp -index d2290a670..381211ecc 100644 +index d2290a6..381211e 100644 --- a/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp +++ b/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp @@ -273,13 +273,13 @@ void ZBarrierSetAssembler::generate_c1_load_barrier_stub(LIR_Assembler* ce, @@ -1171,7 +1127,7 @@ index d2290a670..381211ecc 100644 assert_different_registers(ref, ref_addr, noreg); diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zAddress_linux_aarch64.inline.hpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zAddress_linux_aarch64.inline.hpp new file mode 100644 -index 000000000..936480cb5 +index 0000000..936480c --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zAddress_linux_aarch64.inline.hpp @@ -0,0 +1,31 @@ @@ -1208,7 +1164,7 @@ index 000000000..936480cb5 +#endif // OS_CPU_LINUX_AARCH64_ZADDRESS_LINUX_AARCH64_INLINE_HPP diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.cpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.cpp new file mode 100644 -index 000000000..47894b5c8 +index 0000000..47894b5 --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.cpp @@ -0,0 +1,426 @@ @@ -1640,7 +1596,7 @@ index 000000000..47894b5c8 +} diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.hpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.hpp new file mode 100644 -index 000000000..032dbc133 +index 0000000..032dbc1 --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.hpp @@ -0,0 +1,63 @@ @@ -1709,7 +1665,7 @@ index 000000000..032dbc133 +#endif // OS_CPU_LINUX_AARCH64_ZBACKINGFILE_LINUX_AARCH64_HPP diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.cpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.cpp new file mode 100644 -index 000000000..1adffa32b +index 0000000..1adffa3 --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.cpp @@ -0,0 +1,149 @@ @@ -1864,7 +1820,7 @@ index 000000000..1adffa32b +} diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.hpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.hpp new file mode 100644 -index 000000000..a03aaf960 +index 0000000..a03aaf9 --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.hpp @@ -0,0 +1,52 @@ @@ -1922,7 +1878,7 @@ index 000000000..a03aaf960 +#endif // OS_CPU_LINUX_AARCH64_ZBACKINGPATH_LINUX_AARCH64_HPP diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.cpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.cpp new file mode 100644 -index 000000000..5d2480993 +index 0000000..5d24809 --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.cpp @@ -0,0 +1,33 @@ @@ -1961,7 +1917,7 @@ index 000000000..5d2480993 +} diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.hpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.hpp new file mode 100644 -index 000000000..93c18067b +index 0000000..93c1806 --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.hpp @@ -0,0 +1,88 @@ @@ -2055,7 +2011,7 @@ index 000000000..93c18067b +#endif // OS_CPU_LINUX_AARCH64_ZGLOBALS_LINUX_AARCH64_HPP diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zLargePages_linux_aarch64.cpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zLargePages_linux_aarch64.cpp new file mode 100644 -index 000000000..c79195cd1 +index 0000000..c79195c --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zLargePages_linux_aarch64.cpp @@ -0,0 +1,38 @@ @@ -2099,7 +2055,7 @@ index 000000000..c79195cd1 +} diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zNUMA_linux_aarch64.cpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zNUMA_linux_aarch64.cpp new file mode 100644 -index 000000000..10706fac2 +index 0000000..10706fa --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zNUMA_linux_aarch64.cpp @@ -0,0 +1,83 @@ @@ -2188,7 +2144,7 @@ index 000000000..10706fac2 +} diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.cpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.cpp new file mode 100644 -index 000000000..55c2a16e0 +index 0000000..55c2a16 --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.cpp @@ -0,0 +1,270 @@ @@ -2464,7 +2420,7 @@ index 000000000..55c2a16e0 +} diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.hpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.hpp new file mode 100644 -index 000000000..c55b7b17c +index 0000000..c55b7b1 --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.hpp @@ -0,0 +1,65 @@ @@ -2535,7 +2491,7 @@ index 000000000..c55b7b17c +#endif // OS_CPU_LINUX_AARCH64_ZPHYSICALMEMORYBACKING_LINUX_AARCH64_HPP diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/z/zVirtualMemory_linux_aarch64.cpp b/src/hotspot/os_cpu/linux_aarch64/gc/z/zVirtualMemory_linux_aarch64.cpp new file mode 100644 -index 000000000..68df40191 +index 0000000..68df401 --- /dev/null +++ b/src/hotspot/os_cpu/linux_aarch64/gc/z/zVirtualMemory_linux_aarch64.cpp @@ -0,0 +1,41 @@ @@ -2581,7 +2537,7 @@ index 000000000..68df40191 + return true; +} diff --git a/src/hotspot/share/gc/z/c1/zBarrierSetC1.cpp b/src/hotspot/share/gc/z/c1/zBarrierSetC1.cpp -index 9f8ce7424..0abd3980f 100644 +index 9f8ce74..0abd398 100644 --- a/src/hotspot/share/gc/z/c1/zBarrierSetC1.cpp +++ b/src/hotspot/share/gc/z/c1/zBarrierSetC1.cpp @@ -38,21 +38,15 @@ ZLoadBarrierStubC1::ZLoadBarrierStubC1(LIRAccess& access, LIR_Opr ref, address r @@ -2613,6 +2569,3 @@ index 9f8ce7424..0abd3980f 100644 } DecoratorSet ZLoadBarrierStubC1::decorators() const { --- -2.19.1 - diff --git a/8217856-ZGC-Break-out-C2-matching-rules-into-separat.patch b/8217856-ZGC-Break-out-C2-matching-rules-into-separat.patch index 1fa22ee99552e418e6363fcdf913010e46923ce4..a1dd7dea25f59962995a933b09be7c5eef4a99ee 100644 --- a/8217856-ZGC-Break-out-C2-matching-rules-into-separat.patch +++ b/8217856-ZGC-Break-out-C2-matching-rules-into-separat.patch @@ -1,28 +1,10 @@ -From 12c28e19bf70b610a723828ce8395902381436fb Mon Sep 17 00:00:00 2001 -Date: Tue, 18 Feb 2020 18:03:42 +0800 -Subject: [PATCH] 8217856: ZGC: Break out C2 matching rules into separate AD - file - -Summary: : -LLT: jtreg -Bug url: https://bugs.openjdk.java.net/browse/JDK-8217856 ---- - make/hotspot/gensrc/GensrcAdlc.gmk | 6 + - src/hotspot/cpu/aarch64/aarch64.ad | 244 --------------------------- - src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad | 268 ++++++++++++++++++++++++++++++ - src/hotspot/cpu/x86/gc/z/z_x86_64.ad | 168 +++++++++++++++++++ - src/hotspot/cpu/x86/x86_64.ad | 151 ----------------- - 5 files changed, 442 insertions(+), 395 deletions(-) - create mode 100644 src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad - create mode 100644 src/hotspot/cpu/x86/gc/z/z_x86_64.ad - diff --git a/make/hotspot/gensrc/GensrcAdlc.gmk b/make/hotspot/gensrc/GensrcAdlc.gmk -index 92b030b69..1eaed25d9 100644 +index 6878962..bb9721c 100644 --- a/make/hotspot/gensrc/GensrcAdlc.gmk +++ b/make/hotspot/gensrc/GensrcAdlc.gmk -@@ -136,6 +136,12 @@ ifeq ($(call check-jvm-feature, compiler2), true) - $d/os_cpu/$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH)/$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH).ad \ - ))) +@@ -146,6 +146,12 @@ ifeq ($(call check-jvm-feature, compiler2), true) + ))) + endif + ifeq ($(call check-jvm-feature, zgc), true) + AD_SRC_FILES += $(call uniq, $(wildcard $(foreach d, $(AD_SRC_ROOTS), \ @@ -34,7 +16,7 @@ index 92b030b69..1eaed25d9 100644 INSERT_FILENAME_AWK_SCRIPT := \ diff --git a/src/hotspot/cpu/aarch64/aarch64.ad b/src/hotspot/cpu/aarch64/aarch64.ad -index 93dd78e51..3cca2da5b 100644 +index 05b36e2..18e774f 100644 --- a/src/hotspot/cpu/aarch64/aarch64.ad +++ b/src/hotspot/cpu/aarch64/aarch64.ad @@ -1128,13 +1128,6 @@ definitions %{ @@ -51,7 +33,7 @@ index 93dd78e51..3cca2da5b 100644 //----------SOURCE BLOCK------------------------------------------------------- // This is a block of C++ code which provides values, functions, and // definitions necessary in the rest of the architecture description -@@ -17487,243 +17480,6 @@ instruct vsrl2L_imm(vecX dst, vecX src, immI shift) %{ +@@ -17488,243 +17481,6 @@ instruct vsrl2L_imm(vecX dst, vecX src, immI shift) %{ ins_pipe(vshift128_imm); %} @@ -297,7 +279,7 @@ index 93dd78e51..3cca2da5b 100644 // These must follow all instruction definitions as they use the names diff --git a/src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad b/src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad new file mode 100644 -index 000000000..50cc6f924 +index 0000000..50cc6f9 --- /dev/null +++ b/src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad @@ -0,0 +1,268 @@ @@ -571,7 +553,7 @@ index 000000000..50cc6f924 + diff --git a/src/hotspot/cpu/x86/gc/z/z_x86_64.ad b/src/hotspot/cpu/x86/gc/z/z_x86_64.ad new file mode 100644 -index 000000000..38c2e926b +index 0000000..38c2e92 --- /dev/null +++ b/src/hotspot/cpu/x86/gc/z/z_x86_64.ad @@ -0,0 +1,168 @@ @@ -744,7 +726,7 @@ index 000000000..38c2e926b +%} + diff --git a/src/hotspot/cpu/x86/x86_64.ad b/src/hotspot/cpu/x86/x86_64.ad -index f795fb823..7879547ce 100644 +index d127732..fce1b85 100644 --- a/src/hotspot/cpu/x86/x86_64.ad +++ b/src/hotspot/cpu/x86/x86_64.ad @@ -538,19 +538,6 @@ reg_class int_rdi_reg(RDI); @@ -787,7 +769,7 @@ index f795fb823..7879547ce 100644 %} //----------ENCODING BLOCK----------------------------------------------------- -@@ -12520,131 +12494,6 @@ instruct RethrowException() +@@ -12555,131 +12529,6 @@ instruct RethrowException() ins_pipe(pipe_jmp); %} @@ -919,6 +901,3 @@ index f795fb823..7879547ce 100644 // ============================================================================ // This name is KNOWN by the ADLC and cannot be changed. // The ADLC forces a 'TypeRawPtr::BOTTOM' output type --- -2.12.3 - diff --git a/8224675-Late-GC-barrier-insertion-for-ZGC.patch b/8224675-Late-GC-barrier-insertion-for-ZGC.patch index 4f18fd123dde3b2ad65a04a77870cda02d092683..20337cf0f77fc71fd4452fe601c4365adb0730bc 100644 --- a/8224675-Late-GC-barrier-insertion-for-ZGC.patch +++ b/8224675-Late-GC-barrier-insertion-for-ZGC.patch @@ -1,48 +1,8 @@ -From f9885f88585a8299760f905b420af1adb5bcca44 Mon Sep 17 00:00:00 2001 -Date: Mon, 13 Apr 2020 10:46:11 +0800 -Subject: [PATCH] 8224675: Late GC barrier insertion for ZGC - -Summary: : -LLT: jtreg -Bug url: https://bugs.openjdk.java.net/browse/JDK-8224675 ---- - src/hotspot/cpu/aarch64/aarch64.ad | 60 +- - .../aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp | 1 - - src/hotspot/cpu/x86/x86_64.ad | 77 +- - src/hotspot/share/adlc/formssel.cpp | 9 +- - src/hotspot/share/compiler/compilerDirectives.hpp | 2 +- - src/hotspot/share/gc/shared/c2/barrierSetC2.hpp | 4 +- - src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp | 1768 ++++++++--------- - src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp | 116 +- - src/hotspot/share/gc/z/zHeap.cpp | 26 - - src/hotspot/share/gc/z/z_globals.hpp | 3 - - src/hotspot/share/opto/classes.hpp | 5 +- - src/hotspot/share/opto/compile.cpp | 43 +- - src/hotspot/share/opto/compile.hpp | 23 +- - src/hotspot/share/opto/escape.cpp | 8 - - src/hotspot/share/opto/idealGraphPrinter.cpp | 18 +- - src/hotspot/share/opto/idealGraphPrinter.hpp | 14 +- - src/hotspot/share/opto/lcm.cpp | 1 - - src/hotspot/share/opto/loopnode.cpp | 43 +- - src/hotspot/share/opto/loopnode.hpp | 6 +- - src/hotspot/share/opto/loopopts.cpp | 6 - - src/hotspot/share/opto/matcher.cpp | 27 + - src/hotspot/share/opto/memnode.cpp | 21 +- - src/hotspot/share/opto/memnode.hpp | 11 +- - src/hotspot/share/opto/node.cpp | 13 +- - src/hotspot/share/opto/node.hpp | 7 +- - src/hotspot/share/opto/phaseX.cpp | 3 - - src/hotspot/share/opto/phasetype.hpp | 6 + - src/hotspot/share/opto/vectornode.cpp | 1 - - src/hotspot/share/runtime/stackValue.cpp | 8 +- - src/hotspot/share/utilities/growableArray.hpp | 37 + - 30 files changed, 1259 insertions(+), 1108 deletions(-) - diff --git a/src/hotspot/cpu/aarch64/aarch64.ad b/src/hotspot/cpu/aarch64/aarch64.ad -index 57b20775e..a6d2e6609 100644 +index 0625053..af3e593 100644 --- a/src/hotspot/cpu/aarch64/aarch64.ad +++ b/src/hotspot/cpu/aarch64/aarch64.ad -@@ -17517,7 +17517,7 @@ instruct loadBarrierSlowReg(iRegP dst, memory mem, rFlagsReg cr, +@@ -17518,7 +17518,7 @@ instruct loadBarrierSlowReg(iRegP dst, memory mem, rFlagsReg cr, vRegD_V25 v25, vRegD_V26 v26, vRegD_V27 v27, vRegD_V28 v28, vRegD_V29 v29, vRegD_V30 v30, vRegD_V31 v31) %{ match(Set dst (LoadBarrierSlowReg mem)); @@ -51,7 +11,7 @@ index 57b20775e..a6d2e6609 100644 effect(DEF dst, KILL cr, KILL v0, KILL v1, KILL v2, KILL v3, KILL v4, KILL v5, KILL v6, KILL v7, -@@ -17546,7 +17546,7 @@ instruct loadBarrierWeakSlowReg(iRegP dst, memory mem, rFlagsReg cr, +@@ -17547,7 +17547,7 @@ instruct loadBarrierWeakSlowReg(iRegP dst, memory mem, rFlagsReg cr, vRegD_V25 v25, vRegD_V26 v26, vRegD_V27 v27, vRegD_V28 v28, vRegD_V29 v29, vRegD_V30 v30, vRegD_V31 v31) %{ match(Set dst (LoadBarrierSlowReg mem)); @@ -60,7 +20,7 @@ index 57b20775e..a6d2e6609 100644 effect(DEF dst, KILL cr, KILL v0, KILL v1, KILL v2, KILL v3, KILL v4, KILL v5, KILL v6, KILL v7, -@@ -17563,6 +17563,62 @@ instruct loadBarrierWeakSlowReg(iRegP dst, memory mem, rFlagsReg cr, +@@ -17564,6 +17564,62 @@ instruct loadBarrierWeakSlowReg(iRegP dst, memory mem, rFlagsReg cr, ins_pipe(pipe_slow); %} @@ -124,7 +84,7 @@ index 57b20775e..a6d2e6609 100644 // These must follow all instruction definitions as they use the names // defined in the instructions definitions. diff --git a/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp -index 90b2b4ca7..8e169ace4 100644 +index 90b2b4c..8e169ac 100644 --- a/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp @@ -245,7 +245,6 @@ void ZBarrierSetAssembler::generate_c1_load_barrier_stub(LIR_Assembler* ce, @@ -136,23 +96,23 @@ index 90b2b4ca7..8e169ace4 100644 ref_addr = tmp = stub->tmp()->as_pointer_register(); } else { diff --git a/src/hotspot/cpu/x86/x86_64.ad b/src/hotspot/cpu/x86/x86_64.ad -index 9d9eda84b..97c396875 100644 +index 3f92fdf..e256e22 100644 --- a/src/hotspot/cpu/x86/x86_64.ad +++ b/src/hotspot/cpu/x86/x86_64.ad -@@ -538,6 +538,12 @@ reg_class int_rdi_reg(RDI); - +@@ -539,6 +539,12 @@ reg_class int_rdi_reg(RDI); %} -+source_hpp %{ + source_hpp %{ + +#include "gc/z/c2/zBarrierSetC2.hpp" + +%} + - source_hpp %{ ++source_hpp %{ #if INCLUDE_ZGC #include "gc/z/zBarrierSetAssembler.hpp" -@@ -12630,7 +12636,7 @@ instruct RethrowException() + #endif +@@ -12665,7 +12671,7 @@ instruct RethrowException() instruct loadBarrierSlowRegNoVec(rRegP dst, memory mem, rFlagsReg cr) %{ match(Set dst (LoadBarrierSlowReg mem)); @@ -161,7 +121,7 @@ index 9d9eda84b..97c396875 100644 effect(DEF dst, KILL cr); -@@ -12661,7 +12667,7 @@ instruct loadBarrierSlowRegXmmAndYmm(rRegP dst, memory mem, rFlagsReg cr, +@@ -12696,7 +12702,7 @@ instruct loadBarrierSlowRegXmmAndYmm(rRegP dst, memory mem, rFlagsReg cr, rxmm12 x12, rxmm13 x13, rxmm14 x14, rxmm15 x15) %{ match(Set dst (LoadBarrierSlowReg mem)); @@ -170,7 +130,7 @@ index 9d9eda84b..97c396875 100644 effect(DEF dst, KILL cr, KILL x0, KILL x1, KILL x2, KILL x3, -@@ -12700,7 +12706,7 @@ instruct loadBarrierSlowRegZmm(rRegP dst, memory mem, rFlagsReg cr, +@@ -12735,7 +12741,7 @@ instruct loadBarrierSlowRegZmm(rRegP dst, memory mem, rFlagsReg cr, rxmm28 x28, rxmm29 x29, rxmm30 x30, rxmm31 x31) %{ match(Set dst (LoadBarrierSlowReg mem)); @@ -179,7 +139,7 @@ index 9d9eda84b..97c396875 100644 effect(DEF dst, KILL cr, KILL x0, KILL x1, KILL x2, KILL x3, -@@ -12739,7 +12745,7 @@ instruct loadBarrierSlowRegZmm(rRegP dst, memory mem, rFlagsReg cr, +@@ -12774,7 +12780,7 @@ instruct loadBarrierSlowRegZmm(rRegP dst, memory mem, rFlagsReg cr, instruct loadBarrierWeakSlowRegNoVec(rRegP dst, memory mem, rFlagsReg cr) %{ match(Set dst (LoadBarrierSlowReg mem)); @@ -188,7 +148,7 @@ index 9d9eda84b..97c396875 100644 effect(DEF dst, KILL cr); -@@ -12769,8 +12775,8 @@ instruct loadBarrierWeakSlowRegXmmAndYmm(rRegP dst, memory mem, rFlagsReg cr, +@@ -12804,8 +12810,8 @@ instruct loadBarrierWeakSlowRegXmmAndYmm(rRegP dst, memory mem, rFlagsReg cr, rxmm8 x8, rxmm9 x9, rxmm10 x10, rxmm11 x11, rxmm12 x12, rxmm13 x13, rxmm14 x14, rxmm15 x15) %{ @@ -199,7 +159,7 @@ index 9d9eda84b..97c396875 100644 effect(DEF dst, KILL cr, KILL x0, KILL x1, KILL x2, KILL x3, -@@ -12808,8 +12814,8 @@ instruct loadBarrierWeakSlowRegZmm(rRegP dst, memory mem, rFlagsReg cr, +@@ -12843,8 +12849,8 @@ instruct loadBarrierWeakSlowRegZmm(rRegP dst, memory mem, rFlagsReg cr, rxmm24 x24, rxmm25 x25, rxmm26 x26, rxmm27 x27, rxmm28 x28, rxmm29 x29, rxmm30 x30, rxmm31 x31) %{ @@ -210,7 +170,7 @@ index 9d9eda84b..97c396875 100644 effect(DEF dst, KILL cr, KILL x0, KILL x1, KILL x2, KILL x3, -@@ -12840,6 +12846,61 @@ instruct loadBarrierWeakSlowRegZmm(rRegP dst, memory mem, rFlagsReg cr, +@@ -12875,6 +12881,61 @@ instruct loadBarrierWeakSlowRegZmm(rRegP dst, memory mem, rFlagsReg cr, ins_pipe(pipe_slow); %} @@ -273,7 +233,7 @@ index 9d9eda84b..97c396875 100644 // This name is KNOWN by the ADLC and cannot be changed. // The ADLC forces a 'TypeRawPtr::BOTTOM' output type diff --git a/src/hotspot/share/adlc/formssel.cpp b/src/hotspot/share/adlc/formssel.cpp -index 466880d19..2845cf6d8 100644 +index 3c02c51..ef704f4 100644 --- a/src/hotspot/share/adlc/formssel.cpp +++ b/src/hotspot/share/adlc/formssel.cpp @@ -775,8 +775,9 @@ bool InstructForm::captures_bottom_type(FormDict &globals) const { @@ -285,11 +245,11 @@ index 466880d19..2845cf6d8 100644 !strcmp(_matrule->_rChild->_opType,"LoadBarrierSlowReg") || - !strcmp(_matrule->_rChild->_opType,"LoadBarrierWeakSlowReg") || #endif - !strcmp(_matrule->_rChild->_opType,"CompareAndExchangeP") || - !strcmp(_matrule->_rChild->_opType,"CompareAndExchangeN"))) return true; -@@ -3503,10 +3504,12 @@ int MatchNode::needs_ideal_memory_edge(FormDict &globals) const { - "WeakCompareAndSwapB", "WeakCompareAndSwapS", "WeakCompareAndSwapI", "WeakCompareAndSwapL", "WeakCompareAndSwapP", "WeakCompareAndSwapN", - "CompareAndExchangeB", "CompareAndExchangeS", "CompareAndExchangeI", "CompareAndExchangeL", "CompareAndExchangeP", "CompareAndExchangeN", + #if INCLUDE_SHENANDOAHGC + !strcmp(_matrule->_rChild->_opType,"ShenandoahCompareAndExchangeP") || +@@ -3510,10 +3511,12 @@ int MatchNode::needs_ideal_memory_edge(FormDict &globals) const { + "ShenandoahCompareAndSwapN", "ShenandoahCompareAndSwapP", "ShenandoahWeakCompareAndSwapP", "ShenandoahWeakCompareAndSwapN", "ShenandoahCompareAndExchangeP", "ShenandoahCompareAndExchangeN", + #endif "StoreCM", - "ClearArray", "GetAndSetB", "GetAndSetS", "GetAndAddI", "GetAndSetI", "GetAndSetP", @@ -303,7 +263,7 @@ index 466880d19..2845cf6d8 100644 int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); if( strcmp(_opType,"PrefetchAllocation")==0 ) diff --git a/src/hotspot/share/compiler/compilerDirectives.hpp b/src/hotspot/share/compiler/compilerDirectives.hpp -index b4de7faed..8eba28f94 100644 +index b4de7fa..8eba28f 100644 --- a/src/hotspot/share/compiler/compilerDirectives.hpp +++ b/src/hotspot/share/compiler/compilerDirectives.hpp @@ -67,7 +67,7 @@ NOT_PRODUCT(cflags(TraceOptoOutput, bool, TraceOptoOutput, TraceOptoOutput)) @@ -316,7 +276,7 @@ index b4de7faed..8eba28f94 100644 #define compilerdirectives_c2_flags(cflags) #endif diff --git a/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp b/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp -index 8baf4d9de..eea74674f 100644 +index 8baf4d9..eea7467 100644 --- a/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp +++ b/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp @@ -208,15 +208,17 @@ public: @@ -339,7 +299,7 @@ index 8baf4d9de..eea74674f 100644 #endif // SHARE_GC_SHARED_C2_BARRIERSETC2_HPP diff --git a/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp b/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp -index 221ab4c2f..bf0bd43af 100644 +index 221ab4c..bf0bd43 100644 --- a/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp +++ b/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp @@ -22,14 +22,21 @@ @@ -2331,7 +2291,7 @@ index 221ab4c2f..bf0bd43af 100644 + return true; +} diff --git a/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp b/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp -index fc9dadd67..bef6a7048 100644 +index fc9dadd..bef6a70 100644 --- a/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp +++ b/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp @@ -29,14 +29,33 @@ @@ -2525,7 +2485,7 @@ index fc9dadd67..bef6a7048 100644 #endif // SHARE_GC_Z_C2_ZBARRIERSETC2_HPP diff --git a/src/hotspot/share/gc/z/zHeap.cpp b/src/hotspot/share/gc/z/zHeap.cpp -index eb72707e0..62f97d2a2 100644 +index eb72707..62f97d2 100644 --- a/src/hotspot/share/gc/z/zHeap.cpp +++ b/src/hotspot/share/gc/z/zHeap.cpp @@ -304,35 +304,9 @@ void ZHeap::mark_flush_and_free(Thread* thread) { @@ -2565,7 +2525,7 @@ index eb72707e0..62f97d2a2 100644 if (!_mark.end()) { // Marking not completed, continue concurrent mark diff --git a/src/hotspot/share/gc/z/z_globals.hpp b/src/hotspot/share/gc/z/z_globals.hpp -index a75329372..9e0f8985b 100644 +index a753293..9e0f898 100644 --- a/src/hotspot/share/gc/z/z_globals.hpp +++ b/src/hotspot/share/gc/z/z_globals.hpp @@ -94,9 +94,6 @@ @@ -2579,7 +2539,7 @@ index a75329372..9e0f8985b 100644 "Verify that reference loads are followed by barriers") diff --git a/src/hotspot/share/opto/classes.hpp b/src/hotspot/share/opto/classes.hpp -index 4314edd96..f6b588685 100644 +index 6b7050d..69f8a3c 100644 --- a/src/hotspot/share/opto/classes.hpp +++ b/src/hotspot/share/opto/classes.hpp @@ -196,7 +196,10 @@ macro(LoadS) @@ -2595,10 +2555,10 @@ index 4314edd96..f6b588685 100644 macro(Loop) macro(LoopLimit) diff --git a/src/hotspot/share/opto/compile.cpp b/src/hotspot/share/opto/compile.cpp -index dc92af402..ef4a6ab13 100644 +index 147ce88..45e2d11 100644 --- a/src/hotspot/share/opto/compile.cpp +++ b/src/hotspot/share/opto/compile.cpp -@@ -2207,8 +2207,8 @@ void Compile::Optimize() { +@@ -2213,8 +2213,8 @@ void Compile::Optimize() { #endif @@ -2608,7 +2568,7 @@ index dc92af402..ef4a6ab13 100644 bs->verify_gc_barriers(true); #endif -@@ -2380,12 +2380,6 @@ void Compile::Optimize() { +@@ -2386,12 +2386,6 @@ void Compile::Optimize() { return; } @@ -2621,7 +2581,7 @@ index dc92af402..ef4a6ab13 100644 if (failing()) return; // Ensure that major progress is now clear -@@ -2405,7 +2399,13 @@ void Compile::Optimize() { +@@ -2411,7 +2405,13 @@ void Compile::Optimize() { } #ifdef ASSERT @@ -2636,7 +2596,7 @@ index dc92af402..ef4a6ab13 100644 bs->verify_gc_barriers(false); #endif -@@ -2953,10 +2953,6 @@ void Compile::final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc) { +@@ -2980,10 +2980,6 @@ void Compile::final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc) { case Op_LoadL_unaligned: case Op_LoadPLocked: case Op_LoadP: @@ -2647,7 +2607,7 @@ index dc92af402..ef4a6ab13 100644 case Op_LoadN: case Op_LoadRange: case Op_LoadS: { -@@ -2973,6 +2969,29 @@ void Compile::final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc) { +@@ -3000,6 +2996,29 @@ void Compile::final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc) { break; } @@ -2678,7 +2638,7 @@ index dc92af402..ef4a6ab13 100644 Node *addp = n->in(AddPNode::Address); assert( !addp->is_AddP() || diff --git a/src/hotspot/share/opto/compile.hpp b/src/hotspot/share/opto/compile.hpp -index a56439bbf..bfd85d032 100644 +index 04ced5d..320030e 100644 --- a/src/hotspot/share/opto/compile.hpp +++ b/src/hotspot/share/opto/compile.hpp @@ -52,6 +52,7 @@ class C2Compiler; @@ -2689,7 +2649,7 @@ index a56439bbf..bfd85d032 100644 class InlineTree; class Int_Array; class LoadBarrierNode; -@@ -655,6 +656,7 @@ class Compile : public Phase { +@@ -659,6 +660,7 @@ class Compile : public Phase { void set_inlining_incrementally(bool z) { _inlining_incrementally = z; } int inlining_incrementally() const { return _inlining_incrementally; } void set_major_progress() { _major_progress++; } @@ -2697,7 +2657,7 @@ index a56439bbf..bfd85d032 100644 void clear_major_progress() { _major_progress = 0; } int num_loop_opts() const { return _num_loop_opts; } void set_num_loop_opts(int n) { _num_loop_opts = n; } -@@ -744,7 +746,15 @@ class Compile : public Phase { +@@ -748,7 +750,15 @@ class Compile : public Phase { C->_latest_stage_start_counter.stamp(); } @@ -2714,7 +2674,7 @@ index a56439bbf..bfd85d032 100644 EventCompilerPhase event; if (event.should_commit()) { event.set_starttime(C->_latest_stage_start_counter); -@@ -754,10 +764,15 @@ class Compile : public Phase { +@@ -758,10 +768,15 @@ class Compile : public Phase { event.commit(); } @@ -2734,10 +2694,10 @@ index a56439bbf..bfd85d032 100644 #endif C->_latest_stage_start_counter.stamp(); diff --git a/src/hotspot/share/opto/escape.cpp b/src/hotspot/share/opto/escape.cpp -index e0637ee47..235b31c4c 100644 +index b709058..cd0ef26 100644 --- a/src/hotspot/share/opto/escape.cpp +++ b/src/hotspot/share/opto/escape.cpp -@@ -453,10 +453,6 @@ void ConnectionGraph::add_node_to_connection_graph(Node *n, Unique_Node_List *de +@@ -456,10 +456,6 @@ void ConnectionGraph::add_node_to_connection_graph(Node *n, Unique_Node_List *de break; } case Op_LoadP: @@ -2748,7 +2708,7 @@ index e0637ee47..235b31c4c 100644 case Op_LoadN: case Op_LoadPLocked: { add_objload_to_connection_graph(n, delayed_worklist); -@@ -666,10 +662,6 @@ void ConnectionGraph::add_final_edges(Node *n) { +@@ -696,10 +692,6 @@ void ConnectionGraph::add_final_edges(Node *n) { break; } case Op_LoadP: @@ -2760,7 +2720,7 @@ index e0637ee47..235b31c4c 100644 case Op_LoadPLocked: { // Using isa_ptr() instead of isa_oopptr() for LoadP and Phi because diff --git a/src/hotspot/share/opto/idealGraphPrinter.cpp b/src/hotspot/share/opto/idealGraphPrinter.cpp -index d90f1d691..a07a51f3e 100644 +index d90f1d6..a07a51f 100644 --- a/src/hotspot/share/opto/idealGraphPrinter.cpp +++ b/src/hotspot/share/opto/idealGraphPrinter.cpp @@ -350,14 +350,6 @@ void IdealGraphPrinter::end_method() { @@ -2800,7 +2760,7 @@ index d90f1d691..a07a51f3e 100644 // Warning, unsafe cast? _chaitin = (PhaseChaitin *)C->regalloc(); diff --git a/src/hotspot/share/opto/idealGraphPrinter.hpp b/src/hotspot/share/opto/idealGraphPrinter.hpp -index 2f4b9faf0..10dd02f9f 100644 +index 2f4b9fa..10dd02f 100644 --- a/src/hotspot/share/opto/idealGraphPrinter.hpp +++ b/src/hotspot/share/opto/idealGraphPrinter.hpp @@ -81,10 +81,6 @@ class IdealGraphPrinter : public CHeapObj { @@ -2846,7 +2806,7 @@ index 2f4b9faf0..10dd02f9f 100644 void set_compile(Compile* compile) {C = compile; } }; diff --git a/src/hotspot/share/opto/lcm.cpp b/src/hotspot/share/opto/lcm.cpp -index 50c0c2dd3..05ec9fa9f 100644 +index 50c0c2d..05ec9fa 100644 --- a/src/hotspot/share/opto/lcm.cpp +++ b/src/hotspot/share/opto/lcm.cpp @@ -170,7 +170,6 @@ void PhaseCFG::implicit_null_check(Block* block, Node *proj, Node *val, int allo @@ -2858,10 +2818,10 @@ index 50c0c2dd3..05ec9fa9f 100644 case Op_LoadS: case Op_LoadKlass: diff --git a/src/hotspot/share/opto/loopnode.cpp b/src/hotspot/share/opto/loopnode.cpp -index 4103fa4bd..b0b7fe185 100644 +index 641c829..6aff3d5 100644 --- a/src/hotspot/share/opto/loopnode.cpp +++ b/src/hotspot/share/opto/loopnode.cpp -@@ -986,7 +986,7 @@ void LoopNode::verify_strip_mined(int expect_skeleton) const { +@@ -990,7 +990,7 @@ void LoopNode::verify_strip_mined(int expect_skeleton) const { wq.push(u); bool found_sfpt = false; for (uint next = 0; next < wq.size() && !found_sfpt; next++) { @@ -2870,7 +2830,7 @@ index 4103fa4bd..b0b7fe185 100644 for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax && !found_sfpt; i++) { Node* u = n->fast_out(i); if (u == sfpt) { -@@ -1000,6 +1000,19 @@ void LoopNode::verify_strip_mined(int expect_skeleton) const { +@@ -1004,6 +1004,19 @@ void LoopNode::verify_strip_mined(int expect_skeleton) const { assert(found_sfpt, "no node in loop that's not input to safepoint"); } } @@ -2890,7 +2850,7 @@ index 4103fa4bd..b0b7fe185 100644 CountedLoopEndNode* cle = inner_out->in(0)->as_CountedLoopEnd(); assert(cle == inner->loopexit_or_null(), "mismatch"); bool has_skeleton = outer_le->in(1)->bottom_type()->singleton() && outer_le->in(1)->bottom_type()->is_int()->get_con() == 0; -@@ -2717,7 +2730,7 @@ bool PhaseIdealLoop::process_expensive_nodes() { +@@ -2729,7 +2742,7 @@ bool PhaseIdealLoop::process_expensive_nodes() { //----------------------------build_and_optimize------------------------------- // Create a PhaseLoop. Build the ideal Loop tree. Map each Ideal Node to // its corresponding LoopNode. If 'optimize' is true, do some loop cleanups. @@ -2898,18 +2858,18 @@ index 4103fa4bd..b0b7fe185 100644 +void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode, bool z_barrier_insertion) { bool do_split_ifs = (mode == LoopOptsDefault || mode == LoopOptsLastRound); bool skip_loop_opts = (mode == LoopOptsNone); - -@@ -2784,7 +2797,8 @@ void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) { + #if INCLUDE_SHENANDOAHGC +@@ -2800,7 +2813,8 @@ void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) { } // Nothing to do, so get out -- bool stop_early = !C->has_loops() && !skip_loop_opts && !do_split_ifs && !_verify_me && !_verify_only; -+ bool stop_early = !C->has_loops() && !skip_loop_opts && !do_split_ifs && !_verify_me && !_verify_only && +- bool stop_early = !C->has_loops() && !skip_loop_opts && !do_split_ifs && !_verify_me && !_verify_only SHENANDOAHGC_ONLY(&& !shenandoah_opts); ++ bool stop_early = !C->has_loops() && !skip_loop_opts && !do_split_ifs && !_verify_me && !_verify_only SHENANDOAHGC_ONLY(&& !shenandoah_opts) && + !z_barrier_insertion; bool do_expensive_nodes = C->should_optimize_expensive_nodes(_igvn); if (stop_early && !do_expensive_nodes) { _igvn.optimize(); // Cleanup NeverBranches -@@ -2876,9 +2890,7 @@ void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) { +@@ -2892,9 +2906,7 @@ void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) { build_loop_late( visited, worklist, nstack ); if (_verify_only) { @@ -2920,7 +2880,7 @@ index 4103fa4bd..b0b7fe185 100644 assert(C->unique() == unique, "verification mode made Nodes? ? ?"); assert(_igvn._worklist.size() == orig_worklist_size, "shouldn't push anything"); return; -@@ -2922,10 +2934,7 @@ void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) { +@@ -2938,10 +2950,7 @@ void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) { if (skip_loop_opts) { // restore major progress flag @@ -2932,9 +2892,9 @@ index 4103fa4bd..b0b7fe185 100644 // Cleanup any modified bits _igvn.optimize(); -@@ -2935,6 +2944,16 @@ void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) { - return; +@@ -2961,6 +2970,16 @@ void PhaseIdealLoop::build_and_optimize(LoopOptsMode mode) { } + #endif + if(z_barrier_insertion) { + BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); @@ -2949,7 +2909,7 @@ index 4103fa4bd..b0b7fe185 100644 if (ReassociateInvariants) { // Reassociate invariants and prep for split_thru_phi for (LoopTreeIterator iter(_ltree_root); !iter.done(); iter.next()) { -@@ -3101,8 +3120,7 @@ void PhaseIdealLoop::verify() const { +@@ -3127,8 +3146,7 @@ void PhaseIdealLoop::verify() const { _ltree_root->verify_tree(loop_verify._ltree_root, NULL); // Reset major-progress. It was cleared by creating a verify version of // PhaseIdealLoop. @@ -2959,7 +2919,7 @@ index 4103fa4bd..b0b7fe185 100644 } //------------------------------verify_compare--------------------------------- -@@ -4225,7 +4243,6 @@ void PhaseIdealLoop::build_loop_late_post( Node *n ) { +@@ -4256,7 +4274,6 @@ void PhaseIdealLoop::build_loop_late_post( Node *n ) { case Op_LoadS: case Op_LoadP: case Op_LoadBarrierSlowReg: @@ -2968,10 +2928,10 @@ index 4103fa4bd..b0b7fe185 100644 case Op_LoadRange: case Op_LoadD_unaligned: diff --git a/src/hotspot/share/opto/loopnode.hpp b/src/hotspot/share/opto/loopnode.hpp -index 5efff246d..d2c50df70 100644 +index 7765ed9..53b9692 100644 --- a/src/hotspot/share/opto/loopnode.hpp +++ b/src/hotspot/share/opto/loopnode.hpp -@@ -929,7 +929,7 @@ public: +@@ -936,7 +936,7 @@ public: } // build the loop tree and perform any requested optimizations @@ -2980,7 +2940,7 @@ index 5efff246d..d2c50df70 100644 // Dominators for the sea of nodes void Dominators(); -@@ -939,13 +939,13 @@ public: +@@ -946,13 +946,13 @@ public: Node *dom_lca_internal( Node *n1, Node *n2 ) const; // Compute the Ideal Node to Loop mapping @@ -2997,7 +2957,7 @@ index 5efff246d..d2c50df70 100644 // Verify that verify_me made the same decisions as a fresh run. diff --git a/src/hotspot/share/opto/loopopts.cpp b/src/hotspot/share/opto/loopopts.cpp -index 567069193..5793f51f2 100644 +index 5670691..5793f51 100644 --- a/src/hotspot/share/opto/loopopts.cpp +++ b/src/hotspot/share/opto/loopopts.cpp @@ -1420,12 +1420,6 @@ void PhaseIdealLoop::split_if_with_blocks_post(Node *n, bool last_round) { @@ -3014,10 +2974,10 @@ index 567069193..5793f51f2 100644 //------------------------------split_if_with_blocks--------------------------- diff --git a/src/hotspot/share/opto/matcher.cpp b/src/hotspot/share/opto/matcher.cpp -index 1824c89cd..bdcf9c424 100644 +index 9437d37..45d2627 100644 --- a/src/hotspot/share/opto/matcher.cpp +++ b/src/hotspot/share/opto/matcher.cpp -@@ -2279,6 +2279,33 @@ void Matcher::find_shared( Node *n ) { +@@ -2294,6 +2294,33 @@ void Matcher::find_shared( Node *n ) { n->del_req(LoadStoreConditionalNode::ExpectedIn); break; } @@ -3052,10 +3012,10 @@ index 1824c89cd..bdcf9c424 100644 case Op_CMoveF: case Op_CMoveI: diff --git a/src/hotspot/share/opto/memnode.cpp b/src/hotspot/share/opto/memnode.cpp -index ea33eef95..cdaf7669c 100644 +index 6f88074..76e950c 100644 --- a/src/hotspot/share/opto/memnode.cpp +++ b/src/hotspot/share/opto/memnode.cpp -@@ -927,14 +927,6 @@ static bool skip_through_membars(Compile::AliasType* atp, const TypeInstPtr* tp, +@@ -930,14 +930,6 @@ static bool skip_through_membars(Compile::AliasType* atp, const TypeInstPtr* tp, // a load node that reads from the source array so we may be able to // optimize out the ArrayCopy node later. Node* LoadNode::can_see_arraycopy_value(Node* st, PhaseGVN* phase) const { @@ -3070,7 +3030,7 @@ index ea33eef95..cdaf7669c 100644 Node* ld_adr = in(MemNode::Address); intptr_t ld_off = 0; AllocateNode* ld_alloc = AllocateNode::Ideal_allocation(ld_adr, phase, ld_off); -@@ -2825,7 +2817,8 @@ const Type* SCMemProjNode::Value(PhaseGVN* phase) const +@@ -2833,7 +2825,8 @@ const Type* SCMemProjNode::Value(PhaseGVN* phase) const LoadStoreNode::LoadStoreNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at, const Type* rt, uint required ) : Node(required), _type(rt), @@ -3080,7 +3040,7 @@ index ea33eef95..cdaf7669c 100644 { init_req(MemNode::Control, c ); init_req(MemNode::Memory , mem); -@@ -3119,16 +3112,6 @@ Node *MemBarNode::Ideal(PhaseGVN *phase, bool can_reshape) { +@@ -3127,16 +3120,6 @@ Node *MemBarNode::Ideal(PhaseGVN *phase, bool can_reshape) { return NULL; } @@ -3098,7 +3058,7 @@ index ea33eef95..cdaf7669c 100644 // Eliminate volatile MemBars for scalar replaced objects. if (can_reshape && req() == (Precedent+1)) { diff --git a/src/hotspot/share/opto/memnode.hpp b/src/hotspot/share/opto/memnode.hpp -index 529075761..e2bd6a6d8 100644 +index 5290757..e2bd6a6 100644 --- a/src/hotspot/share/opto/memnode.hpp +++ b/src/hotspot/share/opto/memnode.hpp @@ -182,6 +182,8 @@ private: @@ -3148,7 +3108,7 @@ index 529075761..e2bd6a6d8 100644 class LoadStoreConditionalNode : public LoadStoreNode { diff --git a/src/hotspot/share/opto/node.cpp b/src/hotspot/share/opto/node.cpp -index a7d26152e..9bfc3a3b9 100644 +index 7d12e97..bb020c4 100644 --- a/src/hotspot/share/opto/node.cpp +++ b/src/hotspot/share/opto/node.cpp @@ -546,6 +546,9 @@ Node *Node::clone() const { @@ -3180,7 +3140,7 @@ index a7d26152e..9bfc3a3b9 100644 diff --git a/src/hotspot/share/opto/node.hpp b/src/hotspot/share/opto/node.hpp -index 608aa0c8f..49f415a31 100644 +index b5c6168..a4c5fd8 100644 --- a/src/hotspot/share/opto/node.hpp +++ b/src/hotspot/share/opto/node.hpp @@ -84,8 +84,8 @@ class JumpProjNode; @@ -3193,7 +3153,7 @@ index 608aa0c8f..49f415a31 100644 class LockNode; class LoopNode; class MachBranchNode; -@@ -691,8 +691,7 @@ public: +@@ -696,8 +696,7 @@ public: DEFINE_CLASS_ID(Mem, Node, 4) DEFINE_CLASS_ID(Load, Mem, 0) DEFINE_CLASS_ID(LoadVector, Load, 0) @@ -3203,7 +3163,7 @@ index 608aa0c8f..49f415a31 100644 DEFINE_CLASS_ID(Store, Mem, 1) DEFINE_CLASS_ID(StoreVector, Store, 0) DEFINE_CLASS_ID(LoadStore, Mem, 2) -@@ -834,9 +833,9 @@ public: +@@ -839,9 +838,9 @@ public: DEFINE_CLASS_QUERY(JumpProj) DEFINE_CLASS_QUERY(Load) DEFINE_CLASS_QUERY(LoadStore) @@ -3215,7 +3175,7 @@ index 608aa0c8f..49f415a31 100644 DEFINE_CLASS_QUERY(Loop) DEFINE_CLASS_QUERY(Mach) diff --git a/src/hotspot/share/opto/phaseX.cpp b/src/hotspot/share/opto/phaseX.cpp -index 686e709c3..d1177a56e 100644 +index c65121d..07b8490 100644 --- a/src/hotspot/share/opto/phaseX.cpp +++ b/src/hotspot/share/opto/phaseX.cpp @@ -947,9 +947,6 @@ PhaseIterGVN::PhaseIterGVN( PhaseGVN *gvn ) : PhaseGVN(gvn), @@ -3229,12 +3189,12 @@ index 686e709c3..d1177a56e 100644 /** diff --git a/src/hotspot/share/opto/phasetype.hpp b/src/hotspot/share/opto/phasetype.hpp -index f0eac0b0b..b01b7630f 100644 +index 2f0b6ae..100db17 100644 --- a/src/hotspot/share/opto/phasetype.hpp +++ b/src/hotspot/share/opto/phasetype.hpp -@@ -53,6 +53,9 @@ enum CompilerPhaseType { - PHASE_INCREMENTAL_INLINE, - PHASE_INCREMENTAL_BOXING_INLINE, +@@ -56,6 +56,9 @@ enum CompilerPhaseType { + PHASE_BEFORE_BARRIER_EXPAND, + #endif PHASE_BEFORE_MACRO_EXPANSION, + PHASE_CALL_CATCH_CLEANUP, + PHASE_INSERT_BARRIER, @@ -3242,9 +3202,9 @@ index f0eac0b0b..b01b7630f 100644 PHASE_END, PHASE_FAILURE, -@@ -90,6 +93,9 @@ class CompilerPhaseTypeHelper { - case PHASE_INCREMENTAL_INLINE: return "Incremental Inline"; - case PHASE_INCREMENTAL_BOXING_INLINE: return "Incremental Boxing Inline"; +@@ -96,6 +99,9 @@ class CompilerPhaseTypeHelper { + case PHASE_BEFORE_BARRIER_EXPAND: return "Before Barrier Expand"; + #endif case PHASE_BEFORE_MACRO_EXPANSION: return "Before macro expansion"; + case PHASE_CALL_CATCH_CLEANUP: return "Call catch cleanup"; + case PHASE_INSERT_BARRIER: return "Insert barrier"; @@ -3253,10 +3213,10 @@ index f0eac0b0b..b01b7630f 100644 case PHASE_FAILURE: return "Failure"; default: diff --git a/src/hotspot/share/opto/vectornode.cpp b/src/hotspot/share/opto/vectornode.cpp -index 593baf972..b40587ba5 100644 +index d85b57b..0258db3 100644 --- a/src/hotspot/share/opto/vectornode.cpp +++ b/src/hotspot/share/opto/vectornode.cpp -@@ -253,7 +253,6 @@ void VectorNode::vector_operands(Node* n, uint* start, uint* end) { +@@ -265,7 +265,6 @@ void VectorNode::vector_operands(Node* n, uint* start, uint* end) { case Op_LoadF: case Op_LoadD: case Op_LoadP: case Op_LoadN: case Op_LoadBarrierSlowReg: @@ -3265,26 +3225,24 @@ index 593baf972..b40587ba5 100644 *end = 0; // no vector operands break; diff --git a/src/hotspot/share/runtime/stackValue.cpp b/src/hotspot/share/runtime/stackValue.cpp -index e7a122ce1..3573555c8 100644 +index acc8726..cab1de7 100644 --- a/src/hotspot/share/runtime/stackValue.cpp +++ b/src/hotspot/share/runtime/stackValue.cpp -@@ -122,13 +122,7 @@ StackValue* StackValue::create_stack_value(const frame* fr, const RegisterMap* r - val = (oop)NULL; +@@ -139,11 +139,7 @@ StackValue* StackValue::create_stack_value(const frame* fr, const RegisterMap* r } #endif --#if INCLUDE_ZGC -- // Deoptimization must make sure all oop have passed load barrier -- if (UseZGC) { -- val = ZBarrier::load_barrier_on_oop_field_preloaded((oop*)value_addr, val); + +-#if INCLUDE_SHENANDOAHGC +- if (UseShenandoahGC) { +- val = ShenandoahBarrierSet::barrier_set()->load_reference_barrier(val); - } -#endif -- + assert(oopDesc::is_oop_or_null(val, false), "bad oop found"); Handle h(Thread::current(), val); // Wrap a handle around the oop return new StackValue(h); } diff --git a/src/hotspot/share/utilities/growableArray.hpp b/src/hotspot/share/utilities/growableArray.hpp -index f37d94a05..6c84180a6 100644 +index f37d94a..6c84180 100644 --- a/src/hotspot/share/utilities/growableArray.hpp +++ b/src/hotspot/share/utilities/growableArray.hpp @@ -152,6 +152,12 @@ class GenericGrowableArray : public ResourceObj { @@ -3338,6 +3296,3 @@ index f37d94a05..6c84180a6 100644 }; // Global GrowableArray methods (one instance in the library per each 'E' type). --- -2.19.1 - diff --git a/8226536-Catch-OOM-from-deopt-that-fails-rematerializ.patch b/8226536-Catch-OOM-from-deopt-that-fails-rematerializ.patch deleted file mode 100644 index 8af83f7e86f1989f015265dba852094b1f0ed91d..0000000000000000000000000000000000000000 --- a/8226536-Catch-OOM-from-deopt-that-fails-rematerializ.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 7a656d6c14da1ec666ee5ebf55995c6b6bf4ab7f Mon Sep 17 00:00:00 2001 -Date: Tue, 17 Mar 2020 11:06:41 +0800 -Subject: [PATCH] 8226536: Catch OOM from deopt that fails rematerializing - objects - -Summary: : fix testcase, catch OOM from deopt that fails rematerializing objects -LLT: jtreg -Bug url: https://bugs.openjdk.java.net/browse/JDK-8226536 ---- - .../vmTestbase/nsk/share/gc/gp/GarbageUtils.java | 36 ++++++++++++++++++++-- - 1 file changed, 34 insertions(+), 2 deletions(-) - -diff --git a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/gp/GarbageUtils.java b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/gp/GarbageUtils.java -index 333bf070b..4d18a6871 100644 ---- a/test/hotspot/jtreg/vmTestbase/nsk/share/gc/gp/GarbageUtils.java -+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/gc/gp/GarbageUtils.java -@@ -26,6 +26,7 @@ package nsk.share.gc.gp; - import java.io.IOException; - import java.io.PrintWriter; - import java.io.StringWriter; -+import java.lang.invoke.*; - import java.util.*; - import nsk.share.gc.gp.array.*; - import nsk.share.gc.gp.string.*; -@@ -193,6 +194,36 @@ public final class GarbageUtils { - return eatMemory(stresser, gp, initialFactor, minMemoryChunk, factor, OOM_TYPE.ANY); - } - -+ static int numberOfOOMEs = 0; -+ -+ /** -+ * Minimal wrapper of the main implementation. Catches any OOM -+ * that might be thrown when rematerializing Objects when deoptimizing. -+ * -+ * It is Important that the impl is not inlined. -+ */ -+ -+ public static int eatMemory(ExecutionController stresser, GarbageProducer gp, long initialFactor, long minMemoryChunk, long factor, OOM_TYPE type) { -+ try { -+ // Using a methodhandle invoke of eatMemoryImpl to prevent inlining of it -+ MethodHandles.Lookup lookup = MethodHandles.lookup(); -+ MethodType mt = MethodType.methodType( -+ int.class, -+ ExecutionController.class, -+ GarbageProducer.class, -+ long.class, -+ long.class, -+ long.class, -+ OOM_TYPE.class); -+ MethodHandle eat = lookup.findStatic(GarbageUtils.class, "eatMemoryImpl", mt); -+ return (int) eat.invoke(stresser, gp, initialFactor, minMemoryChunk, factor, type); -+ } catch (OutOfMemoryError e) { -+ return numberOfOOMEs++; -+ } catch (Throwable t) { -+ throw new RuntimeException(t); -+ } -+ } -+ - /** - * Eat memory using given garbage producer. - * -@@ -210,8 +241,9 @@ public final class GarbageUtils { - * @param type of OutOfMemory Exception: Java heap space or Metadata space - * @return number of OOME occured - */ -- public static int eatMemory(ExecutionController stresser, GarbageProducer gp, long initialFactor, long minMemoryChunk, long factor, OOM_TYPE type) { -- int numberOfOOMEs = 0; -+ -+ public static int eatMemoryImpl(ExecutionController stresser, GarbageProducer gp, long initialFactor, long minMemoryChunk, long factor, OOM_TYPE type) { -+ numberOfOOMEs = 0; - try { - StringWriter sw = new StringWriter(10000); - PrintWriter pw = new PrintWriter(sw); --- -2.12.3 - diff --git a/8229495-SIGILL-in-C2-generated-OSR-compilation.patch b/8229495-SIGILL-in-C2-generated-OSR-compilation.patch index 88a4f23081bddac29f002de355b80e476c0cee63..8df626ceb71cbc79df037cb19df4f70f432bab98 100644 --- a/8229495-SIGILL-in-C2-generated-OSR-compilation.patch +++ b/8229495-SIGILL-in-C2-generated-OSR-compilation.patch @@ -1,8 +1,8 @@ diff --git a/src/hotspot/share/opto/classes.hpp b/src/hotspot/share/opto/classes.hpp -index da01e48..6938ed2 100644 +index 5ee23f7..b847caf 100644 --- a/src/hotspot/share/opto/classes.hpp +++ b/src/hotspot/share/opto/classes.hpp -@@ -225,6 +225,8 @@ macro(NegF) +@@ -226,6 +226,8 @@ macro(NegF) macro(NeverBranch) macro(OnSpinWait) macro(Opaque1) @@ -12,10 +12,10 @@ index da01e48..6938ed2 100644 macro(Opaque3) macro(Opaque4) diff --git a/src/hotspot/share/opto/compile.cpp b/src/hotspot/share/opto/compile.cpp -index b6980c4..ac7b848 100644 +index e5559a2..efe4cff 100644 --- a/src/hotspot/share/opto/compile.cpp +++ b/src/hotspot/share/opto/compile.cpp -@@ -1981,7 +1981,17 @@ void Compile::remove_opaque4_nodes(PhaseIterGVN &igvn) { +@@ -1987,7 +1987,17 @@ void Compile::remove_opaque4_nodes(PhaseIterGVN &igvn) { for (int i = opaque4_count(); i > 0; i--) { Node* opaq = opaque4_node(i-1); assert(opaq->Opcode() == Op_Opaque4, "Opaque4 only"); @@ -34,10 +34,10 @@ index b6980c4..ac7b848 100644 assert(opaque4_count() == 0, "should be empty"); } diff --git a/src/hotspot/share/opto/loopPredicate.cpp b/src/hotspot/share/opto/loopPredicate.cpp -index ee20972..e255f46 100644 +index 6e85398..a6d2257 100644 --- a/src/hotspot/share/opto/loopPredicate.cpp +++ b/src/hotspot/share/opto/loopPredicate.cpp -@@ -1244,8 +1244,9 @@ ProjNode* PhaseIdealLoop::insert_initial_skeleton_predicate(IfNode* iff, IdealLo +@@ -1243,8 +1243,9 @@ ProjNode* PhaseIdealLoop::insert_initial_skeleton_predicate(IfNode* iff, IdealLo Node* init, Node* limit, jint stride, Node* rng, bool &overflow, Deoptimization::DeoptReason reason) { @@ -48,7 +48,7 @@ index ee20972..e255f46 100644 register_new_node(opaque_init, upper_bound_proj); BoolNode* bol = rc_predicate(loop, upper_bound_proj, scale, offset, opaque_init, limit, stride, rng, (stride > 0) != (scale > 0), overflow); Node* opaque_bol = new Opaque4Node(C, bol, _igvn.intcon(1)); // This will go away once loop opts are over -@@ -1253,6 +1254,22 @@ ProjNode* PhaseIdealLoop::insert_initial_skeleton_predicate(IfNode* iff, IdealLo +@@ -1252,6 +1253,22 @@ ProjNode* PhaseIdealLoop::insert_initial_skeleton_predicate(IfNode* iff, IdealLo ProjNode* new_proj = create_new_if_for_predicate(predicate_proj, NULL, reason, overflow ? Op_If : iff->Opcode()); _igvn.replace_input_of(new_proj->in(0), 1, opaque_bol); assert(opaque_init->outcnt() > 0, "should be used"); @@ -72,7 +72,7 @@ index ee20972..e255f46 100644 } diff --git a/src/hotspot/share/opto/loopTransform.cpp b/src/hotspot/share/opto/loopTransform.cpp -index 46790ef..c678544 100644 +index 5e6faaa..89628bb 100644 --- a/src/hotspot/share/opto/loopTransform.cpp +++ b/src/hotspot/share/opto/loopTransform.cpp @@ -1080,7 +1080,7 @@ void PhaseIdealLoop::ensure_zero_trip_guard_proj(Node* node, bool is_main_loop) @@ -218,44 +218,44 @@ index 46790ef..c678544 100644 assert(!skeleton_predicate_has_opaque(prev_proj->in(0)->as_If()), "unexpected"); } } -@@ -2594,22 +2597,22 @@ int PhaseIdealLoop::do_range_check( IdealLoopTree *loop, Node_List &old_new ) { - // (0-offset)/scale could be outside of loop iterations range. - conditional_rc = true; +@@ -2547,22 +2550,22 @@ int PhaseIdealLoop::do_range_check( IdealLoopTree *loop, Node_List &old_new ) { + // The underflow and overflow limits: 0 <= scale*I+offset < limit + add_constraint(stride_con, lscale_con, offset, zero, limit, pre_ctrl, &pre_limit, &main_limit); Node* init = cl->init_trip(); - Node* opaque_init = new Opaque1Node(C, init); + Node* opaque_init = new OpaqueLoopInitNode(C, init); register_new_node(opaque_init, predicate_proj); -+ // predicate on first value of first iteration ++ // predicate on first value of first iteration + predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, offset, limit, stride_con, init); + assert(!skeleton_predicate_has_opaque(predicate_proj->in(0)->as_If()), "unexpected"); // template predicate so it can be updated on next unrolling - predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, offset, limit, stride_con, opaque_init); + predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, int_offset, int_limit, stride_con, opaque_init); assert(skeleton_predicate_has_opaque(predicate_proj->in(0)->as_If()), "unexpected"); - // predicate on first value of first iteration -- predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, offset, limit, stride_con, init); +- predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, int_offset, int_limit, stride_con, init); - assert(!skeleton_predicate_has_opaque(predicate_proj->in(0)->as_If()), "unexpected"); - int init_inc = stride_con/cl->unrolled_count(); - assert(init_inc != 0, "invalid loop increment"); - Node* max_value = _igvn.intcon(stride_con - init_inc); - max_value = new AddINode(init, max_value); -+ Node* opaque_stride = new OpaqueLoopStrideNode(C, cl->stride()); ++ Node* opaque_stride = new OpaqueLoopStrideNode(C, cl->stride()); + register_new_node(opaque_stride, predicate_proj); + Node* max_value = new SubINode(opaque_stride, cl->stride()); + register_new_node(max_value, predicate_proj); -+ max_value = new AddINode(opaque_init, max_value); ++ max_value = new AddINode(opaque_init, max_value); register_new_node(max_value, predicate_proj); - // predicate on last value of first iteration (in case unrolling has already happened) - predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, offset, limit, stride_con, max_value); + predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, int_offset, int_limit, stride_con, max_value); - assert(!skeleton_predicate_has_opaque(predicate_proj->in(0)->as_If()), "unexpected"); + assert(skeleton_predicate_has_opaque(predicate_proj->in(0)->as_If()), "unexpected"); } else { if (PrintOpto) { tty->print_cr("missed RCE opportunity"); diff --git a/src/hotspot/share/opto/loopnode.hpp b/src/hotspot/share/opto/loopnode.hpp -index 3951259..6d68df0 100644 +index 53b9692..7c54113 100644 --- a/src/hotspot/share/opto/loopnode.hpp +++ b/src/hotspot/share/opto/loopnode.hpp -@@ -747,13 +747,13 @@ private: +@@ -748,13 +748,13 @@ private: #ifdef ASSERT void ensure_zero_trip_guard_proj(Node* node, bool is_main_loop); #endif @@ -333,10 +333,10 @@ index 6b85529..adbee17 100644 if (res != NULL) { return n; diff --git a/src/hotspot/share/opto/macro.cpp b/src/hotspot/share/opto/macro.cpp -index 9f3cb34..5f5cc75 100644 +index cf8eab1..8331d25 100644 --- a/src/hotspot/share/opto/macro.cpp +++ b/src/hotspot/share/opto/macro.cpp -@@ -2594,9 +2594,10 @@ void PhaseMacroExpand::eliminate_macro_nodes() { +@@ -2617,9 +2617,10 @@ void PhaseMacroExpand::eliminate_macro_nodes() { break; case Node::Class_OuterStripMinedLoop: break; @@ -348,7 +348,7 @@ index 9f3cb34..5f5cc75 100644 n->Opcode() == Op_Opaque2 || n->Opcode() == Op_Opaque3 || BarrierSet::barrier_set()->barrier_set_c2()->is_gc_barrier_node(n), -@@ -2638,7 +2639,7 @@ bool PhaseMacroExpand::expand_macro_nodes() { +@@ -2661,7 +2662,7 @@ bool PhaseMacroExpand::expand_macro_nodes() { C->remove_macro_node(n); _igvn._worklist.push(n); success = true; @@ -358,7 +358,7 @@ index 9f3cb34..5f5cc75 100644 success = true; #if INCLUDE_RTM_OPT diff --git a/src/hotspot/share/opto/node.hpp b/src/hotspot/share/opto/node.hpp -index cf0975e..a36f3bb 100644 +index 2a42e99..0eac634 100644 --- a/src/hotspot/share/opto/node.hpp +++ b/src/hotspot/share/opto/node.hpp @@ -116,6 +116,7 @@ class MulNode; @@ -369,7 +369,7 @@ index cf0975e..a36f3bb 100644 class OuterStripMinedLoopNode; class OuterStripMinedLoopEndNode; class Node; -@@ -608,10 +609,10 @@ public: +@@ -611,10 +612,10 @@ public: // This enum is used only for C2 ideal and mach nodes with is_() methods // so that it's values fits into 16 bits. enum NodeClasses { @@ -384,7 +384,7 @@ index cf0975e..a36f3bb 100644 DEFINE_CLASS_ID(Multi, Node, 0) DEFINE_CLASS_ID(SafePoint, Multi, 0) DEFINE_CLASS_ID(Call, SafePoint, 0) -@@ -714,6 +715,7 @@ public: +@@ -720,6 +721,7 @@ public: DEFINE_CLASS_ID(Vector, Node, 13) DEFINE_CLASS_ID(ClearArray, Node, 14) DEFINE_CLASS_ID(Halt, Node, 15) @@ -392,7 +392,7 @@ index cf0975e..a36f3bb 100644 _max_classes = ClassMask_Halt }; -@@ -740,12 +742,12 @@ public: +@@ -746,12 +748,12 @@ public: }; private: @@ -407,7 +407,7 @@ index cf0975e..a36f3bb 100644 _class_id = c; // cast out const } void init_flags(jushort fl) { -@@ -758,7 +760,7 @@ protected: +@@ -764,7 +766,7 @@ protected: } public: @@ -416,7 +416,7 @@ index cf0975e..a36f3bb 100644 const jushort flags() const { return _flags; } -@@ -859,6 +861,7 @@ public: +@@ -865,6 +867,7 @@ public: DEFINE_CLASS_QUERY(Mul) DEFINE_CLASS_QUERY(Multi) DEFINE_CLASS_QUERY(MultiBranch) @@ -466,10 +466,10 @@ index f97de4a..4c00528 100644 //------------------------------Opaque2Node------------------------------------ // A node to prevent unwanted optimizations. Allows constant folding. Stops diff --git a/src/hotspot/share/runtime/vmStructs.cpp b/src/hotspot/share/runtime/vmStructs.cpp -index 413188e..98b8ade 100644 +index ad7fb42..85c4dfe 100644 --- a/src/hotspot/share/runtime/vmStructs.cpp +++ b/src/hotspot/share/runtime/vmStructs.cpp -@@ -949,7 +949,7 @@ typedef PaddedEnd PaddedObjectMonitor; +@@ -951,7 +951,7 @@ typedef PaddedEnd PaddedObjectMonitor; c2_nonstatic_field(Node, _outcnt, node_idx_t) \ c2_nonstatic_field(Node, _outmax, node_idx_t) \ c2_nonstatic_field(Node, _idx, const node_idx_t) \ diff --git a/8233073-Make-BitMap-accessors-more-memory-ordering-f.patch b/8233073-Make-BitMap-accessors-more-memory-ordering-f.patch index 7e3241eb17ce92b1e899912f09740ffa865b40f6..5e1f19e24c3be12d23568387071d29b8bd473c03 100644 --- a/8233073-Make-BitMap-accessors-more-memory-ordering-f.patch +++ b/8233073-Make-BitMap-accessors-more-memory-ordering-f.patch @@ -1,5 +1,5 @@ diff --git a/src/hotspot/share/c1/c1_Instruction.cpp b/src/hotspot/share/c1/c1_Instruction.cpp -index ee3be899a..62d8b48bc 100644 +index ee3be89..62d8b48 100644 --- a/src/hotspot/share/c1/c1_Instruction.cpp +++ b/src/hotspot/share/c1/c1_Instruction.cpp @@ -29,6 +29,7 @@ @@ -11,7 +11,7 @@ index ee3be899a..62d8b48bc 100644 // Implementation of Instruction diff --git a/src/hotspot/share/opto/graphKit.cpp b/src/hotspot/share/opto/graphKit.cpp -index 852b763c1..31b8ffa21 100644 +index bf9179f..e0696de 100644 --- a/src/hotspot/share/opto/graphKit.cpp +++ b/src/hotspot/share/opto/graphKit.cpp @@ -43,6 +43,7 @@ @@ -19,11 +19,11 @@ index 852b763c1..31b8ffa21 100644 #include "runtime/deoptimization.hpp" #include "runtime/sharedRuntime.hpp" +#include "utilities/bitMap.inline.hpp" - - //----------------------------GraphKit----------------------------------------- - // Main utility constructor. + #include "utilities/macros.hpp" + #if INCLUDE_SHENANDOAHGC + #include "gc/shenandoah/c2/shenandoahBarrierSetC2.hpp" diff --git a/src/hotspot/share/opto/parse1.cpp b/src/hotspot/share/opto/parse1.cpp -index 177663653..eae7673f9 100644 +index 99b1a67..f94f028 100644 --- a/src/hotspot/share/opto/parse1.cpp +++ b/src/hotspot/share/opto/parse1.cpp @@ -41,6 +41,7 @@ @@ -35,7 +35,7 @@ index 177663653..eae7673f9 100644 // Static array so we can figure out which bytecodes stop us from compiling diff --git a/src/hotspot/share/utilities/bitMap.hpp b/src/hotspot/share/utilities/bitMap.hpp -index c671535c9..e26f34687 100644 +index c671535..e26f346 100644 --- a/src/hotspot/share/utilities/bitMap.hpp +++ b/src/hotspot/share/utilities/bitMap.hpp @@ -26,6 +26,7 @@ @@ -84,7 +84,7 @@ index c671535c9..e26f34687 100644 // Put the given value at the given offset. The parallel version // will CAS the value into the bitmap and is quite a bit slower. diff --git a/src/hotspot/share/utilities/bitMap.inline.hpp b/src/hotspot/share/utilities/bitMap.inline.hpp -index b10726d18..7a7e2ad43 100644 +index b10726d..7a7e2ad 100644 --- a/src/hotspot/share/utilities/bitMap.inline.hpp +++ b/src/hotspot/share/utilities/bitMap.inline.hpp @@ -26,6 +26,7 @@ diff --git a/8240360-NativeLibraryEvent-has-wrong-library-name-on-linux.patch b/8240360-NativeLibraryEvent-has-wrong-library-name-on-linux.patch deleted file mode 100644 index b0c3b4e14dbf017dea249e53d271bddff37cb63f..0000000000000000000000000000000000000000 --- a/8240360-NativeLibraryEvent-has-wrong-library-name-on-linux.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 06fb55216b96c8c9341265dbc4d441cbabd0a66d Mon Sep 17 00:00:00 2001 -Date: Fri, 31 Jul 2020 15:50:08 +0800 -Subject: [PATCH] 8240360:NativeLibraryEvent has wrong library name on Linux - -Summary: : -LLT: jdk11u/test/jdk/jdk/jfr/event/runtime/TestNativeLibrariesEvent.java -Bug url: https://bugs.openjdk.java.net/browse/JDK-8240360 ---- - src/hotspot/os/linux/os_linux.cpp | 20 +++++++++----------- - 1 file changed, 9 insertions(+), 11 deletions(-) - -diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp -index 6ee57c1..a101d26 100644 ---- a/src/hotspot/os/linux/os_linux.cpp -+++ b/src/hotspot/os/linux/os_linux.cpp -@@ -2045,20 +2045,18 @@ int os::get_loaded_modules_info(os::LoadedModulesCallbackFunc callback, void *pa - - // Read line by line from 'file' - while (fgets(line, sizeof(line), procmapsFile) != NULL) { -- u8 base, top, offset, inode; -- char permissions[5]; -- char device[6]; -+ u8 base, top, inode; - char name[sizeof(line)]; - -- // Parse fields from line -- int matches = sscanf(line, UINT64_FORMAT_X "-" UINT64_FORMAT_X " %4s " UINT64_FORMAT_X " %5s " INT64_FORMAT " %s", -- &base, &top, permissions, &offset, device, &inode, name); -- // the last entry 'name' is empty for some entries, so we might have 6 matches instead of 7 for some lines -- if (matches < 6) continue; -- if (matches == 6) name[0] = '\0'; -+ // Parse fields from line, discard perms, offset and device -+ int matches = sscanf(line, UINT64_FORMAT_X "-" UINT64_FORMAT_X " %*s %*s %*s " INT64_FORMAT " %s", -+ &base, &top, &inode, name); -+ // the last entry 'name' is empty for some entries, so we might have 3 matches instead of 4 for some lines -+ if (matches < 3) continue; -+ if (matches == 3) name[0] = '\0'; - -- // Filter by device id '00:00' so that we only get file system mapped files. -- if (strcmp(device, "00:00") != 0) { -+ // Filter by inode 0 so that we only get file system mapped files. -+ if (inode != 0) { - - // Call callback with the fields of interest - if(callback(name, (address)base, (address)top, param)) { --- -1.8.3.1 - - diff --git a/Add-loadload-membar-to-avoid-loading-a-incorrect-offset.patch b/Add-loadload-membar-to-avoid-loading-a-incorrect-offset.patch deleted file mode 100644 index 52bce4751fd7464715ea4173db2666a725cf5669..0000000000000000000000000000000000000000 --- a/Add-loadload-membar-to-avoid-loading-a-incorrect-offset.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 954a4ad3a2a8bb54fb64a524b53f9c87c54cb7a1 Mon Sep 17 00:00:00 2001 -Date: Wed, 26 Feb 2020 09:47:33 +0800 -Subject: [PATCH] aarch64: add_loadload_membar_to_avoid_loading_a_incorrect_offset - -Summary: : -LLT: jtreg -Bug url: NA ---- - src/hotspot/cpu/aarch64/templateTable_aarch64.cpp | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp b/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp -index b8a9a46a8..019a4aadd 100644 ---- a/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp -+++ b/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp -@@ -2963,6 +2963,8 @@ void TemplateTable::fast_storefield(TosState state) - // access constant pool cache - __ get_cache_and_index_at_bcp(r2, r1, 1); - -+ __ membar(MacroAssembler::LoadLoad); -+ - // test for volatile with r3 - __ ldrw(r3, Address(r2, in_bytes(base + - ConstantPoolCacheEntry::flags_offset()))); -@@ -3055,6 +3057,9 @@ void TemplateTable::fast_accessfield(TosState state) - - // access constant pool cache - __ get_cache_and_index_at_bcp(r2, r1, 1); -+ -+ __ membar(MacroAssembler::LoadLoad); -+ - __ ldr(r1, Address(r2, in_bytes(ConstantPoolCache::base_offset() + - ConstantPoolCacheEntry::f2_offset()))); - __ ldrw(r3, Address(r2, in_bytes(ConstantPoolCache::base_offset() + --- -2.12.3 - diff --git a/ZGC-Redesign-C2-load-barrier-to-expand-on-th.patch b/ZGC-Redesign-C2-load-barrier-to-expand-on-th.patch index aad730e5501acd5f4d893b1b0814fcfd2184d535..ff51a89ff5b46486fa3b1faff864e9704340b59f 100644 --- a/ZGC-Redesign-C2-load-barrier-to-expand-on-th.patch +++ b/ZGC-Redesign-C2-load-barrier-to-expand-on-th.patch @@ -1,15 +1,5 @@ -From b61b8df19a63354db26efb582e84bc276c076e3a Mon Sep 17 00:00:00 2001 -Date: Wed, 5 Feb 2020 17:26:06 +0800 -Subject: [PATCH] 8230565: ZGC: Redesign C2 load barrier to expand on the - MachNode level - -Summary: : -LLT: jtreg -Bug url: https://bugs.openjdk.java.net/browse/JDK-8230565 ---- - diff --git a/src/hotspot/cpu/aarch64/aarch64.ad b/src/hotspot/cpu/aarch64/aarch64.ad -index d64566b81..b6e5d7267 100644 +index af3e593..05b36e2 100644 --- a/src/hotspot/cpu/aarch64/aarch64.ad +++ b/src/hotspot/cpu/aarch64/aarch64.ad @@ -1131,6 +1131,7 @@ definitions %{ @@ -20,7 +10,7 @@ index d64566b81..b6e5d7267 100644 %} -@@ -2497,17 +2498,7 @@ void Compile::reshape_address(AddPNode* addp) { +@@ -2501,17 +2502,7 @@ void Compile::reshape_address(AddPNode* addp) { __ INSN(REG, as_Register(BASE)); \ } @@ -39,7 +29,7 @@ index d64566b81..b6e5d7267 100644 { Address::extend scale; -@@ -2526,16 +2517,33 @@ typedef void (MacroAssembler::* mem_vector_insn)(FloatRegister Rt, +@@ -2530,16 +2521,33 @@ typedef void (MacroAssembler::* mem_vector_insn)(FloatRegister Rt, } if (index == -1) { @@ -77,7 +67,7 @@ index d64566b81..b6e5d7267 100644 { Address::extend scale; -@@ -2557,8 +2565,8 @@ typedef void (MacroAssembler::* mem_vector_insn)(FloatRegister Rt, +@@ -2561,8 +2569,8 @@ typedef void (MacroAssembler::* mem_vector_insn)(FloatRegister Rt, } static void loadStore(MacroAssembler masm, mem_vector_insn insn, @@ -88,7 +78,7 @@ index d64566b81..b6e5d7267 100644 { if (index == -1) { (masm.*insn)(reg, T, Address(base, disp)); -@@ -3793,7 +3801,7 @@ frame %{ +@@ -3797,7 +3805,7 @@ frame %{ static const int hi[Op_RegL + 1] = { // enum name 0, // Op_Node 0, // Op_Set @@ -97,7 +87,7 @@ index d64566b81..b6e5d7267 100644 OptoReg::Bad, // Op_RegI R0_H_num, // Op_RegP OptoReg::Bad, // Op_RegF -@@ -6923,7 +6931,7 @@ instruct loadRange(iRegINoSp dst, memory mem) +@@ -6929,7 +6937,7 @@ instruct loadRange(iRegINoSp dst, memory mem) instruct loadP(iRegPNoSp dst, memory mem) %{ match(Set dst (LoadP mem)); @@ -106,7 +96,7 @@ index d64566b81..b6e5d7267 100644 ins_cost(4 * INSN_COST); format %{ "ldr $dst, $mem\t# ptr" %} -@@ -7616,6 +7624,7 @@ instruct loadL_volatile(iRegLNoSp dst, /* sync_memory*/indirect mem) +@@ -7622,6 +7630,7 @@ instruct loadL_volatile(iRegLNoSp dst, /* sync_memory*/indirect mem) instruct loadP_volatile(iRegPNoSp dst, /* sync_memory*/indirect mem) %{ match(Set dst (LoadP mem)); @@ -114,7 +104,7 @@ index d64566b81..b6e5d7267 100644 ins_cost(VOLATILE_REF_COST); format %{ "ldar $dst, $mem\t# ptr" %} -@@ -8500,6 +8509,7 @@ instruct compareAndSwapL(iRegINoSp res, indirect mem, iRegLNoSp oldval, iRegLNoS +@@ -8506,6 +8515,7 @@ instruct compareAndSwapL(iRegINoSp res, indirect mem, iRegLNoSp oldval, iRegLNoS instruct compareAndSwapP(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ match(Set res (CompareAndSwapP mem (Binary oldval newval))); @@ -122,7 +112,7 @@ index d64566b81..b6e5d7267 100644 ins_cost(2 * VOLATILE_REF_COST); effect(KILL cr); -@@ -8613,7 +8623,7 @@ instruct compareAndSwapLAcq(iRegINoSp res, indirect mem, iRegLNoSp oldval, iRegL +@@ -8619,7 +8629,7 @@ instruct compareAndSwapLAcq(iRegINoSp res, indirect mem, iRegLNoSp oldval, iRegL instruct compareAndSwapPAcq(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ @@ -131,7 +121,7 @@ index d64566b81..b6e5d7267 100644 match(Set res (CompareAndSwapP mem (Binary oldval newval))); ins_cost(VOLATILE_REF_COST); -@@ -8744,6 +8754,7 @@ instruct compareAndExchangeN(iRegNNoSp res, indirect mem, iRegN oldval, iRegN ne +@@ -8750,6 +8760,7 @@ instruct compareAndExchangeN(iRegNNoSp res, indirect mem, iRegN oldval, iRegN ne %} instruct compareAndExchangeP(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ @@ -139,7 +129,7 @@ index d64566b81..b6e5d7267 100644 match(Set res (CompareAndExchangeP mem (Binary oldval newval))); ins_cost(2 * VOLATILE_REF_COST); effect(TEMP_DEF res, KILL cr); -@@ -8843,7 +8854,7 @@ instruct compareAndExchangeNAcq(iRegNNoSp res, indirect mem, iRegN oldval, iRegN +@@ -8849,7 +8860,7 @@ instruct compareAndExchangeNAcq(iRegNNoSp res, indirect mem, iRegN oldval, iRegN %} instruct compareAndExchangePAcq(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ @@ -148,7 +138,7 @@ index d64566b81..b6e5d7267 100644 match(Set res (CompareAndExchangeP mem (Binary oldval newval))); ins_cost(VOLATILE_REF_COST); effect(TEMP_DEF res, KILL cr); -@@ -8944,6 +8955,7 @@ instruct weakCompareAndSwapN(iRegINoSp res, indirect mem, iRegN oldval, iRegN ne +@@ -8950,6 +8961,7 @@ instruct weakCompareAndSwapN(iRegINoSp res, indirect mem, iRegN oldval, iRegN ne %} instruct weakCompareAndSwapP(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ @@ -156,7 +146,7 @@ index d64566b81..b6e5d7267 100644 match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); ins_cost(2 * VOLATILE_REF_COST); effect(KILL cr); -@@ -9051,8 +9063,8 @@ instruct weakCompareAndSwapNAcq(iRegINoSp res, indirect mem, iRegN oldval, iRegN +@@ -9057,8 +9069,8 @@ instruct weakCompareAndSwapNAcq(iRegINoSp res, indirect mem, iRegN oldval, iRegN %} instruct weakCompareAndSwapPAcq(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ @@ -166,7 +156,7 @@ index d64566b81..b6e5d7267 100644 ins_cost(VOLATILE_REF_COST); effect(KILL cr); format %{ -@@ -9102,6 +9114,7 @@ instruct get_and_setN(indirect mem, iRegN newv, iRegINoSp prev) %{ +@@ -9108,6 +9120,7 @@ instruct get_and_setN(indirect mem, iRegN newv, iRegINoSp prev) %{ %} instruct get_and_setP(indirect mem, iRegP newv, iRegPNoSp prev) %{ @@ -174,7 +164,7 @@ index d64566b81..b6e5d7267 100644 match(Set prev (GetAndSetP mem newv)); ins_cost(2 * VOLATILE_REF_COST); format %{ "atomic_xchg $prev, $newv, [$mem]" %} -@@ -9145,7 +9158,7 @@ instruct get_and_setNAcq(indirect mem, iRegN newv, iRegINoSp prev) %{ +@@ -9151,7 +9164,7 @@ instruct get_and_setNAcq(indirect mem, iRegN newv, iRegINoSp prev) %{ %} instruct get_and_setPAcq(indirect mem, iRegP newv, iRegPNoSp prev) %{ @@ -183,7 +173,7 @@ index d64566b81..b6e5d7267 100644 match(Set prev (GetAndSetP mem newv)); ins_cost(VOLATILE_REF_COST); format %{ "atomic_xchg_acq $prev, $newv, [$mem]" %} -@@ -17465,145 +17478,238 @@ instruct vsrl2L_imm(vecX dst, vecX src, immI shift) %{ +@@ -17477,145 +17490,238 @@ instruct vsrl2L_imm(vecX dst, vecX src, immI shift) %{ source %{ @@ -528,7 +518,7 @@ index d64566b81..b6e5d7267 100644 ins_pipe(pipe_serial); %} diff --git a/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp -index 8e169ace4..787c0c1af 100644 +index 8e169ac..787c0c1 100644 --- a/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp @@ -24,22 +24,23 @@ @@ -884,7 +874,7 @@ index 8e169ace4..787c0c1af 100644 -} +#endif // COMPILER2 diff --git a/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp -index 7e8be01cc..cca873825 100644 +index 7e8be01..cca8738 100644 --- a/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp +++ b/src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp @@ -24,6 +24,12 @@ @@ -938,7 +928,7 @@ index 7e8be01cc..cca873825 100644 #endif // CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP diff --git a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp -index c0d093191..bd6ebb28b 100644 +index 279ff79..f9b2b3b 100644 --- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp @@ -2096,6 +2096,65 @@ int MacroAssembler::pop(unsigned int bitset, Register stack) { @@ -1008,7 +998,7 @@ index c0d093191..bd6ebb28b 100644 void MacroAssembler::verify_heapbase(const char* msg) { #if 0 diff --git a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp -index af8056be0..44497ea7c 100644 +index af8056b..44497ea 100644 --- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp @@ -440,12 +440,18 @@ private: @@ -1031,7 +1021,7 @@ index af8056be0..44497ea7c 100644 // runtime call except rscratch1 and rscratch2. (They are always // scratch, so we don't have to protect them.) Only save the lower diff --git a/src/hotspot/cpu/aarch64/register_aarch64.hpp b/src/hotspot/cpu/aarch64/register_aarch64.hpp -index 8cda52a0a..5f7662c89 100644 +index 8cda52a..5f7662c 100644 --- a/src/hotspot/cpu/aarch64/register_aarch64.hpp +++ b/src/hotspot/cpu/aarch64/register_aarch64.hpp @@ -230,6 +230,11 @@ public: @@ -1047,22 +1037,22 @@ index 8cda52a0a..5f7662c89 100644 return RegSet(r1); } diff --git a/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp b/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp -index 2144a78f3..4ba3a6326 100644 +index c162024..6e4eb1a 100644 --- a/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp -@@ -872,8 +872,8 @@ void TemplateInterpreterGenerator::generate_fixed_frame(bool native_call) { +@@ -880,8 +880,8 @@ void TemplateInterpreterGenerator::generate_fixed_frame(bool native_call) { + } else + #endif + { +- __ load_mirror(rscratch1, rmethod); +- __ stp(rscratch1, zr, Address(sp, 4 * wordSize)); ++ __ load_mirror(r10, rmethod); ++ __ stp(r10, zr, Address(sp, 4 * wordSize)); } - // Get mirror and store it in the frame as GC root for this Method* -- __ load_mirror(rscratch1, rmethod); -- __ stp(rscratch1, zr, Address(sp, 4 * wordSize)); -+ __ load_mirror(r10, rmethod); -+ __ stp(r10, zr, Address(sp, 4 * wordSize)); - __ ldr(rcpool, Address(rmethod, Method::const_offset())); - __ ldr(rcpool, Address(rcpool, ConstMethod::constants_offset())); diff --git a/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp b/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp -index 381211ecc..d88ecf7b8 100644 +index 381211e..d88ecf7 100644 --- a/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp +++ b/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp @@ -27,16 +27,16 @@ @@ -1520,7 +1510,7 @@ index 381211ecc..d88ecf7b8 100644 + +#endif // COMPILER2 diff --git a/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.hpp b/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.hpp -index 3687754e7..e433882a4 100644 +index 3687754..e433882 100644 --- a/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.hpp +++ b/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.hpp @@ -24,6 +24,14 @@ @@ -1577,7 +1567,7 @@ index 3687754e7..e433882a4 100644 #endif // CPU_X86_GC_Z_ZBARRIERSETASSEMBLER_X86_HPP diff --git a/src/hotspot/cpu/x86/x86.ad b/src/hotspot/cpu/x86/x86.ad -index 1052ea6e3..e21074b4a 100644 +index 6eefe33..8fb9a3e 100644 --- a/src/hotspot/cpu/x86/x86.ad +++ b/src/hotspot/cpu/x86/x86.ad @@ -1097,138 +1097,6 @@ reg_class vectorz_reg_legacy(XMM0, XMM0b, XMM0c, XMM0d, XMM0e, XMM0f, XMM0 @@ -1719,7 +1709,7 @@ index 1052ea6e3..e21074b4a 100644 %} -@@ -1735,8 +1603,8 @@ static int vec_mov_helper(CodeBuffer *cbuf, bool do_size, int src_lo, int dst_lo +@@ -1775,8 +1643,8 @@ static int vec_mov_helper(CodeBuffer *cbuf, bool do_size, int src_lo, int dst_lo return (UseAVX > 2) ? 6 : 4; } @@ -1731,7 +1721,7 @@ index 1052ea6e3..e21074b4a 100644 // into scratch buffer is used to get size in 64-bit VM. LP64_ONLY( assert(!do_size, "this method calculates size only for 32-bit VM"); ) diff --git a/src/hotspot/cpu/x86/x86_64.ad b/src/hotspot/cpu/x86/x86_64.ad -index 84bed19aa..8b975311e 100644 +index e256e22..d127732 100644 --- a/src/hotspot/cpu/x86/x86_64.ad +++ b/src/hotspot/cpu/x86/x86_64.ad @@ -541,6 +541,7 @@ reg_class int_rdi_reg(RDI); @@ -1952,7 +1942,7 @@ index 84bed19aa..8b975311e 100644 format %{ "XCHGQ $newval,[$mem]" %} ins_encode %{ __ xchgq($newval$$Register, $mem$$Address); -@@ -11603,6 +11490,7 @@ instruct compP_rReg(rFlagsRegU cr, rRegP op1, rRegP op2) +@@ -11649,6 +11536,7 @@ instruct compP_rReg(rFlagsRegU cr, rRegP op1, rRegP op2) instruct compP_rReg_mem(rFlagsRegU cr, rRegP op1, memory op2) %{ match(Set cr (CmpP op1 (LoadP op2))); @@ -1960,7 +1950,7 @@ index 84bed19aa..8b975311e 100644 ins_cost(500); // XXX format %{ "cmpq $op1, $op2\t# ptr" %} -@@ -11628,7 +11516,8 @@ instruct compP_rReg_mem(rFlagsRegU cr, rRegP op1, memory op2) +@@ -11674,7 +11562,8 @@ instruct compP_rReg_mem(rFlagsRegU cr, rRegP op1, memory op2) // and raw pointers have no anti-dependencies. instruct compP_mem_rReg(rFlagsRegU cr, rRegP op1, memory op2) %{ @@ -1970,7 +1960,7 @@ index 84bed19aa..8b975311e 100644 match(Set cr (CmpP op1 (LoadP op2))); format %{ "cmpq $op1, $op2\t# raw ptr" %} -@@ -11653,7 +11542,8 @@ instruct testP_reg(rFlagsReg cr, rRegP src, immP0 zero) +@@ -11699,7 +11588,8 @@ instruct testP_reg(rFlagsReg cr, rRegP src, immP0 zero) // any compare to a zero should be eq/neq. instruct testP_mem(rFlagsReg cr, memory op, immP0 zero) %{ @@ -1980,7 +1970,7 @@ index 84bed19aa..8b975311e 100644 match(Set cr (CmpP (LoadP op) zero)); ins_cost(500); // XXX -@@ -11666,7 +11556,9 @@ instruct testP_mem(rFlagsReg cr, memory op, immP0 zero) +@@ -11712,7 +11602,9 @@ instruct testP_mem(rFlagsReg cr, memory op, immP0 zero) instruct testP_mem_reg0(rFlagsReg cr, memory mem, immP0 zero) %{ @@ -1991,7 +1981,7 @@ index 84bed19aa..8b975311e 100644 match(Set cr (CmpP (LoadP mem) zero)); format %{ "cmpq R12, $mem\t# ptr (R12_heapbase==0)" %} -@@ -12621,274 +12513,126 @@ instruct RethrowException() +@@ -12667,274 +12559,126 @@ instruct RethrowException() // Execute ZGC load barrier (strong) slow path // @@ -2356,7 +2346,7 @@ index 84bed19aa..8b975311e 100644 // ============================================================================ // This name is KNOWN by the ADLC and cannot be changed. diff --git a/src/hotspot/share/adlc/formssel.cpp b/src/hotspot/share/adlc/formssel.cpp -index 2845cf6d8..c41ac52c7 100644 +index ef704f4..5ba1fdc 100644 --- a/src/hotspot/share/adlc/formssel.cpp +++ b/src/hotspot/share/adlc/formssel.cpp @@ -774,11 +774,6 @@ bool InstructForm::captures_bottom_type(FormDict &globals) const { @@ -2368,10 +2358,10 @@ index 2845cf6d8..c41ac52c7 100644 - !strcmp(_matrule->_rChild->_opType,"ZCompareAndExchangeP") || - !strcmp(_matrule->_rChild->_opType,"LoadBarrierSlowReg") || -#endif - !strcmp(_matrule->_rChild->_opType,"CompareAndExchangeP") || - !strcmp(_matrule->_rChild->_opType,"CompareAndExchangeN"))) return true; - else if ( is_ideal_load() == Form::idealP ) return true; -@@ -3506,9 +3501,6 @@ int MatchNode::needs_ideal_memory_edge(FormDict &globals) const { + #if INCLUDE_SHENANDOAHGC + !strcmp(_matrule->_rChild->_opType,"ShenandoahCompareAndExchangeP") || + !strcmp(_matrule->_rChild->_opType,"ShenandoahCompareAndExchangeN") || +@@ -3513,9 +3508,6 @@ int MatchNode::needs_ideal_memory_edge(FormDict &globals) const { "StoreCM", "GetAndSetB", "GetAndSetS", "GetAndAddI", "GetAndSetI", "GetAndSetP", "GetAndAddB", "GetAndAddS", "GetAndAddL", "GetAndSetL", "GetAndSetN", @@ -2382,7 +2372,7 @@ index 2845cf6d8..c41ac52c7 100644 }; int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); diff --git a/src/hotspot/share/compiler/compilerDirectives.hpp b/src/hotspot/share/compiler/compilerDirectives.hpp -index 8eba28f94..b20cd73d9 100644 +index 8eba28f..b20cd73 100644 --- a/src/hotspot/share/compiler/compilerDirectives.hpp +++ b/src/hotspot/share/compiler/compilerDirectives.hpp @@ -66,8 +66,7 @@ NOT_PRODUCT(cflags(TraceOptoOutput, bool, TraceOptoOutput, TraceOptoOutput)) @@ -2396,7 +2386,7 @@ index 8eba28f94..b20cd73d9 100644 #define compilerdirectives_c2_flags(cflags) #endif diff --git a/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp b/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp -index eea74674f..487988bd8 100644 +index eea7467..487988b 100644 --- a/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp +++ b/src/hotspot/share/gc/shared/c2/barrierSetC2.hpp @@ -198,7 +198,7 @@ public: @@ -2426,7 +2416,7 @@ index eea74674f..487988bd8 100644 #endif // SHARE_GC_SHARED_C2_BARRIERSETC2_HPP diff --git a/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp b/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp -index bf0bd43af..a12973464 100644 +index bf0bd43..a129734 100644 --- a/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp +++ b/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp @@ -22,443 +22,156 @@ @@ -4216,7 +4206,7 @@ index bf0bd43af..a12973464 100644 - return true; } diff --git a/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp b/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp -index bef6a7048..accae1f72 100644 +index bef6a70..accae1f 100644 --- a/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp +++ b/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp @@ -29,134 +29,38 @@ @@ -4423,7 +4413,7 @@ index bef6a7048..accae1f72 100644 #endif // SHARE_GC_Z_C2_ZBARRIERSETC2_HPP diff --git a/src/hotspot/share/gc/z/zBarrierSetAssembler.hpp b/src/hotspot/share/gc/z/zBarrierSetAssembler.hpp -index 52133c073..9d07f9e8c 100644 +index 52133c0..9d07f9e 100644 --- a/src/hotspot/share/gc/z/zBarrierSetAssembler.hpp +++ b/src/hotspot/share/gc/z/zBarrierSetAssembler.hpp @@ -1,5 +1,5 @@ @@ -4445,7 +4435,7 @@ index 52133c073..9d07f9e8c 100644 class ZBarrierSetAssemblerBase : public BarrierSetAssembler { diff --git a/src/hotspot/share/opto/classes.cpp b/src/hotspot/share/opto/classes.cpp -index e8ac3a61d..eec705013 100644 +index 75f070f..d1282ac 100644 --- a/src/hotspot/share/opto/classes.cpp +++ b/src/hotspot/share/opto/classes.cpp @@ -48,9 +48,6 @@ @@ -4455,14 +4445,14 @@ index e8ac3a61d..eec705013 100644 -#if INCLUDE_ZGC -#include "gc/z/c2/zBarrierSetC2.hpp" -#endif - - // ---------------------------------------------------------------------------- - // Build a table of virtual functions to map from Nodes to dense integer + #if INCLUDE_SHENANDOAHGC + #include "gc/shenandoah/c2/shenandoahBarrierSetC2.hpp" + #endif diff --git a/src/hotspot/share/opto/classes.hpp b/src/hotspot/share/opto/classes.hpp -index cdca7e7c0..da01e4811 100644 +index 69f8a3c..5ee23f7 100644 --- a/src/hotspot/share/opto/classes.hpp +++ b/src/hotspot/share/opto/classes.hpp -@@ -188,17 +188,6 @@ macro(LoadP) +@@ -189,17 +189,6 @@ macro(LoadP) macro(LoadN) macro(LoadRange) macro(LoadS) @@ -4481,7 +4471,7 @@ index cdca7e7c0..da01e4811 100644 macro(Loop) macro(LoopLimit) diff --git a/src/hotspot/share/opto/compile.cpp b/src/hotspot/share/opto/compile.cpp -index ef4a6ab13..b6980c4e7 100644 +index 45e2d11..e5559a2 100644 --- a/src/hotspot/share/opto/compile.cpp +++ b/src/hotspot/share/opto/compile.cpp @@ -79,9 +79,6 @@ @@ -4491,10 +4481,10 @@ index ef4a6ab13..b6980c4e7 100644 -#if INCLUDE_ZGC -#include "gc/z/c2/zBarrierSetC2.hpp" -#endif - - - // -------------------- Compile::mach_constant_base_node ----------------------- -@@ -636,16 +633,12 @@ debug_only( int Compile::_debug_idx = 100000; ) + #if INCLUDE_SHENANDOAHGC + #include "gc/shenandoah/c2/shenandoahBarrierSetC2.hpp" + #endif +@@ -639,16 +636,12 @@ debug_only( int Compile::_debug_idx = 100000; ) Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr_bci, bool subsume_loads, bool do_escape_analysis, bool eliminate_boxing, DirectiveSet* directive) : Phase(Compiler), @@ -4511,7 +4501,7 @@ index ef4a6ab13..b6980c4e7 100644 _entry_bci(osr_bci), _initial_gvn(NULL), _for_igvn(NULL), -@@ -665,8 +658,6 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr +@@ -668,8 +661,6 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr _inner_loops(0), _scratch_const_size(-1), _in_scratch_emit_size(false), @@ -4520,7 +4510,7 @@ index ef4a6ab13..b6980c4e7 100644 #ifndef PRODUCT _trace_opto_output(directive->TraceOptoOutputOption), _in_dump_cnt(0), -@@ -674,9 +665,15 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr +@@ -677,9 +668,15 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr #endif _congraph(NULL), _comp_arena(mtCompiler), @@ -4536,7 +4526,7 @@ index ef4a6ab13..b6980c4e7 100644 _replay_inline_data(NULL), _late_inlines(comp_arena(), 2, 0, NULL), _string_late_inlines(comp_arena(), 2, 0, NULL), -@@ -959,9 +956,6 @@ Compile::Compile( ciEnv* ci_env, +@@ -962,9 +959,6 @@ Compile::Compile( ciEnv* ci_env, bool return_pc, DirectiveSet* directive) : Phase(Compiler), @@ -4546,7 +4536,7 @@ index ef4a6ab13..b6980c4e7 100644 _compile_id(0), _save_argument_registers(save_arg_registers), _method(NULL), -@@ -991,6 +985,10 @@ Compile::Compile( ciEnv* ci_env, +@@ -994,6 +988,10 @@ Compile::Compile( ciEnv* ci_env, _printer(NULL), #endif _comp_arena(mtCompiler), @@ -4557,21 +4547,21 @@ index ef4a6ab13..b6980c4e7 100644 _node_arena(mtCompiler), _old_arena(mtCompiler), _Compile_types(mtCompiler), -@@ -2398,13 +2396,6 @@ void Compile::Optimize() { - igvn.optimize(); - } +@@ -2408,13 +2406,6 @@ void Compile::Optimize() { + bs->verify_gc_barriers(false); + #endif +- bs->barrier_insertion_phase(C, igvn); +- if (failing()) return; +- -#ifdef ASSERT - bs->verify_gc_barriers(false); -#endif - -- bs->barrier_insertion_phase(C, igvn); -- if (failing()) return; -- - #ifdef ASSERT - bs->verify_gc_barriers(false); - #endif -@@ -2969,29 +2960,6 @@ void Compile::final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc) { + { + TracePhase tp("macroExpand", &timers[_t_macroExpand]); + PhaseMacroExpand mex(igvn); +@@ -2996,29 +2987,6 @@ void Compile::final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc) { break; } @@ -4602,7 +4592,7 @@ index ef4a6ab13..b6980c4e7 100644 Node *addp = n->in(AddPNode::Address); assert( !addp->is_AddP() || diff --git a/src/hotspot/share/opto/compile.hpp b/src/hotspot/share/opto/compile.hpp -index bfd85d032..a885d9f8d 100644 +index 320030e..1246b1b 100644 --- a/src/hotspot/share/opto/compile.hpp +++ b/src/hotspot/share/opto/compile.hpp @@ -55,7 +55,6 @@ class ConnectionGraph; @@ -4613,7 +4603,7 @@ index bfd85d032..a885d9f8d 100644 class Matcher; class MachConstantNode; class MachConstantBaseNode; -@@ -1181,11 +1180,7 @@ class Compile : public Phase { +@@ -1185,11 +1184,7 @@ class Compile : public Phase { bool in_scratch_emit_size() const { return _in_scratch_emit_size; } enum ScratchBufferBlob { @@ -4625,7 +4615,7 @@ index bfd85d032..a885d9f8d 100644 MAX_locs_size = 128, // number of relocInfo elements MAX_const_size = 128, MAX_stubs_size = 128 -@@ -1260,14 +1255,30 @@ class Compile : public Phase { +@@ -1264,14 +1259,30 @@ class Compile : public Phase { // Process an OopMap Element while emitting nodes void Process_OopMap_Node(MachNode *mach, int code_offset); @@ -4659,10 +4649,10 @@ index bfd85d032..a885d9f8d 100644 // Compute the size of first NumberOfLoopInstrToAlign instructions // at the head of a loop. diff --git a/src/hotspot/share/opto/escape.cpp b/src/hotspot/share/opto/escape.cpp -index 235b31c4c..15d483f33 100644 +index cd0ef26..0a22c89 100644 --- a/src/hotspot/share/opto/escape.cpp +++ b/src/hotspot/share/opto/escape.cpp -@@ -487,13 +487,6 @@ void ConnectionGraph::add_node_to_connection_graph(Node *n, Unique_Node_List *de +@@ -490,13 +490,6 @@ void ConnectionGraph::add_node_to_connection_graph(Node *n, Unique_Node_List *de add_local_var_and_edge(n, PointsToNode::NoEscape, n->in(0), delayed_worklist); } @@ -4676,7 +4666,7 @@ index 235b31c4c..15d483f33 100644 break; } case Op_Rethrow: // Exception object escapes -@@ -701,14 +694,6 @@ void ConnectionGraph::add_final_edges(Node *n) { +@@ -731,14 +724,6 @@ void ConnectionGraph::add_final_edges(Node *n) { add_local_var_and_edge(n, PointsToNode::NoEscape, n->in(0), NULL); break; } @@ -4692,7 +4682,7 @@ index 235b31c4c..15d483f33 100644 } case Op_Rethrow: // Exception object escapes diff --git a/src/hotspot/share/opto/lcm.cpp b/src/hotspot/share/opto/lcm.cpp -index 05ec9fa9f..16b80bfc3 100644 +index 05ec9fa..16b80bf 100644 --- a/src/hotspot/share/opto/lcm.cpp +++ b/src/hotspot/share/opto/lcm.cpp @@ -169,7 +169,6 @@ void PhaseCFG::implicit_null_check(Block* block, Node *proj, Node *val, int allo @@ -4704,10 +4694,10 @@ index 05ec9fa9f..16b80bfc3 100644 case Op_LoadS: case Op_LoadKlass: diff --git a/src/hotspot/share/opto/loopnode.cpp b/src/hotspot/share/opto/loopnode.cpp -index 7c3033162..25fab93cf 100644 +index 6aff3d5..38f0449 100644 --- a/src/hotspot/share/opto/loopnode.cpp +++ b/src/hotspot/share/opto/loopnode.cpp -@@ -1001,18 +1001,6 @@ void LoopNode::verify_strip_mined(int expect_skeleton) const { +@@ -1005,18 +1005,6 @@ void LoopNode::verify_strip_mined(int expect_skeleton) const { } } @@ -4726,7 +4716,7 @@ index 7c3033162..25fab93cf 100644 CountedLoopEndNode* cle = inner_out->in(0)->as_CountedLoopEnd(); assert(cle == inner->loopexit_or_null(), "mismatch"); bool has_skeleton = outer_le->in(1)->bottom_type()->singleton() && outer_le->in(1)->bottom_type()->is_int()->get_con() == 0; -@@ -4250,7 +4238,6 @@ void PhaseIdealLoop::build_loop_late_post( Node *n ) { +@@ -4273,7 +4261,6 @@ void PhaseIdealLoop::build_loop_late_post( Node *n ) { case Op_LoadL: case Op_LoadS: case Op_LoadP: @@ -4735,7 +4725,7 @@ index 7c3033162..25fab93cf 100644 case Op_LoadRange: case Op_LoadD_unaligned: diff --git a/src/hotspot/share/opto/loopopts.cpp b/src/hotspot/share/opto/loopopts.cpp -index 5793f51f2..6b85529f4 100644 +index 5793f51..6b85529 100644 --- a/src/hotspot/share/opto/loopopts.cpp +++ b/src/hotspot/share/opto/loopopts.cpp @@ -41,9 +41,6 @@ @@ -4749,7 +4739,7 @@ index 5793f51f2..6b85529f4 100644 //============================================================================= //------------------------------split_thru_phi--------------------------------- diff --git a/src/hotspot/share/opto/machnode.hpp b/src/hotspot/share/opto/machnode.hpp -index 66adf9be1..90d5b0af1 100644 +index 66adf9b..90d5b0a 100644 --- a/src/hotspot/share/opto/machnode.hpp +++ b/src/hotspot/share/opto/machnode.hpp @@ -197,7 +197,7 @@ public: @@ -4783,7 +4773,7 @@ index 66adf9be1..90d5b0af1 100644 // more leafs. Must be set by MachNode constructor to point to an // internal array of MachOpers. The MachOper array is sized by diff --git a/src/hotspot/share/opto/matcher.cpp b/src/hotspot/share/opto/matcher.cpp -index 79b366fd5..41d92b3d0 100644 +index 45d2627..05fdab2 100644 --- a/src/hotspot/share/opto/matcher.cpp +++ b/src/hotspot/share/opto/matcher.cpp @@ -1752,6 +1752,13 @@ MachNode *Matcher::ReduceInst( State *s, int rule, Node *&mem ) { @@ -4818,7 +4808,7 @@ index 79b366fd5..41d92b3d0 100644 default: if( n->is_Store() ) { // Do match stores, despite no ideal reg -@@ -2286,33 +2282,6 @@ void Matcher::find_shared( Node *n ) { +@@ -2294,33 +2290,6 @@ void Matcher::find_shared( Node *n ) { n->del_req(LoadStoreConditionalNode::ExpectedIn); break; } @@ -4853,7 +4843,7 @@ index 79b366fd5..41d92b3d0 100644 case Op_CMoveF: case Op_CMoveI: diff --git a/src/hotspot/share/opto/memnode.cpp b/src/hotspot/share/opto/memnode.cpp -index 2de221a1e..4147c6d46 100644 +index 76e950c..028d1a9 100644 --- a/src/hotspot/share/opto/memnode.cpp +++ b/src/hotspot/share/opto/memnode.cpp @@ -49,9 +49,6 @@ @@ -4863,10 +4853,10 @@ index 2de221a1e..4147c6d46 100644 -#if INCLUDE_ZGC -#include "gc/z/c2/zBarrierSetC2.hpp" -#endif - - // Portions of code courtesy of Clifford Click - -@@ -2818,7 +2815,7 @@ LoadStoreNode::LoadStoreNode( Node *c, Node *mem, Node *adr, Node *val, const Ty + #if INCLUDE_SHENANDOAHGC + #include "gc/shenandoah/c2/shenandoahBarrierSetC2.hpp" + #endif +@@ -2826,7 +2823,7 @@ LoadStoreNode::LoadStoreNode( Node *c, Node *mem, Node *adr, Node *val, const Ty : Node(required), _type(rt), _adr_type(at), @@ -4876,7 +4866,7 @@ index 2de221a1e..4147c6d46 100644 init_req(MemNode::Control, c ); init_req(MemNode::Memory , mem); diff --git a/src/hotspot/share/opto/memnode.hpp b/src/hotspot/share/opto/memnode.hpp -index e2bd6a6d8..3bf3dc420 100644 +index e2bd6a6..3bf3dc4 100644 --- a/src/hotspot/share/opto/memnode.hpp +++ b/src/hotspot/share/opto/memnode.hpp @@ -43,6 +43,8 @@ private: @@ -5002,7 +4992,7 @@ index e2bd6a6d8..3bf3dc420 100644 //------------------------------CompareAndSwapBNode--------------------------- diff --git a/src/hotspot/share/opto/node.cpp b/src/hotspot/share/opto/node.cpp -index 9bfc3a3b9..8d0475f53 100644 +index bb020c4..5a5e44e 100644 --- a/src/hotspot/share/opto/node.cpp +++ b/src/hotspot/share/opto/node.cpp @@ -546,9 +546,6 @@ Node *Node::clone() const { @@ -5027,7 +5017,7 @@ index 9bfc3a3b9..8d0475f53 100644 } diff --git a/src/hotspot/share/opto/node.hpp b/src/hotspot/share/opto/node.hpp -index d69974be2..cf0975e37 100644 +index a4c5fd8..2a42e99 100644 --- a/src/hotspot/share/opto/node.hpp +++ b/src/hotspot/share/opto/node.hpp @@ -82,8 +82,6 @@ class JVMState; @@ -5039,7 +5029,7 @@ index d69974be2..cf0975e37 100644 class LoadStoreNode; class LoadStoreConditionalNode; class LockNode; -@@ -641,7 +639,6 @@ public: +@@ -644,7 +642,6 @@ public: DEFINE_CLASS_ID(MemBar, Multi, 3) DEFINE_CLASS_ID(Initialize, MemBar, 0) DEFINE_CLASS_ID(MemBarStoreStore, MemBar, 1) @@ -5047,7 +5037,7 @@ index d69974be2..cf0975e37 100644 DEFINE_CLASS_ID(Mach, Node, 1) DEFINE_CLASS_ID(MachReturn, Mach, 0) -@@ -690,7 +687,6 @@ public: +@@ -696,7 +693,6 @@ public: DEFINE_CLASS_ID(Mem, Node, 4) DEFINE_CLASS_ID(Load, Mem, 0) DEFINE_CLASS_ID(LoadVector, Load, 0) @@ -5055,7 +5045,7 @@ index d69974be2..cf0975e37 100644 DEFINE_CLASS_ID(Store, Mem, 1) DEFINE_CLASS_ID(StoreVector, Store, 0) DEFINE_CLASS_ID(LoadStore, Mem, 2) -@@ -833,8 +829,6 @@ public: +@@ -839,8 +835,6 @@ public: DEFINE_CLASS_QUERY(Load) DEFINE_CLASS_QUERY(LoadStore) DEFINE_CLASS_QUERY(LoadStoreConditional) @@ -5065,19 +5055,19 @@ index d69974be2..cf0975e37 100644 DEFINE_CLASS_QUERY(Loop) DEFINE_CLASS_QUERY(Mach) diff --git a/src/hotspot/share/opto/output.cpp b/src/hotspot/share/opto/output.cpp -index b8f72ffca..4319f9fd1 100644 +index 3c02a6f..e3933f4 100644 --- a/src/hotspot/share/opto/output.cpp +++ b/src/hotspot/share/opto/output.cpp -@@ -31,6 +31,8 @@ - #include "compiler/compileBroker.hpp" +@@ -32,6 +32,8 @@ #include "compiler/compilerDirectives.hpp" + #include "compiler/disassembler.hpp" #include "compiler/oopMap.hpp" +#include "gc/shared/barrierSet.hpp" +#include "gc/shared/c2/barrierSetC2.hpp" #include "memory/allocation.inline.hpp" #include "opto/ad.hpp" #include "opto/callnode.hpp" -@@ -114,35 +116,35 @@ void Compile::Output() { +@@ -115,35 +117,35 @@ void Compile::Output() { } } @@ -5134,7 +5124,7 @@ index b8f72ffca..4319f9fd1 100644 return; } -@@ -223,7 +225,7 @@ void Compile::compute_loop_first_inst_sizes() { +@@ -224,7 +226,7 @@ void Compile::compute_loop_first_inst_sizes() { // The architecture description provides short branch variants for some long // branch instructions. Replace eligible long branches with short branches. @@ -5143,7 +5133,7 @@ index b8f72ffca..4319f9fd1 100644 // Compute size of each block, method size, and relocation information size uint nblocks = _cfg->number_of_blocks(); -@@ -241,11 +243,11 @@ void Compile::shorten_branches(uint* blk_starts, int& code_size, int& reloc_size +@@ -242,11 +244,11 @@ void Compile::shorten_branches(uint* blk_starts, int& code_size, int& reloc_size bool has_short_branch_candidate = false; // Initialize the sizes to 0 @@ -5158,7 +5148,7 @@ index b8f72ffca..4319f9fd1 100644 // Make three passes. The first computes pessimistic blk_starts, // relative jmp_offset and reloc_size information. The second performs -@@ -479,6 +481,10 @@ void Compile::shorten_branches(uint* blk_starts, int& code_size, int& reloc_size +@@ -480,6 +482,10 @@ void Compile::shorten_branches(uint* blk_starts, int& code_size, int& reloc_size // a relocation index. // The CodeBuffer will expand the locs array if this estimate is too low. reloc_size *= 10 / sizeof(relocInfo); @@ -5169,7 +5159,7 @@ index b8f72ffca..4319f9fd1 100644 } //------------------------------FillLocArray----------------------------------- -@@ -490,8 +496,8 @@ static LocationValue *new_loc_value( PhaseRegAlloc *ra, OptoReg::Name regnum, Lo +@@ -491,8 +497,8 @@ static LocationValue *new_loc_value( PhaseRegAlloc *ra, OptoReg::Name regnum, Lo // This should never have accepted Bad before assert(OptoReg::is_valid(regnum), "location must be valid"); return (OptoReg::is_reg(regnum)) @@ -5180,7 +5170,7 @@ index b8f72ffca..4319f9fd1 100644 } -@@ -610,12 +616,12 @@ void Compile::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local, +@@ -611,12 +617,12 @@ void Compile::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local, } #endif //_LP64 else if( (t->base() == Type::FloatBot || t->base() == Type::FloatCon) && @@ -5196,7 +5186,7 @@ index b8f72ffca..4319f9fd1 100644 } else if( t->base() == Type::NarrowOop ) { array->append(new_loc_value( _regalloc, regnum, Location::narrowoop )); } else { -@@ -626,48 +632,48 @@ void Compile::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local, +@@ -627,48 +633,48 @@ void Compile::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local, // No register. It must be constant data. switch (t->base()) { @@ -5281,7 +5271,7 @@ index b8f72ffca..4319f9fd1 100644 // The convention the interpreter uses is that the second local // holds the first raw word of the native double representation. // This is actually reasonable, since locals and stack arrays -@@ -679,15 +685,15 @@ void Compile::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local, +@@ -680,15 +686,15 @@ void Compile::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local, array->append(new ConstantIntValue(acc.words[1])); array->append(new ConstantIntValue(acc.words[0])); #endif @@ -5304,7 +5294,7 @@ index b8f72ffca..4319f9fd1 100644 // The convention the interpreter uses is that the second local // holds the first raw word of the native double representation. // This is actually reasonable, since locals and stack arrays -@@ -699,14 +705,14 @@ void Compile::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local, +@@ -700,14 +706,14 @@ void Compile::FillLocArray( int idx, MachSafePointNode* sfpt, Node *local, array->append(new ConstantIntValue(acc.words[1])); array->append(new ConstantIntValue(acc.words[0])); #endif @@ -5327,7 +5317,7 @@ index b8f72ffca..4319f9fd1 100644 } } -@@ -871,58 +877,58 @@ void Compile::Process_OopMap_Node(MachNode *mach, int current_offset) { +@@ -872,58 +878,58 @@ void Compile::Process_OopMap_Node(MachNode *mach, int current_offset) { // A simplified version of Process_OopMap_Node, to handle non-safepoints. class NonSafepointEmitter { @@ -5424,7 +5414,7 @@ index b8f72ffca..4319f9fd1 100644 }; void NonSafepointEmitter::emit_non_safepoint() { -@@ -952,15 +958,11 @@ void NonSafepointEmitter::emit_non_safepoint() { +@@ -953,15 +959,11 @@ void NonSafepointEmitter::emit_non_safepoint() { } //------------------------------init_buffer------------------------------------ @@ -5442,7 +5432,7 @@ index b8f72ffca..4319f9fd1 100644 // The extra spacing after the code is necessary on some platforms. // Sometimes we need to patch in a jump after the last instruction, // if the nmethod has been deoptimized. (See 4932387, 4894843.) -@@ -972,7 +974,7 @@ CodeBuffer* Compile::init_buffer(uint* blk_starts) { +@@ -973,7 +975,7 @@ CodeBuffer* Compile::init_buffer(uint* blk_starts) { // Compute prolog code size _method_size = 0; @@ -5451,7 +5441,7 @@ index b8f72ffca..4319f9fd1 100644 #if defined(IA64) && !defined(AIX) if (save_argument_registers()) { // 4815101: this is a stub with implicit and unknown precision fp args. -@@ -1021,12 +1023,18 @@ CodeBuffer* Compile::init_buffer(uint* blk_starts) { +@@ -1022,12 +1024,18 @@ CodeBuffer* Compile::init_buffer(uint* blk_starts) { // Initialize the space for the BufferBlob used to find and verify // instruction size in MachNode::emit_size() init_scratch_buffer_blob(const_req); @@ -5474,7 +5464,7 @@ index b8f72ffca..4319f9fd1 100644 // nmethod and CodeBuffer count stubs & constants as part of method's code. // class HandlerImpl is platform-specific and defined in the *.ad files. int exception_handler_req = HandlerImpl::size_exception_handler() + MAX_stubs_size; // add marginal slop for handler -@@ -1038,18 +1046,18 @@ CodeBuffer* Compile::init_buffer(uint* blk_starts) { +@@ -1039,18 +1047,18 @@ CodeBuffer* Compile::init_buffer(uint* blk_starts) { code_req = const_req = stub_req = exception_handler_req = deopt_handler_req = 0x10; // force expansion int total_req = @@ -5500,7 +5490,7 @@ index b8f72ffca..4319f9fd1 100644 // Have we run out of code space? if ((cb->blob() == NULL) || (!CompileBroker::should_compile_new_jobs())) { -@@ -1263,12 +1271,12 @@ void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) { +@@ -1264,12 +1272,12 @@ void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) { Process_OopMap_Node(mach, current_offset); } // End if safepoint @@ -5515,7 +5505,7 @@ index b8f72ffca..4319f9fd1 100644 else if (mach->is_MachBranch()) { // This requires the TRUE branch target be in succs[0] uint block_num = block->non_connector_successor(0)->_pre_order; -@@ -1279,8 +1287,8 @@ void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) { +@@ -1280,8 +1288,8 @@ void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) { bool delay_slot_is_used = valid_bundle_info(n) && node_bundling(n)->use_unconditional_delay(); if (!delay_slot_is_used && mach->may_be_short_branch()) { @@ -5526,7 +5516,7 @@ index b8f72ffca..4319f9fd1 100644 int offset = blk_starts[block_num] - current_offset; if (block_num >= i) { // Current and following block's offset are not -@@ -1338,7 +1346,7 @@ void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) { +@@ -1339,7 +1347,7 @@ void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) { } } #ifdef ASSERT @@ -5535,7 +5525,7 @@ index b8f72ffca..4319f9fd1 100644 else if (mach->ideal_Opcode() == Op_StoreCM) { uint storeCM_idx = j; int count = 0; -@@ -1507,6 +1515,10 @@ void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) { +@@ -1517,6 +1525,10 @@ void Compile::fill_buffer(CodeBuffer* cb, uint* blk_starts) { } #endif @@ -5546,7 +5536,7 @@ index b8f72ffca..4319f9fd1 100644 #ifndef PRODUCT // Information on the size of the method, without the extraneous code Scheduling::increment_method_size(cb->insts_size()); -@@ -1671,20 +1683,20 @@ uint Scheduling::_total_instructions_per_bundle[Pipeline::_max_instrs_per_cycle+ +@@ -1681,20 +1693,20 @@ uint Scheduling::_total_instructions_per_bundle[Pipeline::_max_instrs_per_cycle+ // Initializer for class Scheduling Scheduling::Scheduling(Arena *arena, Compile &compile) @@ -5580,7 +5570,7 @@ index b8f72ffca..4319f9fd1 100644 #endif { // Create a MachNopNode -@@ -1763,8 +1775,8 @@ void Scheduling::step_and_clear() { +@@ -1773,8 +1785,8 @@ void Scheduling::step_and_clear() { _bundle_use.reset(); memcpy(_bundle_use_elements, @@ -5591,7 +5581,7 @@ index b8f72ffca..4319f9fd1 100644 } // Perform instruction scheduling and bundling over the sequence of -@@ -1791,6 +1803,22 @@ void Compile::ScheduleAndBundle() { +@@ -1801,6 +1813,22 @@ void Compile::ScheduleAndBundle() { // Walk backwards over each basic block, computing the needed alignment // Walk over all the basic blocks scheduling.DoScheduling(); @@ -5614,7 +5604,7 @@ index b8f72ffca..4319f9fd1 100644 } // Compute the latency of all the instructions. This is fairly simple, -@@ -1859,7 +1887,7 @@ bool Scheduling::NodeFitsInBundle(Node *n) { +@@ -1869,7 +1897,7 @@ bool Scheduling::NodeFitsInBundle(Node *n) { #ifndef PRODUCT if (_cfg->C->trace_opto_output()) tty->print("# NodeFitsInBundle [%4d]: FALSE; latency %4d > %d\n", @@ -5623,7 +5613,7 @@ index b8f72ffca..4319f9fd1 100644 #endif return (false); } -@@ -2084,12 +2112,12 @@ void Scheduling::AddNodeToBundle(Node *n, const Block *bb) { +@@ -2094,12 +2122,12 @@ void Scheduling::AddNodeToBundle(Node *n, const Block *bb) { // Don't allow safepoints in the branch shadow, that will // cause a number of difficulties if ( avail_pipeline->instructionCount() == 1 && @@ -5642,7 +5632,7 @@ index b8f72ffca..4319f9fd1 100644 if (d->is_Mach() && !d->is_MachSafePoint()) { // A node that fits in the delay slot was found, so we need to -@@ -2134,13 +2162,13 @@ void Scheduling::AddNodeToBundle(Node *n, const Block *bb) { +@@ -2144,13 +2172,13 @@ void Scheduling::AddNodeToBundle(Node *n, const Block *bb) { // step of the bundles if (!NodeFitsInBundle(n)) { #ifndef PRODUCT @@ -5661,7 +5651,7 @@ index b8f72ffca..4319f9fd1 100644 } } -@@ -2186,8 +2214,8 @@ void Scheduling::AddNodeToBundle(Node *n, const Block *bb) { +@@ -2196,8 +2224,8 @@ void Scheduling::AddNodeToBundle(Node *n, const Block *bb) { #ifndef PRODUCT if (_cfg->C->trace_opto_output()) tty->print("# *** STEP(%d >= %d instructions) ***\n", @@ -5672,7 +5662,7 @@ index b8f72ffca..4319f9fd1 100644 #endif step(1); } -@@ -2393,7 +2421,7 @@ void Scheduling::DoScheduling() { +@@ -2403,7 +2431,7 @@ void Scheduling::DoScheduling() { } assert(!last->is_Mach() || last->as_Mach()->ideal_Opcode() != Op_Con, ""); if( last->is_Catch() || @@ -5681,7 +5671,7 @@ index b8f72ffca..4319f9fd1 100644 // There might be a prior call. Skip it. while (_bb_start < _bb_end && bb->get_node(--_bb_end)->is_MachProj()); } else if( last->is_MachNullCheck() ) { -@@ -2463,7 +2491,7 @@ void Scheduling::DoScheduling() { +@@ -2473,7 +2501,7 @@ void Scheduling::DoScheduling() { } #endif #ifdef ASSERT @@ -5690,7 +5680,7 @@ index b8f72ffca..4319f9fd1 100644 #endif } -@@ -2811,31 +2839,31 @@ void Scheduling::ComputeRegisterAntidependencies(Block *b) { +@@ -2821,31 +2849,31 @@ void Scheduling::ComputeRegisterAntidependencies(Block *b) { // void Scheduling::garbage_collect_pinch_nodes() { #ifndef PRODUCT @@ -5742,7 +5732,7 @@ index b8f72ffca..4319f9fd1 100644 #endif } -@@ -2872,19 +2900,19 @@ void Scheduling::dump_available() const { +@@ -2882,19 +2910,19 @@ void Scheduling::dump_available() const { void Scheduling::print_statistics() { // Print the size added by nops for bundling tty->print("Nops added %d bytes to total of %d bytes", @@ -5766,7 +5756,7 @@ index b8f72ffca..4319f9fd1 100644 tty->print("\n"); } -@@ -2898,6 +2926,6 @@ void Scheduling::print_statistics() { +@@ -2908,6 +2936,6 @@ void Scheduling::print_statistics() { if (total_bundles > 0) tty->print("Average ILP (excluding nops) is %.2f\n", @@ -5775,7 +5765,7 @@ index b8f72ffca..4319f9fd1 100644 } #endif diff --git a/src/hotspot/share/opto/output.hpp b/src/hotspot/share/opto/output.hpp -index ab3c1a304..ec3cc2981 100644 +index ab3c1a3..ec3cc29 100644 --- a/src/hotspot/share/opto/output.hpp +++ b/src/hotspot/share/opto/output.hpp @@ -49,10 +49,7 @@ class Pipeline_Use; @@ -5791,10 +5781,10 @@ index ab3c1a304..ec3cc2981 100644 //------------------------------Scheduling---------------------------------- diff --git a/src/hotspot/share/opto/phaseX.cpp b/src/hotspot/share/opto/phaseX.cpp -index d1177a56e..f9b883ef6 100644 +index 07b8490..9d5d4de 100644 --- a/src/hotspot/share/opto/phaseX.cpp +++ b/src/hotspot/share/opto/phaseX.cpp -@@ -1650,14 +1650,14 @@ void PhaseIterGVN::add_users_to_worklist( Node *n ) { +@@ -1648,14 +1648,14 @@ void PhaseIterGVN::add_users_to_worklist( Node *n ) { // of the mirror load depends on the type of 'n'. See LoadNode::Value(). // LoadBarrier?(LoadP(LoadP(AddP(foo:Klass, #java_mirror)))) BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); @@ -5811,7 +5801,7 @@ index d1177a56e..f9b883ef6 100644 // Search for load barriers behind the load for (DUIterator_Fast i3max, i3 = u->fast_outs(i3max); i3 < i3max; i3++) { Node* b = u->fast_out(i3); -@@ -1811,14 +1811,14 @@ void PhaseCCP::analyze() { +@@ -1818,14 +1818,14 @@ void PhaseCCP::analyze() { // Loading the java mirror from a Klass requires two loads and the type // of the mirror load depends on the type of 'n'. See LoadNode::Value(). BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); @@ -5829,10 +5819,10 @@ index d1177a56e..f9b883ef6 100644 for (DUIterator_Fast i3max, i3 = u->fast_outs(i3max); i3 < i3max; i3++) { Node* b = u->fast_out(i3); diff --git a/src/hotspot/share/opto/vectornode.cpp b/src/hotspot/share/opto/vectornode.cpp -index b40587ba5..e0bf8410a 100644 +index 0258db3..fae147f 100644 --- a/src/hotspot/share/opto/vectornode.cpp +++ b/src/hotspot/share/opto/vectornode.cpp -@@ -252,7 +252,6 @@ void VectorNode::vector_operands(Node* n, uint* start, uint* end) { +@@ -264,7 +264,6 @@ void VectorNode::vector_operands(Node* n, uint* start, uint* end) { case Op_LoadI: case Op_LoadL: case Op_LoadF: case Op_LoadD: case Op_LoadP: case Op_LoadN: @@ -5840,4 +5830,3 @@ index b40587ba5..e0bf8410a 100644 *start = 0; *end = 0; // no vector operands break; - diff --git a/ZGC-reuse-entries-of-ResolvedMethodTable.patch b/ZGC-reuse-entries-of-ResolvedMethodTable.patch index 16e8818e2c66dc23ccfa02474a90b3b3be9c83e8..ce91594255e2e203e1e963f4671eaebc79da31ad 100644 --- a/ZGC-reuse-entries-of-ResolvedMethodTable.patch +++ b/ZGC-reuse-entries-of-ResolvedMethodTable.patch @@ -1,15 +1,3 @@ -From 9f63ba9b77f9f5391b2f79d2a4c3a444268a54ca Mon Sep 17 00:00:00 2001 -Date: Tue, 21 Apr 2020 17:00:15 +0000 -Subject: [PATCH] ZGC: reuse entries of ResolvedMethodTable - -Summary: : -LLT: test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java -Bug url: NA ---- - src/hotspot/share/gc/z/zHeap.cpp | 5 +++++ - .../hotspot/jtreg/runtime/MemberName/MemberNameLeak.java | 16 +++++++++++++--- - 2 files changed, 18 insertions(+), 3 deletions(-) - diff --git a/src/hotspot/share/gc/z/zHeap.cpp b/src/hotspot/share/gc/z/zHeap.cpp index 62f97d2..e950acf 100644 --- a/src/hotspot/share/gc/z/zHeap.cpp @@ -34,39 +22,14 @@ index 62f97d2..e950acf 100644 } diff --git a/test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java b/test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java -index 357f27f..930a542 100644 +index a8aff47..afadfd6 100644 --- a/test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java +++ b/test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java -@@ -59,9 +59,18 @@ public class MemberNameLeak { - - public static void test(String gc) throws Throwable { - // Run this Leak class with logging -- ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( -- "-Xlog:membername+table=trace", -- gc, Leak.class.getName()); -+ ProcessBuilder pb; -+ if (gc.contains("UseZGC")) { -+ pb = ProcessTools.createJavaProcessBuilder( -+ "-Xlog:membername+table=trace", -+ "-XX:+UnlockExperimentalVMOptions", -+ gc, Leak.class.getName()); -+ -+ } else { -+ pb = ProcessTools.createJavaProcessBuilder( -+ "-Xlog:membername+table=trace", -+ gc, Leak.class.getName()); -+ } - OutputAnalyzer output = new OutputAnalyzer(pb.start()); - output.shouldContain("ResolvedMethod entry added for MemberNameLeak$Leak.callMe()V"); - output.shouldContain("ResolvedMethod entry found for MemberNameLeak$Leak.callMe()V"); -@@ -73,6 +82,7 @@ public class MemberNameLeak { +@@ -75,6 +75,7 @@ public class MemberNameLeak { test("-XX:+UseG1GC"); test("-XX:+UseParallelGC"); test("-XX:+UseSerialGC"); + test("-XX:+UseZGC"); - if (!Compiler.isGraalEnabled()) { // Graal does not support CMS + if (!Compiler.isGraalEnabled()) { // Graal does not support CMS and Shenandoah test("-XX:+UseConcMarkSweepGC"); - } --- -1.8.3.1 - + if (GC.Shenandoah.isSupported()) { diff --git a/fix-IfNode-s-bugs.patch b/fix-IfNode-s-bugs.patch deleted file mode 100644 index dd15938181fadceb0117641a5eff85da6c156182..0000000000000000000000000000000000000000 --- a/fix-IfNode-s-bugs.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 466cb0f1a98c7b93e47e6056c460b6ec81864e3b Mon Sep 17 00:00:00 2001 -Date: Tue, 12 May 2020 10:08:51 +0000 -Subject: [PATCH] fix IfNode's bugs - -Summary: : fix wrong use of transform function -LLT: -Bug url: NA ---- - src/hotspot/share/opto/ifnode.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/hotspot/share/opto/ifnode.cpp b/src/hotspot/share/opto/ifnode.cpp -index 6f87d7c..a856200 100644 ---- a/src/hotspot/share/opto/ifnode.cpp -+++ b/src/hotspot/share/opto/ifnode.cpp -@@ -1398,7 +1398,10 @@ Node* IfNode::Ideal(PhaseGVN *phase, bool can_reshape) { - if (in(0) == NULL) return NULL; // Dead loop? - - PhaseIterGVN *igvn = phase->is_IterGVN(); -+ bool delay_state = igvn->delay_transform(); -+ igvn->set_delay_transform(true); - Node* result = fold_compares(igvn); -+ igvn->set_delay_transform(delay_state); - if (result != NULL) { - return result; - } --- -1.8.3.1 - diff --git a/java-11-openjdk.spec b/java-11-openjdk.spec index f0b94c86624166fbe9ec90f5784ac60fd082cf67..b9bdea27a7ea2475649b8348b5d4f1af8524da84 100644 --- a/java-11-openjdk.spec +++ b/java-11-openjdk.spec @@ -114,7 +114,7 @@ # New Version-String scheme-style defines %global majorver 11 -%global securityver 8 +%global securityver 9 # buildjdkver is usually same as %%{majorver}, # but in time of bootstrap of next jdk, it is majorver-1, # and this it is better to change it here, on single place @@ -130,11 +130,11 @@ %global origin_nice OpenJDK %global top_level_dir_name %{origin} %global minorver 0 -%global buildver 10 +%global buildver 11 %global project jdk-updates %global repo jdk11u -%global revision jdk-11.0.8-ga +%global revision jdk-11.0.9-ga %global full_revision %{project}-%{repo}-%{revision} # priority must be 7 digits in total # setting to 1, so debug ones can have 0 @@ -735,7 +735,7 @@ Provides: java-src%{?1} = %{epoch}:%{version}-%{release} Name: java-%{javaver}-%{origin} Version: %{newjavaver}.%{buildver} -Release: 9 +Release: 0 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -805,8 +805,6 @@ Patch10: ZGC-aarch64-not-using-zr-register-avoid-sigill-in-Ma.patch Patch11: 8217856-ZGC-Break-out-C2-matching-rules-into-separat.patch Patch12: 8233073-Make-BitMap-accessors-more-memory-ordering-f.patch Patch13: 8233061-ZGC-Enforce-memory-ordering-in-segmented-bit.patch -Patch14: Add-loadload-membar-to-avoid-loading-a-incorrect-offset.patch -Patch15: 8226536-Catch-OOM-from-deopt-that-fails-rematerializ.patch Patch18: 8209375-ZGC-Use-dynamic-base-address-for-mark-stack-.patch Patch20: 8209894-ZGC-Cap-number-of-GC-workers-based-on-heap-s.patch Patch22: 8233506-ZGC-the-load-for-Reference.get-can-be-conver.patch @@ -815,7 +813,6 @@ Patch26: ZGC-aarch64-fix-system-call-number-of-memfd_create.patch Patch27: ZGC-aarch64-fix-not-using-load-store-Pre-index.patch Patch28: address-s-offset-may-exceed-the-limit-of-ldrw-instru.patch Patch29: ZGC-reuse-entries-of-ResolvedMethodTable.patch -Patch32: 8240360-NativeLibraryEvent-has-wrong-library-name-on-linux.patch # 11.0.8 Patch33: 8210473-JEP-345-NUMA-Aware-Memory-Allocation-for-G1.patch @@ -829,7 +826,6 @@ Patch40: 8223667-ASAN-build-broken.patch Patch41: 8229495-SIGILL-in-C2-generated-OSR-compilation.patch Patch42: 8229496-SIGFPE-division-by-zero-in-C2-OSR-compiled-method.patch Patch43: 8243670-Unexpected-test-result-caused-by-C2-MergeMem.patch -Patch44: fix-IfNode-s-bugs.patch Patch45: leaf-optimize-in-ParallelScanvageGC.patch Patch46: ZGC-correct-free-heap-size-excluding-waste-in-rule_allocation_rate.patch Patch47: 8204947-Port-ShenandoahTaskTerminator-to-mainline-and-make-it-default.patch @@ -1065,43 +1061,46 @@ fi pushd %{top_level_dir_name} # OpenJDK patches -%patch2 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch18 -p1 -%patch20 -p1 -%patch22 -p1 -%patch23 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 +#%patch2 -p1 +#%patch5 -p1 +#%patch6 -p1 +#%patch7 -p1 +#%patch9 -p1 +#%patch10 -p1 +#%patch11 -p1 +#%patch12 -p1 + +#%patch13 -p1 +#%patch18 -p1 +#%patch20 -p1 +#%patch22 -p1 +#%patch23 -p1 +#%patch26 -p1 +#%patch27 -p1 +#%patch28 -p1 +#%patch29 -p1 +#%patch33 -p1 +#%patch34 -p1 +#%patch35 -p1 +#%patch36 -p1 +#%patch37 -p1 +#%patch38 -p1 +#%patch39 -p1 +#%patch40 -p1 + %patch41 -p1 -%patch42 -p1 -%patch43 -p1 -%patch44 -p1 -%patch45 -p1 -%patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 +#%patch42 -p1 +#%patch43 -p1 +#%patch45 -p1 +#%patch46 -p1 +## %patch47 -p1 +# +# +## %patch48 -p1 +# +# +# +#%patch49 -p1 popd # openjdk %patch1000 @@ -1604,6 +1603,9 @@ require "copy_jdk_configs.lua" %changelog +* Thu Oct 22 2020 noah - 1:11.0.9.11-0 +- Update to 11.0.9+11 (GA) + * Tue Oct 20 2020 noah - 1:11.0.8.10-9 - delete redundant openjdk-11.0.8-ga.tar.xz diff --git a/jdk-updates-jdk11u-jdk-11.0.8-ga.tar.xz b/jdk-updates-jdk11u-jdk-11.0.9-ga.tar.xz similarity index 74% rename from jdk-updates-jdk11u-jdk-11.0.8-ga.tar.xz rename to jdk-updates-jdk11u-jdk-11.0.9-ga.tar.xz index 7aec2b6d3427797b34dc071d8122cbdcd176bff1..e388d6935d7b15b3af95abf66b1bd2b5779978bb 100644 Binary files a/jdk-updates-jdk11u-jdk-11.0.8-ga.tar.xz and b/jdk-updates-jdk11u-jdk-11.0.9-ga.tar.xz differ