103 Commits

Author SHA1 Message Date
Zoltan Majo
e0e3bd5582 8160527: Check for final instance field updates can be omitted
Disable final field resolution in the constant pool cache. Correct error message printed at field resolution. New tests.

Reviewed-by: jrose, coleenp
2016-07-06 11:16:36 +02:00
Zoltan Majo
cdc436922a 8157181: Compilers accept modification of final fields outside initializer methods
Track initialized final field updates; disable constant folding if an update is detected. Enforce final field update rules introduced by JVMS-7 (but only for JDK 9).

Reviewed-by: vlivanov, dnsimon, forax, never, kvn, coleenp
2016-06-15 14:27:58 +02:00
Coleen Phillimore
7419c9549b 8158397: Crash: assert(save_resolved_method == resolved_method()) failed: does this change?
Remove assert.  it does change.

Reviewed-by: sspitsyn, jiangli, mgronlun
2016-06-03 08:33:28 -04:00
Coleen Phillimore
c36295e947 8145148: InterfaceMethod CP entry pointing to a class should cause ICCE
Pass tag in LinkInfo and check that resolved method type matches tag, fix tests.

Reviewed-by: sspitsyn, minqi
2016-05-27 10:52:39 -04:00
Tom Rodriguez
593cf3fb16 8152903: [JVMCI] CompilerToVM::resolveMethod should correctly handle private methods in interfaces
Reviewed-by: iveresov
2016-04-27 16:20:49 -07:00
Igor Veresov
eb6d600333 8153115: Move private interface check to linktime
Check for private interface methods during linktime instead of runtime

Reviewed-by: kvn, never, coleenp, acorn, lfoltan
2016-04-12 14:55:18 -07:00
Daniel D. Daugherty
4397e85e26 Merge 2016-04-07 09:47:48 -07:00
Zoltan Majo
720f99dec9 Merge 2016-03-24 16:21:18 +01:00
Paul Sandoz
ab69113c5e 8149644: Integrate VarHandles
Reviewed-by: kvn, vlivanov
2016-03-24 11:21:49 +01:00
Stefan Karlsson
15c4140ae5 8152632: Rename LogHandle(...) to Log(...)
Reviewed-by: brutisso, mlarsson, rprotacio
2016-04-04 09:15:15 +02:00
Alan Bateman
f30fc1c88b 8142968: Module System implementation
Initial integration of JEP 200, JEP 260, JEP 261, and JEP 282

Co-authored-by: Alex Buckley <alex.buckley@oracle.com>
Co-authored-by: Jonathan Gibbons <jonathan.gibbons@oracle.com>
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Co-authored-by: Mandy Chung <mandy.chung@oracle.com>
Co-authored-by: Mark Reinhold <mark.reinhold@oracle.com>
Co-authored-by: Harold Seigel <harold.seigel@oracle.com>
Co-authored-by: Lois Foltan <lois.foltan@oracle.com>
Co-authored-by: Calvin Cheung <calvin.cheung@oracle.com>
Co-authored-by: Christian Tornqvist <christian.tornqvist@oracle.com>
Co-authored-by: Erik Joelsson <erik.joelsson@oracle.com>
Co-authored-by: George Triantafillou <george.triantafillou@oracle.com>
Co-authored-by: Igor Ignatyev <igor.ignatyev@oracle.com>
Co-authored-by: Ioi Lam <ioi.lam@oracle.com>
Co-authored-by: James Laskey <james.laskey@oracle.com>
Co-authored-by: Jean-Francois Denise <jean-francois.denise@oracle.com>
Co-authored-by: Jiangli Zhou <jiangli.zhou@oracle.com>
Co-authored-by: Markus Gronlund <markus.gronlund@oracle.com>
Co-authored-by: Serguei Spitsyn <serguei.spitsyn@oracle.com>
Co-authored-by: Staffan Larsen <staffan.larsen@oracle.com>
Co-authored-by: Sundararajan Athijegannathan <sundararajan.athijegannathan@oracle.com>
Reviewed-by: acorn, ccheung, coleenp, ctornqvi, dholmes, dsimms, gtriantafill, iklam, jiangli, mgronlun, mseledtsov, cjplummer, sspitsyn, stefank, twisti, hseigel, lfoltan, alanb, mchung, dfazunen
2016-03-17 19:04:01 +00:00
Jesper Wilhelmsson
40c4fe8573 Merge 2016-02-03 01:35:25 +01:00
Per Lidén
4bfa63dd34 8147918: Rename develop_log_is_enabled() to log_develop_is_enabled()
Reviewed-by: dholmes, brutisso
2016-02-01 22:11:16 +01:00
Tobias Hartmann
832443d3b0 Merge 2016-01-28 09:49:17 +01:00
Mikael Gerdin
3cda485fe5 8148481: Devirtualize Klass::vtable
Move remainder of vtable related methods to Klass

