95 Commits

Author SHA1 Message Date
Andrew Haley
1dfbc44c1f 8026049: (bf) Intrinsify ByteBuffer.put{Int, Double, Float, ...} methods
Use unaligned Unsafe loads and stores for ByteBuffer access on platforms which support unaligned access. Add intrinsics for Unsafe.{get,put}-X-Unaligned methods.

Reviewed-by: dholmes, jrose, psandoz, kvn
2015-03-31 12:31:18 -07:00
Igor Ignatyev
140bf2be86 8073607: add trace events for inlining
Reviewed-by: kvn, fzhinkin, mgronlun
2015-03-13 21:53:13 +03:00
Jesper Wilhelmsson
d7f5fccbc6 Merge 2015-02-16 21:24:39 +01: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
Paul Sandoz
c002e71565 8068977: Remove unused sun.misc.Unsafe prefetch intrinsic support
Reviewed-by: kvn, vlivanov
2015-02-10 21:32:05 +01:00
Serguei Spitsyn
b0367c3bea Merge 2014-07-18 23:53:59 -07:00
Coleen Phillimore
c9b2bc62c9 Merge 2014-07-14 10:15:21 -04:00
Vladimir Ivanov
c24909197f 8049532: LogCompilation: C1: inlining tree is flat (no depth is stored)
Reviewed-by: roland, iveresov
2014-07-14 03:28:13 -07:00
Vladimir Ivanov
3dd313825d 8043546: C1 optimizes @Stable instance fields with default values
Reviewed-by: kvn, jrose
2014-07-14 03:25:40 -07:00
Goetz Lindenmaier
25f33c005d 8049325: Introduce and clean up umbrella headers for the files in the cpu subdirectories
Introduce and clean up umbrella headers for the files in the cpu subdirectories.

