changeset 2842:07b69c72159c icedtea-3.9.0pre02

Bump aarch32 to jdk8u172-b11-aarch32-180511. Upstream changes: - S8031304: Add dcmd to print all loaded dynamic libraries. - S8035496: G1 ARM: missing remset entry noticed by VerifyAfterGC for vm/gc/concurrent/lp50yp10rp70mr30st0 - S8044107: Add Diagnostic Command to list all ClassLoaders - S8055755: Information about loaded dynamic libraries is wrong on MacOSX - S8059036: Implement Diagnostic Commands for heap and finalizerinfo - S8087291: InitialBootClassLoaderMetaspaceSize and CompressedClassSpaceSize should be checked consistent from MaxMetaspaceSize - S8139673: NMT stack traces in output should show mtcomponent - S8170358: [REDO] 8k class metaspace chunks misallocated from 4k chunk Freelist - S8170395: Metaspace initialization queries the wrong chunk freelist - S8184991: NMT detail diff should take memory type into account - S8187331: VirtualSpaceList tracks free space on wrong node - S8187629: NMT: Memory miscounting in compiler (C2) - S8187685: NMT: Tracking compiler memory usage of thread's resource area - S8187822: C2 conditonal move optimization might create broken graph - S8189599: InitialBootClassLoaderMetaspaceSize and CompressedClassSpaceSize should be checked consistent from MaxMetaspaceSize - S8190442: Backout changes for JDK-8087291 from 8u-dev as it didn't use main CR id ChangeLog: 2018-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org> Bump aarch32 to jdk8u172-b11-aarch32-180511. * patches/hotspot/aarch32/8035496-pr3487.patch, * patches/hotspot/aarch32/8187822-pr3478-rh1494230.patch: Removed as applied upstream. * Makefile.am: (ICEDTEA_PATCHES): Remove upstreamed patches. * hotspot.map.in: Bump aarch32 to jdk8u172-b11-aarch32-180511.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Sat, 01 Sep 2018 21:06:12 +0100
parents 37a025f6ea9a
children 17f5a2d00f97
files ChangeLog Makefile.am hotspot.map.in patches/hotspot/aarch32/8035496-pr3487.patch patches/hotspot/aarch32/8187822-pr3478-rh1494230.patch
diffstat 5 files changed, 13 insertions(+), 165 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Aug 31 20:55:12 2018 +0100
+++ b/ChangeLog	Sat Sep 01 21:06:12 2018 +0100
@@ -1,3 +1,14 @@
+2018-09-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	Bump aarch32 to jdk8u172-b11-aarch32-180511.
+	* patches/hotspot/aarch32/8035496-pr3487.patch,
+	* patches/hotspot/aarch32/8187822-pr3478-rh1494230.patch:
+	Removed as applied upstream.
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Remove upstreamed patches.
+	* hotspot.map.in: Bump aarch32 to
+	jdk8u172-b11-aarch32-180511.
+
 2018-08-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	Bump shenandoah to
--- a/Makefile.am	Fri Aug 31 20:55:12 2018 +0100
+++ b/Makefile.am	Sat Sep 01 21:06:12 2018 +0100
@@ -353,10 +353,8 @@
 if WITH_AARCH32_HSBUILD
 ICEDTEA_PATCHES += \
 	patches/hotspot/$(HSBUILD)/pr3548-aarch32.patch \
-	patches/hotspot/$(HSBUILD)/8035496-pr3487.patch \
 	patches/hotspot/$(HSBUILD)/8165489-pr3589.patch \
-	patches/hotspot/$(HSBUILD)/8187577-pr3578.patch \
-	patches/hotspot/$(HSBUILD)/8187822-pr3478-rh1494230.patch
+	patches/hotspot/$(HSBUILD)/8187577-pr3578.patch
 endif
 
 ICEDTEA_PATCHES += \
--- a/hotspot.map.in	Fri Aug 31 20:55:12 2018 +0100
+++ b/hotspot.map.in	Sat Sep 01 21:06:12 2018 +0100
@@ -1,4 +1,4 @@
 # version type(drop/hg) url changeset sha256sum
 default drop http://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 88515137e73f 011370479a1f927c0cd9383c3b987f0e1c8ce9697d5bba02a5100da5dd2794a7
 shenandoah drop http://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ 923b7475c897 509febb41f786879c091500ec98e6a8dfbca16e419b2bbdcaecb7f522558cae5