Reviewed-by: cjplummer, coleenp
2016-01-19 12:07:32 +01:00
Jesper Wilhelmsson
54d0181916 Merge 2016-01-14 17:36:29 +01:00
Rachel Protacio
6dac872d4d 8141564: Convert TraceItables and PrintVtables to Unified Logging
The former -XX:+TraceItables and +PrintVtables flags have been converted to UL options -Xlog:itables=trace and vtables=trace

Reviewed-by: acorn, coleenp, dholmes
2016-01-07 13:53:20 -05:00
Christian Thalinger
9e981ee107 Merge 2015-12-18 12:39:02 -08:00
Vladimir Ivanov
7adcd9a503 8140659: C1: invokedynamic call patching violates JVMS-6.5.invokedynamic
Reviewed-by: roland
2015-12-18 20:23:27 +03:00
Markus Grönlund
2ad9d3192f 8140485: Class load and creation cleanup
Reviewed-by: hseigel, coleenp, sspitsyn
2015-12-08 20:04:03 +01:00
Vladimir Ivanov
d60a09e9c5 8072008: Emit direct call instead of linkTo* for recursive indy/MH.invoke* calls
Reviewed-by: jrose, dlong, aph, forax
2015-12-04 23:46:19 +03:00
Coleen Phillimore
fc03719078 8139203: Consistent naming for klass type predicates
8138923: Remove oop coupling with InstanceKlass subclasses

Renamed oop_is_instance and friends, removed the functions in oop that dug down into InstanceKlass.

Reviewed-by: jrose, lfoltan, stefank
2015-10-28 09:47:23 -04:00
Coleen Phillimore
5179fc3488 8139163: InstanceKlass::cast passes through NULL
Reduce raw (InstanceKlass*) casts and InstanceKlass::cast, which no long allows null

Reviewed-by: twisti, kbarrett
2015-10-26 13:11:36 -04:00
Coleen Phillimore
f1e89ea4cc 8140274: methodHandles and constantPoolHandles should be passed as const references
Modified code to use const reference parameters

Reviewed-by: sspitsyn, twisti
2015-10-23 16:48:38 -04:00
Dean Long
344a9becee Merge 2015-10-17 19:40:30 -04:00
Christian Thalinger
16526e000e 8136421: JEP 243: Java-Level JVM Compiler Interface
Reviewed-by: ihse, alanb, roland, coleenp, iveresov, kvn, kbarrett
2015-10-08 12:49:30 -10:00
David Lindholm
1e71f67736 8080775: Better argument formatting for assert() and friends
Reviewed-by: kbarrett, pliden
2015-09-29 11:02:08 +02:00
Karen Kinnear
7983a4235c 8087342: Crash in klassItable::initialize_itable_for_interface
Fix method searches to handle static, private instance and overpass

Reviewed-by: lfoltan, dholmes, hseigel
2015-08-06 13:02:15 -04:00
Coleen Phillimore
9b5e1ddb92 8029567: Clean up linkResolver code
Moved non-const reference return values to actual return values, refactored error handling code, remove oop from Method* variable names.

Reviewed-by: jiangli, lfoltan, acorn
2015-05-29 11:35:51 -04:00
Jesper Wilhelmsson
25c41c6094 Merge 2015-05-21 21:17:56 +02:00
Andreas Eriksson
07f8740617 8051045: HotSpot fails to wrap Exceptions from invokedynamic in a BootstrapMethodError
Reviewed-by: coleenp, dsimms
2015-05-07 15:05:46 +02:00
Vladimir Kozlov
b9c00b1904 Merge 2015-04-16 14:05:48 -07:00
Vladimir Ivanov
5ff12acb9d 8062280: C2: inlining failure due to access checks being too strict
Reviewed-by: kvn
2015-04-14 18:11:06 +03:00
Yumin Qi
3e6cf09c39 8074345: Enable RewriteBytecodes when VM runs with CDS
Enable bytecode rewriting when CDS turned on.