Reviewed-by: lfoltan, coleenp, dholmes
2014-07-04 11:46:01 +02:00
Roland Westrelin
b5e96ad985 8046542: [I.finalize() calls from methods compiled by C1 do not cause IllegalAccessError on Sparc
Call to Object.finalize() sometimes allowed by compilers on array type

Reviewed-by: iveresov, vlivanov
2014-07-02 22:54:18 +02:00
Rickard Bäckman
0915147727 8031994: java/lang/Character/CheckProp test times out
Reviewed-by: iveresov, roland
2014-06-04 10:01:28 +02:00
Roland Westrelin
633a96c2e3 8041481: JVM crashes with collect_args_for_profiling
Method handle call to c1 intrinsic tries to profile popped argument

Reviewed-by: kvn, twisti
2014-04-25 09:22:16 +02:00
Vladimir Ivanov
132fd335eb 8035887: VM crashes trying to force inlining the recursive call
Reviewed-by: kvn, twisti
2014-03-04 02:19:04 -08:00
Aleksey Shipilev
1d10b6813e 8031818: Experimental VM flag for enforcing safe object construction
-XX:+AlwaysSafeConstructors to unconditionally emit the trailing constructor barrier.

Reviewed-by: kvn, roland
2014-03-03 15:31:27 +04:00
Markus Grönlund
68857c9469 8035493: JVMTI PopFrame capability must instruct compilers not to prune locals
Reviewed-by: kvn, sla, coleenp, sspitsyn
2014-02-22 10:22:05 +01:00
Roland Westrelin
e9b5199781 8028064: tiered may collect wrong receiver type at virtual call
When unique callee is known at compile time, recorded class may be wrong

Reviewed-by: kvn, iveresov
2014-01-07 14:36:34 +01:00
Roland Westrelin
31d2d5121a 8027632: assert(xtype->klass_is_exact()) failed: Should be exact at graphKit.cpp
Receiver type collected by profiling for default method may be interface

Reviewed-by: kvn, iveresov
2013-11-12 13:58:37 +01:00
Igor Veresov
e43ac25584 8026735: Stream tests throw java.lang.IncompatibleClassChangeError
Put a band-aid to disable CHA-based inlining for interfaces with default methods in C1

Reviewed-by: kvn, twisti
2013-10-30 22:55:11 -07:00
Vladimir Ivanov
cb5592b08e 8012941: JSR 292: too deep inlining might crash compiler because of stack overflow
Reviewed-by: kvn, twisti
2013-10-23 20:20:03 +04:00
Roland Westrelin
b94884a330 8026251: New type profiling points: parameters to methods
X86 interpreter and c1 type profiling for parameters on method entries

Reviewed-by: kvn, twisti
2013-10-22 09:51:47 +02:00
Roland Westrelin
c8bfc7e7d7 8026054: New type profiling points: type of return values at calls
X86 interpreter and c1 type profiling for return values at calls

Reviewed-by: kvn, twisti
2013-10-12 12:12:59 +02:00
Roland Westrelin
cbd0e9bf96 8023657: New type profiling points: arguments to call
X86 interpreter and c1 type profiling for arguments at calls

Reviewed-by: kvn, twisti
2013-10-09 16:32:21 +02:00
Vladimir Kozlov
0ccb2841ea 8022585: VM crashes when ran with -XX:+PrintInlining
Use adr_at() to access inline info structures in growableArray. Add ability to specify print inlining per method.

Reviewed-by: twisti
2013-09-24 16:08:00 -07:00
Rickard Bäckman
6ef251ac19 8022283: Assertion failed: assert(is_loaded() && field->holder()->is_loaded() && klass()->is_subclass_of (field->holder())) failed: invalid access
Reviewed-by: roland, twisti
2013-08-20 09:37:01 +02:00
Roland Westrelin
f188c2bf70 7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked
Do patching rather bailing out for unlinked call with appendix

Reviewed-by: twisti, kvn
2013-08-21 13:34:45 +02:00
David Chase
9a359984c2 7088419: Use x86 Hardware CRC32 Instruction with java.util.zip.CRC32
Add intrinsics using new instruction to interpreter, C1, C2, for suitable x86; add test

Reviewed-by: kvn, twisti
2013-07-02 20:42:12 -04:00
Thomas Wuerthinger
06ef4cddf7 7153771: array bound check elimination for c1
When possible optimize out array bound checks, inserting predicates when needed.

Reviewed-by: never, kvn, twisti
2013-03-21 09:27:54 +01:00
Igor Ignatyev
1a9e6be809 8005439: no message about inline method if it specifed by CompileCommand
Reviewed-by: kvn, vlivanov
2013-02-01 03:02:01 -08:00
Vladimir Ivanov
f8b9f3900c 8006095: C1: SIGSEGV w/ -XX:+LogCompilation
Avoid printing inlining decision when compilation fails

Reviewed-by: kvn, roland
2013-01-14 08:22:32 -08:00
Aleksey Shipilev
4c293ebcd6 8004318: JEP-171: Support Unsafe fences intrinsics
Add three memory-ordering intrinsics to the sun.misc.Unsafe class.

Reviewed-by: twisti, kvn
2012-12-18 17:37:44 -08:00
Bharadwaj Yadavalli
4b288c8976 8001077: remove ciMethod::will_link
Removed will_link and changed all calls to is_loaded().

Reviewed-by: kvn
2012-11-15 10:42:06 -08:00
Christian Thalinger
65c20a5492 8000821: JSR 292: C1 fails to call virtual method (JRUBY-6920)
Reviewed-by: kvn
2012-10-22 16:56:03 -07:00
Vladimir Ivanov
822deb6ee6 7177003: C1: LogCompilation support
Add LogCompilation support in C1 - both client and tiered mode.

Reviewed-by: twisti, kvn
2012-10-05 18:57:10 -07:00
Roland Westrelin
302540691b 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Use shorter instruction sequences for atomic add and atomic exchange when possible.

Reviewed-by: kvn, jrose
2012-09-20 16:49:17 +02:00
Jon Masamitsu
5c58d27aac 6964458: Reimplement class meta-data storage to use native memory
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
2012-09-01 13:25:18 -04:00
Christian Thalinger
40c1bd4242 7192406: JSR 292: C2 needs exact return type information for invokedynamic and invokehandle call sites
Reviewed-by: kvn
2012-08-28 15:24:39 -07:00
Christian Thalinger
a14e902e92 7192167: JSR 292: C1 has old broken code which needs to be removed
Reviewed-by: kvn, roland, jrose
2012-08-21 10:48:50 -07:00
Vladimir Kozlov
04c6a7ce10 7190310: Inlining WeakReference.get(), and hoisting $referent may lead to non-terminating loops
In C2 add software membar after load from Reference.referent field to prevent commoning of loads across safepoint since GC can change its value. In C1 always generate Reference.get() intrinsic.

Reviewed-by: roland, twisti, dholmes, johnc
2012-08-20 09:58:58 -07:00
Christian Thalinger
b9eb5785cc 7187290: nightly failures after JSR 292 lazy method handle update
Reviewed-by: kvn, twisti
2012-07-27 16:14:15 -07:00
Christian Thalinger
12901d0e5b 7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI

Remove assembly code for JDK 7 chained method handles

Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Michael Haupt <michael.haupt@oracle.com>
Reviewed-by: jrose, twisti, kvn, mhaupt
2012-07-24 10:51:00 -07:00
Michael Haupt
e0cf9c652d 6711908: JVM needs direct access to some annotations
Add annotation extraction code to class file parser.

Reviewed-by: twisti, jrose, kvn
2012-07-12 00:39:53 -07:00
Krystal Mok
529b370174 7174218: remove AtomicLongCSImpl intrinsics
Reviewed-by: kvn, twisti
2012-06-12 14:31:44 -07:00
Krystal Mok
6d29429c4e 7171890: C1: add Class.isInstance intrinsic
Class.cast which calls Class.isInstance is heavily used by the new JSR 292 implementation

Reviewed-by: roland
2012-06-05 10:15:27 +02:00
Roland Westrelin
b305cf722e 7133857: exp() and pow() should use the x87 ISA on x86
Use x87 instructions to implement exp() and pow() in interpreter/c1/c2.

Reviewed-by: kvn, never, twisti
2012-05-15 10:10:23 +02:00
Rickard Bäckman
cf406f37e3 7160570: Intrinsification support for tracing framework
Reviewed-by: sla, never
2012-03-06 12:36:59 +01:00
Jiangli Zhou
4a02eb3afe 7154670: The instanceKlass _implementors[] and _nof_implementors are not needed for non-interface klass
Change implementor to embedded instanceKlass field.

Reviewed-by: sspitsyn, minqi, coleenp
2012-03-29 22:18:56 -04:00
Tom Rodriguez
2e8a110092 Merge 2012-03-02 13:13:25 -08:00
Roland Westrelin
607f822b20 6910464: Lookupswitch and Tableswitch default branches not recognized as safepoints
C1 does not recognize the default branch of a lookupswitch or tableswitch bytecode to be a safepoint if backward.

Reviewed-by: kvn, never
2012-03-02 16:04:24 +01:00
Jiangli Zhou
3e904497b1 7120481: storeStore barrier in constructor with final field
Issue storestore barrier before constructor return if the constructor write final field.

Reviewed-by: dholmes, jrose, roland, coleenp
2012-02-21 13:14:55 -05:00