Mon Aug 01 2016 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.101-3.b14
- Replace patch for S8162384 with upstream version. Document correctly along with SystemTap RH1204159 patch. - Resolves: rhbz#1358661 - Replace patch for S8157306 with upstream version, documented & applied on all archs with conditional in patch - Resolves: rhbz#1360863
This commit is contained in:
parent
700dee4637
commit
3e33782eea
29
8157306-pr3121-rh1360863.patch
Normal file
29
8157306-pr3121-rh1360863.patch
Normal file
@ -0,0 +1,29 @@
|
||||
# HG changeset patch
|
||||
# User aph
|
||||
# Date 1470065634 -3600
|
||||
# Mon Aug 01 16:33:54 2016 +0100
|
||||
# Node ID ee9bffb3bd390b2ad805c7b59d7d2ab8a68a4367
|
||||
# Parent ab3e0bde3c15bbba60de4decabcd70ffef657448
|
||||
8157306, PR3121: Random infrequent null pointer exceptions in javac
|
||||
Reviewed-by: kvn
|
||||
|
||||
diff -r ab3e0bde3c15 -r ee9bffb3bd39 src/share/vm/opto/lcm.cpp
|
||||
--- openjdk/hotspot/src/share/vm/opto/lcm.cpp Tue Jul 26 04:42:03 2016 +0100
|
||||
+++ openjdk/hotspot/src/share/vm/opto/lcm.cpp Mon Aug 01 16:33:54 2016 +0100
|
||||
@@ -1090,11 +1090,14 @@
|
||||
Block *sb = block->_succs[i];
|
||||
// Clone the entire area; ignoring the edge fixup for now.
|
||||
for( uint j = end; j > beg; j-- ) {
|
||||
- // It is safe here to clone a node with anti_dependence
|
||||
- // since clones dominate on each path.
|
||||
Node *clone = block->get_node(j-1)->clone();
|
||||
sb->insert_node(clone, 1);
|
||||
map_node_to_block(clone, sb);
|
||||
+#ifdef AARCH64
|
||||
+ if (clone->needs_anti_dependence_check()) {
|
||||
+ insert_anti_dependences(sb, clone);
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,17 @@
|
||||
--- openjdk/hotspot/src/share/vm/opto/doCall.cpp 2016-07-22 11:32:42.953343258 +0200
|
||||
+++ openjdk/hotspot/src/share/vm/opto/doCall.cpp 2016-07-22 11:32:39.209369543 +0200
|
||||
@@ -209,16 +209,22 @@
|
||||
# HG changeset patch
|
||||
# User roland
|
||||
# Date 1469615613 -7200
|
||||
# Wed Jul 27 12:33:33 2016 +0200
|
||||
# Node ID fd29eff8b797daa41a68394ced7fe80c9e8c96e9
|
||||
# Parent ee9bffb3bd390b2ad805c7b59d7d2ab8a68a4367
|
||||
8162384, PR3122: Performance regression: bimorphic inlining may be bypassed by type speculation
|
||||
Summary: when speculation fails at a call fallback to profile data at the call site
|
||||
Reviewed-by: kvn
|
||||
|
||||
diff -r ee9bffb3bd39 -r fd29eff8b797 src/share/vm/opto/doCall.cpp
|
||||
--- openjdk/hotspot/src/share/vm/opto/doCall.cpp Mon Aug 01 16:33:54 2016 +0100
|
||||
+++ openjdk/hotspot/src/share/vm/opto/doCall.cpp Wed Jul 27 12:33:33 2016 +0200
|
||||
@@ -205,16 +205,22 @@
|
||||
|
||||
int morphism = profile.morphism();
|
||||
if (speculative_receiver_type != NULL) {
|
||||
@ -11,7 +22,6 @@
|
||||
- receiver_method = callee->resolve_invoke(jvms->method()->holder(),
|
||||
- speculative_receiver_type);
|
||||
- if (receiver_method == NULL) {
|
||||
- speculative_receiver_type = NULL;
|
||||
+ if (!too_many_traps(caller, bci, Deoptimization::Reason_speculate_class_check)) {
|
||||
+ // We have a speculative type, we should be able to resolve
|
||||
+ // the call. We do that before looking at the profiling at
|
||||
@ -24,15 +34,16 @@
|
||||
+ } else {
|
||||
+ morphism = 1;
|
||||
+ }
|
||||
} else {
|
||||
- morphism = 1;
|
||||
+ } else {
|
||||
+ // speculation failed before. Use profiling at the call
|
||||
+ // (could allow bimorphic inlining for instance).
|
||||
+ speculative_receiver_type = NULL;
|
||||
speculative_receiver_type = NULL;
|
||||
- } else {
|
||||
- morphism = 1;
|
||||
}
|
||||
}
|
||||
if (receiver_method == NULL &&
|
||||
@@ -255,7 +261,7 @@
|
||||
@@ -252,7 +258,7 @@
|
||||
Deoptimization::Reason_bimorphic :
|
||||
(speculative_receiver_type == NULL ? Deoptimization::Reason_class_check : Deoptimization::Reason_speculate_class_check);
|
||||
if ((morphism == 1 || (morphism == 2 && next_hit_cg != NULL)) &&
|
@ -1,55 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User aph
|
||||
# Date 1466704739 0
|
||||
# Thu Jun 23 17:58:59 2016 +0000
|
||||
# Node ID 89b3911c92aef18f2fd24ab4a31fbb47954462fa
|
||||
# Parent 9febe12cbce4c6aa428a78f6a78906909e2954a4
|
||||
8157306: Random infrequent null pointer exceptions in javac
|
||||
Reviewed-by: kvn
|
||||
|
||||
diff --git openjdk/hotspot/src/share/vm/opto/block.cpp b/src/share/vm/opto/block.cpp
|
||||
--- openjdk/hotspot/src/share/vm/opto/block.cpp
|
||||
+++ openjdk/hotspot/src/share/vm/opto/block.cpp
|
||||
@@ -1212,6 +1212,9 @@
|
||||
if (j >= 1 && n->is_Mach() && n->as_Mach()->ideal_Opcode() == Op_CreateEx) {
|
||||
assert(j == 1 || block->get_node(j-1)->is_Phi(), "CreateEx must be first instruction in block");
|
||||
}
|
||||
+ if (n->needs_anti_dependence_check()) {
|
||||
+ verify_anti_dependences(block, n);
|
||||
+ }
|
||||
for (uint k = 0; k < n->req(); k++) {
|
||||
Node *def = n->in(k);
|
||||
if (def && def != n) {
|
||||
diff --git a/src/share/vm/opto/block.hpp b/src/share/vm/opto/block.hpp
|
||||
--- openjdk/hotspot/src/share/vm/opto/block.hpp
|
||||
+++ openjdk/hotspot/src/share/vm/opto/block.hpp
|
||||
@@ -481,9 +481,9 @@
|
||||
MachNode* _goto;
|
||||
|
||||
Block* insert_anti_dependences(Block* LCA, Node* load, bool verify = false);
|
||||
- void verify_anti_dependences(Block* LCA, Node* load) {
|
||||
+ void verify_anti_dependences(Block* LCA, Node* load) const {
|
||||
assert(LCA == get_block_for_node(load), "should already be scheduled");
|
||||
- insert_anti_dependences(LCA, load, true);
|
||||
+ const_cast<PhaseCFG*>(this)->insert_anti_dependences(LCA, load, true);
|
||||
}
|
||||
|
||||
bool move_to_next(Block* bx, uint b_index);
|
||||
diff --git a/src/share/vm/opto/lcm.cpp b/src/share/vm/opto/lcm.cpp
|
||||
--- openjdk/hotspot/src/share/vm/opto/lcm.cpp
|
||||
+++ openjdk/hotspot/src/share/vm/opto/lcm.cpp
|
||||
@@ -1293,11 +1293,12 @@
|
||||
Block *sb = block->_succs[i];
|
||||
// Clone the entire area; ignoring the edge fixup for now.
|
||||
for( uint j = end; j > beg; j-- ) {
|
||||
- // It is safe here to clone a node with anti_dependence
|
||||
- // since clones dominate on each path.
|
||||
Node *clone = block->get_node(j-1)->clone();
|
||||
sb->insert_node(clone, 1);
|
||||
map_node_to_block(clone, sb);
|
||||
+ if (clone->needs_anti_dependence_check()) {
|
||||
+ insert_anti_dependences(sb, clone);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
@ -785,7 +785,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1
|
||||
|
||||
Name: java-%{javaver}-%{origin}
|
||||
Version: %{javaver}.%{updatever}
|
||||
Release: 2.%{buildver}%{?dist}
|
||||
Release: 3.%{buildver}%{?dist}
|
||||
# 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
|
||||
@ -915,6 +915,10 @@ Patch524: 8158260-pr2991-rh1341258.patch
|
||||
Patch400: 8154313.patch
|
||||
# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
|
||||
Patch526: 6260348-pr3066.patch
|
||||
# S8157306, PR3121, RH1360863: Random infrequent null pointer exceptions in javac
|
||||
Patch531: 8157306-pr3121-rh1360863.patch
|
||||
# S8162384, PR3122, RH1358661: Performance regression: bimorphic inlining may be bypassed by type speculation
|
||||
Patch532: 8162384-pr3122-rh1358661.patch
|
||||
|
||||
# Patches upstream and appearing in 8u102
|
||||
# S8148752, PR2943, RH1330188: Compiled StringBuilder code throws StringIndexOutOfBoundsException
|
||||
@ -937,8 +941,6 @@ Patch606: 8154210.patch
|
||||
Patch201: system-libjpeg.patch
|
||||
|
||||
# Local fixes
|
||||
Patch531: hotspot-8157306.changeset
|
||||
Patch532: hotspot-1358661.patch
|
||||
# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
|
||||
Patch525: pr1834-rh1022017.patch
|
||||
# Temporary fix for typo in CORBA security patch
|
||||
@ -946,6 +948,7 @@ Patch529: corba_typo_fix.patch
|
||||
|
||||
# Non-OpenJDK fixes
|
||||
Patch300: jstack-pr1845.patch
|
||||
# PR3090, RH1204159: SystemTap is heavily confused by multiple JDKs
|
||||
Patch301: bz1204159_java8.patch
|
||||
|
||||
BuildRequires: autoconf
|
||||
@ -1279,9 +1282,7 @@ sh %{SOURCE12}
|
||||
%patch527
|
||||
%patch528
|
||||
%patch529
|
||||
%ifarch %{aarch64}
|
||||
%patch531
|
||||
%endif
|
||||
%patch532
|
||||
|
||||
# Extract systemtap tapsets
|
||||
@ -1872,6 +1873,12 @@ require "copy_jdk_configs.lua"
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Aug 01 2016 Andrew Hughes <gnu.andrew@redhat.com> - 1:1.8.0.101-3.b14
|
||||
- Replace patch for S8162384 with upstream version. Document correctly along with SystemTap RH1204159 patch.
|
||||
- Resolves: rhbz#1358661
|
||||
- Replace patch for S8157306 with upstream version, documented & applied on all archs with conditional in patch
|
||||
- Resolves: rhbz#1360863
|
||||
|
||||
* Mon Jul 25 2016 jvanek <jvanek@redhat.com> - 1:1.8.0.101-2.b14
|
||||
- added patch532 hotspot-1358661.patch - to fix performance of bimorphic inlining may be bypassed by type speculation
|
||||
- added patch301 bz1204159_java8.patch - to fix systemtap on multiple jdks
|
||||
|
Loading…
Reference in New Issue
Block a user