Co-authored-by: Ioi Lam <ioi.lam@oracle.com>
Reviewed-by: coleenp, iklam
2015-03-25 15:18:37 -07:00
Stefan Karlsson
4913ad5d7d 8072911: Remove includes of oop.inline.hpp from .hpp files
Reviewed-by: brutisso, coleenp, jwilhelm, simonis, dholmes
2015-02-13 14:37:35 +01:00
Lois Foltan
5f8b5ceaee 8067480: Crash in klassItable::initialize_itable_for_interface when running vm.runtime.defmeth.StaticMethodsTest
A static method should be skipped in entirety by find_instance_method(), searching should continue to find an overpass method of the same name and signature if present.

Reviewed-by: acorn, hseigel
2015-01-23 09:54:33 -05:00
Lois Foltan
edc10143cb 8036805: Correct linker method lookup
Correct handling of array of primitive type qualifiers during field and method resolution.

Reviewed-by: acorn, hseigel, ahgross
2014-05-07 19:38:22 +04:00
Harold Seigel
b6a2f946f6 8031819: Remove legacy jdk checks and code
Delete old jdk specific code.

Reviewed-by: dholmes, coleenp, zgu, lfoltan
2014-06-11 09:58:23 -04:00
Yuri Gaevsky
cc3c656cf1 8025580: Temporary flags: UseNewReflection and ReflectionWrapResolutionErrors
The fix removes all UseNewReflection/ReflectionWrapResolutionErrors occurrences/logic and adds them into the list of obsolete_jvm_flags in arguments.cpp.

Reviewed-by: coleenp, hseigel
2014-05-15 17:38:50 -04:00
David Chase
305ec3bd3f 8037816: Fix for 8036122 breaks build with Xcode5/clang
Repaired or selectively disabled offending formats; future-proofed with additional checking

Reviewed-by: kvn, jrose, stefank
2014-05-09 16:50:54 -04:00
Tobias Hartmann
06c26b6f97 8036956: remove EnableInvokeDynamic flag
The EnableInvokeDynamic flag and all support code is removed because it is not longer used in JDK 9.

Reviewed-by: kvn, twisti
2014-04-29 08:08:44 +02:00
Lois Foltan
8c36d0cd2b 8033150: invokestatic: IncompatibleClassChangeError trying to invoke static method from a parent in presence of conflicting defaults
A static method should be preferred during method resolution over an overpass, search the current class as well as its superclasses.

Reviewed-by: acorn, coleenp, kamg
2014-04-14 14:27:45 -04:00
Per Lidén
4dc240f785 8079792: GC directory structure cleanup
Reviewed-by: brutisso, stefank, david
2015-05-13 15:16:06 +02:00
Calvin Cheung
a3c78aac2f 8032010: Attempt to resolve abstract method in concrete class fails with AbstractMethodError
Removing a check in LinkResolver::resolve_method() to conform with a change in JVMS-8 5.4.3.3. Method Resolution

Reviewed-by: coleenp, lfoltan
2014-02-05 15:14:47 -08:00
Harold Seigel
fe0b2eae89 8031045: Access checks should precede additional per-instruction checks
Move access check above the check for non-static method

Reviewed-by: lfoltan, coleenp
2014-01-17 09:39:51 -05:00
Harold Seigel
4856bd53aa 8027804: JCK resolveMethod test fails expecting AbstractMethodError
Create AME overpass methods and fix method search logic

Reviewed-by: kamg, acorn, lfoltan, coleenp
2013-12-16 08:24:33 -05:00
Lois Foltan
5ece6fc7fd 8028741: Interface Method Resolution should skip static and non-public methods in j.l.Object
Implementation of JDK 8 JVMS 5.4.3.4 specification change to skip static and non-public methods of java.lang.Object for interface method resolution.

Reviewed-by: acorn, coleenp
2013-12-10 16:18:26 -05:00
Lois Foltan
2078c58bbf 8029415: java/lang/reflect/Method/invoke/TestPrivateInterfaceMethodReflect.java fails on all platforms with hs25-b61
Check first that a class is not a dynamically-generated bytecode associated with 1.4 reflection implementation, to emitting an ICCE of an invokespecial IMR of a method in an indirect superinterface.

Reviewed-by: acorn, hseigel
2013-12-06 11:33:10 -05:00
Karen Kinnear
536943884a 8028438: static superclass method masks default methods
Reviewed-by: hseigel, lfoltan, coleenp
2013-12-03 11:13:14 -08:00
Karen Kinnear
b5f2f33aaa 8026066: ICCE for invokeinterface static
Reviewed-by: coleenp, lfoltan, hseigel
2013-12-03 08:36:15 -08:00