-aarch32 drop http://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ bd08b7f27e11 6a27c6f81817a4edf633572198a7d4f829f2239a98bdd1daf805688794af3951
+aarch32 drop http://icedtea.classpath.org/download/drops/icedtea8/@ICEDTEA_RELEASE@ e749b2f34b5e f69d992385d607b46ddb78373f7964c1a3b30f95c809e4669b804cf2f0f137ad
--- a/patches/hotspot/aarch32/8035496-pr3487.patch	Fri Aug 31 20:55:12 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-# HG changeset patch
-# User bdelsart
-# Date 1393242561 -3600
-#      Mon Feb 24 12:49:21 2014 +0100
-# Node ID f7ae197522b1f3b59c8f1c73ccb07641e82ec08a
-# Parent  e2d13b496321f87a9232573d5671af86311af99f
-8035496, PR3487: G1 ARM: missing remset entry noticed by VerifyAfterGC for vm/gc/concurrent/lp50yp10rp70mr30st0
-Summary: release_store used when registering a PerRegionTable. Also reviewed-by: vitalyd@gmail.com
-Reviewed-by: jmasa, tschatzl, brutisso
-
-diff --git a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp
-@@ -514,7 +514,15 @@
- 
-       PerRegionTable* first_prt = _fine_grain_regions[ind];
-       prt->set_collision_list_next(first_prt);
--      _fine_grain_regions[ind] = prt;
-+      // The assignment into _fine_grain_regions allows the prt to
-+      // start being used concurrently. In addition to
-+      // collision_list_next which must be visible (else concurrent
-+      // parsing of the list, if any, may fail to see other entries),
-+      // the content of the prt must be visible (else for instance
-+      // some mark bits may not yet seem cleared or a 'later' update
-+      // performed by a concurrent thread could be undone when the
-+      // zeroing becomes visible). This requires store ordering.
-+      OrderAccess::release_store_ptr((volatile PerRegionTable*)&_fine_grain_regions[ind], prt);
-       _n_fine_entries++;
- 
-       if (G1HRRSUseSparseTable) {
--- a/patches/hotspot/aarch32/8187822-pr3478-rh1494230.patch	Fri Aug 31 20:55:12 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-# HG changeset patch
-# User roland
-# Date 1506521867 -7200
-#      Wed Sep 27 16:17:47 2017 +0200
-# Node ID 542f4e30fdffc87e5e098d81d69e7aa52d3c763c
-# Parent  302eb515bf52ceacf17b6e620db2d2b862dfefa2
-8187822, PR8187822, RH1494230: C2 conditonal move optimization might create broken graph
-Reviewed-by: kvn
-
-diff --git a/src/share/vm/opto/loopopts.cpp b/src/share/vm/opto/loopopts.cpp
---- openjdk/hotspot/src/share/vm/opto/loopopts.cpp
-+++ openjdk/hotspot/src/share/vm/opto/loopopts.cpp
-@@ -309,6 +309,7 @@
-       }
-       return NULL;
-     }
-+    assert(m->is_Phi() || is_dominator(get_ctrl(m), n_ctrl), "m has strange control");
-   }
- 
-   return n_ctrl;
-@@ -609,6 +610,7 @@
-   // Now replace all Phis with CMOV's
-   Node *cmov_ctrl = iff->in(0);
-   uint flip = (lp->Opcode() == Op_IfTrue);
-+  Node_List wq;
-   while (1) {
-     PhiNode* phi = NULL;
-     for (DUIterator_Fast imax, i = region->fast_outs(imax); i < imax; i++) {
-@@ -623,17 +625,21 @@
-     if (PrintOpto && VerifyLoopOptimizations) tty->print_cr("CMOV");
- #endif
-     // Move speculative ops
--    for (uint j = 1; j < region->req(); j++) {
--      Node *proj = region->in(j);
--      Node *inp = phi->in(j);
--      if (get_ctrl(inp) == proj) { // Found local op
-+    wq.push(phi);
-+    while (wq.size() > 0) {
-+      Node *n = wq.pop();
-+      for (uint j = 1; j < n->req(); j++) {
-+        Node* m = n->in(j);
-+        if (m != NULL && !is_dominator(get_ctrl(m), cmov_ctrl)) {
- #ifndef PRODUCT
--        if (PrintOpto && VerifyLoopOptimizations) {
--          tty->print("  speculate: ");
--          inp->dump();
-+          if (PrintOpto && VerifyLoopOptimizations) {
-+            tty->print("  speculate: ");
-+            m->dump();
-+          }
-+#endif
-+          set_ctrl(m, cmov_ctrl);
-+          wq.push(m);
-         }
--#endif
--        set_ctrl(inp, cmov_ctrl);
-       }
-     }
-     Node *cmov = CMoveNode::make( C, cmov_ctrl, iff->in(1), phi->in(1+flip), phi->in(2-flip), _igvn.type(phi) );
-diff --git a/test/compiler/loopopts/TestCMovSplitThruPhi.java b/test/compiler/loopopts/TestCMovSplitThruPhi.java
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/test/compiler/loopopts/TestCMovSplitThruPhi.java
-@@ -0,0 +1,67 @@
-+/*
-+ * Copyright (c) 2017, Red Hat, Inc. All rights reserved.
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * This code is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 only, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This code is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-+ * version 2 for more details (a copy is included in the LICENSE file that
-+ * accompanied this code).
-+ *
-+ * You should have received a copy of the GNU General Public License version
-+ * 2 along with this work; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+ * or visit www.oracle.com if you need additional information or have any
-+ * questions.
-+ */
-+
-+/**
-+ * @test
-+ * @bug 8187822
-+ * @summary C2 conditonal move optimization might create broken graph
-+ * @run main/othervm -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,TestCMovSplitThruPhi::not_inlined -XX:CompileOnly=TestCMovSplitThruPhi::test -XX:-LoopUnswitching TestCMovSplitThruPhi
-+ *
-+ */
-+
-+public class TestCMovSplitThruPhi {
-+    static int f;
-+
-+    static int test(boolean flag1, boolean flag2, boolean flag3, boolean flag4) {
-+        int v3 = 0;
-+        if (flag4) {
-+            for (int i = 0; i < 10; i++) {
-+                int v1 = 0;
-+                if (flag1) {
-+                    v1 = not_inlined();
-+                }
-+                // AddI below will be candidate for split through Phi
-+                int v2 = v1;
-+                if (flag2) {
-+                    v2 = f + v1;
-+                }
-+                // test above will be converted to CMovI
-+                if (flag3) {
-+                    v3 = v2 * 2;
-+                    break;
-+                }
-+            }
-+        }
-+        return v3;
-+    }
-+
-+    private static int not_inlined() {
-+        return 0;
-+    }
-+
-+    public static void main(String[] args) {
-+        for (int i = 0; i < 20000; i++) {
-+            test((i % 2) == 0, (i % 2) == 0, (i % 100) == 1, (i % 1000) == 1);
-+        }
-+    }
-+}