/hg/icedtea7-forest/hotspot: 18 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Wed Jul 15 02:30:13 UTC 2015
changeset 9e94f25de4df in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=9e94f25de4df
author: andrew
date: Wed Jul 15 03:21:48 2015 +0100
Added tag icedtea-2.6.0 for changeset 94f15794d5e7
changeset b2789e8600f3 in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=b2789e8600f3
author: sgehwolf
date: Fri Apr 03 17:22:23 2015 +0100
8074312: Enable hotspot builds on 4.x Linux kernels
Summary: Add "4" to list of allowable versions
Reviewed-by: dholmes, mikael
changeset d40349452eba in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=d40349452eba
author: sgehwolf
date: Wed Apr 29 12:23:48 2015 -0700
8078666: JVM fastdebug build compiled with GCC 5 asserts with "widen increases"
Summary: do the math on the unsigned type where overflows are well defined
Reviewed-by: kvn, aph
changeset 5d0a13adec23 in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=5d0a13adec23
author: mgerdin
date: Thu Jun 26 13:20:18 2014 +0200
8048214: Linker error when compiling G1SATBCardTableModRefBS after include order changes
Reviewed-by: stefank, brutisso, tschatzl
changeset e22137065c4c in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=e22137065c4c
author: andrew
date: Fri Jul 03 16:46:09 2015 +0100
8068674: Increment minor version of HSx for 7u85 and initialize the build number
Reviewed-by: omajid
changeset f826faea93e0 in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=f826faea93e0
author: roland
date: Fri Jul 03 21:30:02 2015 +0100
8071731: Better scaling for C1
Reviewed-by: kvn, iveresov
changeset ecdd49fa23ad in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=ecdd49fa23ad
author: andrew
date: Fri Jul 03 23:53:28 2015 +0100
8014464: Update jcheck for OpenJDK 7
Reviewed-by: omajid
changeset 1540efbc285f in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=1540efbc285f
author: andrew
date: Fri Jul 03 23:56:44 2015 +0100
OPENJDK7-01: Allow OpenJDK to build on PaX-enabled kernels
Reviewed-by: omajid
changeset ec765d295b79 in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=ec765d295b79
author: vlivanov
date: Mon Jul 06 19:41:23 2015 +0100
8075838: Method for typing MethodTypes
Reviewed-by: jrose, ahgross, alanb, bmoloden
changeset 4ccd7e1e3b39 in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=4ccd7e1e3b39
author: andrew
date: Mon Jul 06 22:10:18 2015 +0100
8078529: Increment the build value to b02 for hs24.85 in 8u85
Reviewed-by: omajid
changeset 5a042459ed89 in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=5a042459ed89
author: andrew
date: Mon Jul 06 22:25:26 2015 +0100
8081622: Increment the build value to b03 for hs24.85 in 8u51
Reviewed-by: omajid
changeset 501fc984fa3b in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=501fc984fa3b
author: andrew
date: Tue Jul 07 14:29:19 2015 +0100
OPENJDK7-03: Only apply PaX-marking when needed by a running PaX kernel
Reviewed-by: omajid
changeset 3f1b4a1fe4a2 in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=3f1b4a1fe4a2
author: andrew
date: Wed Jul 08 21:51:29 2015 +0100
Added tag jdk7u85-b00 for changeset 501fc984fa3b
changeset 586687e818bd in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=586687e818bd
author: andrew
date: Thu Jul 09 02:11:56 2015 +0100
Merge jdk7u85-b00
changeset 2eba2e8c4f99 in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=2eba2e8c4f99
author: andrew
date: Thu Jul 09 02:31:11 2015 +0100
PR2502: Remove -fno-tree-vectorize workaround now http://gcc.gnu.org/PR63341 is fixed
changeset ea73c670f3ce in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=ea73c670f3ce
author: andrew
date: Sat Jul 11 16:20:23 2015 +0100
Added tag jdk7u85-b01 for changeset 3f1b4a1fe4a2
changeset fdf2c26ea61a in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=fdf2c26ea61a
author: andrew
date: Sat Jul 11 16:28:14 2015 +0100
Merge jdk7u85-b01
changeset f5cfe6987002 in /hg/icedtea7-forest/hotspot
details: http://icedtea.classpath.org/hg/icedtea7-forest/hotspot?cmd=changeset;node=f5cfe6987002
author: andrew
date: Wed Jul 15 03:27:01 2015 +0100
Merge
diffstat:
.hgtags | 3 +
make/hotspot_version | 4 +-
make/linux/makefiles/buildtree.make | 4 +-
make/linux/makefiles/gcc.make | 3 +
src/share/vm/c1/c1_LIRGenerator.cpp | 10 +++++-
src/share/vm/classfile/systemDictionary.cpp | 50 +++++++++++++++++++---------
6 files changed, 53 insertions(+), 21 deletions(-)
diffs (172 lines):
diff -r 608555fa5c4d -r f5cfe6987002 .hgtags
--- a/.hgtags Wed Jul 08 13:17:30 2015 +0100
+++ b/.hgtags Wed Jul 15 03:27:01 2015 +0100
@@ -871,3 +871,6 @@
198c700d102cc2051b304fc382ac58c5d76e8d26 jdk7u80-b32
1afefe2d5f90112e87034a4eac57fdad53fe5b9f icedtea-2.6pre23
94f15794d5e7847a60540eacbe3e276dbe127a1a icedtea-2.6pre24
+94f15794d5e7847a60540eacbe3e276dbe127a1a icedtea-2.6.0
+501fc984fa3b3d51e1a7f1220f2de635a2b370b9 jdk7u85-b00
+3f1b4a1fe4a274cd1f89d9ec83d8018f7f4b7d01 jdk7u85-b01
diff -r 608555fa5c4d -r f5cfe6987002 make/hotspot_version
--- a/make/hotspot_version Wed Jul 08 13:17:30 2015 +0100
+++ b/make/hotspot_version Wed Jul 15 03:27:01 2015 +0100
@@ -34,8 +34,8 @@
HOTSPOT_VM_COPYRIGHT=Copyright 2015
HS_MAJOR_VER=24
-HS_MINOR_VER=80
-HS_BUILD_NUMBER=11
+HS_MINOR_VER=85
+HS_BUILD_NUMBER=03
JDK_MAJOR_VER=1
JDK_MINOR_VER=7
diff -r 608555fa5c4d -r f5cfe6987002 make/linux/makefiles/buildtree.make
--- a/make/linux/makefiles/buildtree.make Wed Jul 08 13:17:30 2015 +0100
+++ b/make/linux/makefiles/buildtree.make Wed Jul 15 03:27:01 2015 +0100
@@ -478,7 +478,9 @@
echo "fi"; \
echo ""; \
echo "if [ -x \"$(PAX_COMMAND)\" ]; then "; \
- echo " $(PAX_COMMAND) $(PAX_COMMAND_ARGS) ./\$${GAMMA_PROG}"; \
+ echo " if cat /proc/self/status | grep '^PaX' > /dev/null ; then "; \
+ echo " $(PAX_COMMAND) $(PAX_COMMAND_ARGS) ./\$${GAMMA_PROG}"; \
+ echo " fi"; \
echo "fi"; \
echo ""; \
echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \
diff -r 608555fa5c4d -r f5cfe6987002 make/linux/makefiles/gcc.make
--- a/make/linux/makefiles/gcc.make Wed Jul 08 13:17:30 2015 +0100
+++ b/make/linux/makefiles/gcc.make Wed Jul 15 03:27:01 2015 +0100
@@ -108,6 +108,8 @@
endif
ARCHFLAG/ppc64 = -m64
# gcc bug http://gcc.gnu.org/PR63341 in ppc code generation requires -fno-tree-vectorize for now
+# Fixed in GCC 5 and later
+ifeq "$(shell expr \( $(CC_VER_MAJOR) \< 5 \) )" "1"
ARCHFLAG/ppc += -fno-tree-vectorize
ARCHFLAG/ppc64 += -fno-tree-vectorize
ifeq ($(TYPE),ZERO)
@@ -121,6 +123,7 @@
ARCHFLAG/zero += -fno-tree-vectorize
endif
endif
+endif
CFLAGS += $(ARCHFLAG)
AOUT_FLAGS += $(ARCHFLAG)
diff -r 608555fa5c4d -r f5cfe6987002 src/share/vm/c1/c1_LIRGenerator.cpp
--- a/src/share/vm/c1/c1_LIRGenerator.cpp Wed Jul 08 13:17:30 2015 +0100
+++ b/src/share/vm/c1/c1_LIRGenerator.cpp Wed Jul 15 03:27:01 2015 +0100
@@ -2154,7 +2154,15 @@
#ifdef _LP64
}
#endif
- __ shift_left(index_op, log2_scale, index_op);
+ LIR_Opr tmp = new_pointer_register();
+ if (TwoOperandLIRForm) {
+ __ move(index_op, tmp);
+ index_op = tmp;
+ }
+ __ shift_left(index_op, log2_scale, tmp);
+ if (!TwoOperandLIRForm) {
+ index_op = tmp;
+ }
}
#ifdef _LP64
else if(!index_op->is_illegal() && index_op->type() == T_INT) {
diff -r 608555fa5c4d -r f5cfe6987002 src/share/vm/classfile/systemDictionary.cpp
--- a/src/share/vm/classfile/systemDictionary.cpp Wed Jul 08 13:17:30 2015 +0100
+++ b/src/share/vm/classfile/systemDictionary.cpp Wed Jul 15 03:27:01 2015 +0100
@@ -2305,9 +2305,6 @@
assert(!THREAD->is_Compiler_thread(), "");
Handle method_type =
SystemDictionary::find_method_handle_type(signature, accessing_klass, CHECK_(empty));
- if (false) { // FIXME: Decide if the Java upcall should resolve signatures.
- method_type = java_lang_String::create_from_symbol(signature, CHECK_(empty));
- }
KlassHandle mh_klass = SystemDictionaryHandles::MethodHandle_klass();
int ref_kind = JVM_REF_invokeVirtual;
@@ -2339,6 +2336,24 @@
return unpack_method_and_appendix(mname, appendix_box, appendix_result, THREAD);
}
+// Decide if we can globally cache a lookup of this class, to be returned to any client that asks.
+// We must ensure that all class loaders everywhere will reach this class, for any client.
+// This is a safe bet for public classes in java.lang, such as Object and String.
+// We also include public classes in java.lang.invoke, because they appear frequently in system-level method types.
+// Out of an abundance of caution, we do not include any other classes, not even for packages like java.util.
+static bool is_always_visible_class(oop mirror) {
+ klassOop klass = java_lang_Class::as_klassOop(mirror);
+ if (Klass::cast(klass)->oop_is_objArray()) {
+ klass = objArrayKlass::cast(klass)->bottom_klass(); // check element type
+ }
+ if (Klass::cast(klass)->oop_is_typeArray()) {
+ return true; // primitive array
+ }
+ assert(Klass::cast(klass)->oop_is_instance(), Klass::cast(klass)->external_name());
+ return Klass::cast(klass)->is_public() &&
+ (instanceKlass::cast(klass)->is_same_class_package(SystemDictionary::Object_klass()) || // java.lang
+ instanceKlass::cast(klass)->is_same_class_package(SystemDictionary::MethodHandle_klass())); // java.lang.invoke
+}
// Ask Java code to find or construct a java.lang.invoke.MethodType for the given
// signature, as interpreted relative to the given class loader.
@@ -2361,32 +2376,33 @@
}
Handle class_loader, protection_domain;
- bool is_on_bcp = true; // keep this true as long as we can materialize from the boot classloader
+ if (accessing_klass.not_null()) {
+ class_loader = Handle(THREAD, instanceKlass::cast(accessing_klass())->class_loader());
+ protection_domain = Handle(THREAD, instanceKlass::cast(accessing_klass())->protection_domain());
+ }
+ bool can_be_cached = true;
int npts = ArgumentCount(signature).size();
objArrayHandle pts = oopFactory::new_objArray(SystemDictionary::Class_klass(), npts, CHECK_(empty));
int arg = 0;
- Handle rt; // the return type from the signature
+ Handle rt; // the return type from the signature
ResourceMark rm(THREAD);
for (SignatureStream ss(signature); !ss.is_done(); ss.next()) {
oop mirror = NULL;
- if (is_on_bcp) {
- // Note: class_loader & protection_domain are both null at this point.
- mirror = ss.as_java_mirror(class_loader, protection_domain,
+ if (can_be_cached) {
+ // Use neutral class loader to lookup candidate classes to be placed in the cache.
+ mirror = ss.as_java_mirror(Handle(), Handle(),
SignatureStream::ReturnNull, CHECK_(empty));
- if (mirror == NULL) {
- // fall back from BCP to accessing_klass
- if (accessing_klass.not_null()) {
- class_loader = Handle(THREAD, instanceKlass::cast(accessing_klass())->class_loader());
- protection_domain = Handle(THREAD, instanceKlass::cast(accessing_klass())->protection_domain());
- }
- is_on_bcp = false;
+ if (mirror == NULL || (ss.is_object() && !is_always_visible_class(mirror))) {
+ // Fall back to accessing_klass context.
+ can_be_cached = false;
}
}
- if (!is_on_bcp) {
+ if (!can_be_cached) {
// Resolve, throwing a real error if it doesn't work.
mirror = ss.as_java_mirror(class_loader, protection_domain,
SignatureStream::NCDFError, CHECK_(empty));
}
+ assert(!oopDesc::is_null(mirror), ss.as_symbol(THREAD)->as_C_string());
if (ss.at_return_type())
rt = Handle(THREAD, mirror);
else
@@ -2418,7 +2434,7 @@
&args, CHECK_(empty));
Handle method_type(THREAD, (oop) result.get_jobject());
- if (is_on_bcp) {
+ if (can_be_cached) {
// We can cache this MethodType inside the JVM.
MutexLocker ml(SystemDictionary_lock, THREAD);
spe = invoke_method_table()->find_entry(index, hash, signature, null_iid);
More information about the distro-pkg-dev
mailing list