--- a/src/hotspot/share/opto/superword.cpp Mon Sep 30 13:27:55 2019 +0200
+++ b/src/hotspot/share/opto/superword.cpp Mon Sep 30 13:28:33 2019 +0200
@@ -2045,12 +2045,11 @@
for (uint k = 0; k < use->req(); k++) {
Node* n = use->in(k);
if (def == n) {
- // reductions should only have a Phi use at the the loop
- // head and out of loop uses
+ // Reductions should only have a Phi use at the loop head or a non-phi use
+ // outside of the loop if it is the last element of the pack (e.g. SafePoint).
if (def->is_reduction() &&
((use->is_Phi() && use->in(0) == _lpt->_head) ||
- !_lpt->is_member(_phase->get_loop(_phase->ctrl_or_self(use))))) {
- assert(i == p->size()-1, "must be last element of the pack");
+ (!_lpt->is_member(_phase->get_loop(_phase->ctrl_or_self(use))) && i == p->size()-1))) {
continue;
}
if (!is_vector_use(use, k)) {
--- a/src/hotspot/share/runtime/arguments.cpp Mon Sep 30 13:27:55 2019 +0200
+++ b/src/hotspot/share/runtime/arguments.cpp Mon Sep 30 13:28:33 2019 +0200
@@ -533,6 +533,7 @@
{ "FieldsAllocationStyle", JDK_Version::jdk(14), JDK_Version::jdk(15), JDK_Version::jdk(16) },
{ "CompactFields", JDK_Version::jdk(14), JDK_Version::jdk(15), JDK_Version::jdk(16) },
{ "MonitorBound", JDK_Version::jdk(14), JDK_Version::jdk(15), JDK_Version::jdk(16) },
+ { "G1RSetScanBlockSize", JDK_Version::jdk(14), JDK_Version::jdk(15), JDK_Version::jdk(16) },
// --- Deprecated alias flags (see also aliased_jvm_flags) - sorted by obsolete_in then expired_in:
{ "DefaultMaxRAMFraction", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },