154 Commits

Author SHA1 Message Date
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
Staffan Larsen
718f3252f6 8005849: JEP 167: Event-Based JVM Tracing
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Co-authored-by: Bengt Rutisson <bengt.rutisson@oracle.com>
Co-authored-by: Calvin Cheung <calvin.cheung@oracle.com>
Co-authored-by: Erik Gahlin <erik.gahlin@oracle.com>
Co-authored-by: Erik Helin <erik.helin@oracle.com>
Co-authored-by: Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>
Co-authored-by: Keith McGuigan <keith.mcguigan@oracle.com>
Co-authored-by: Mattias Tobiasson <mattias.tobiasson@oracle.com>
Co-authored-by: Markus Gronlund <markus.gronlund@oracle.com>
Co-authored-by: Mikael Auno <mikael.auno@oracle.com>
Co-authored-by: Nils Eliasson <nils.eliasson@oracle.com>
Co-authored-by: Nils Loodin <nils.loodin@oracle.com>
Co-authored-by: Rickard Backman <rickard.backman@oracle.com>
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Yekaterina Kantserova <yekaterina.kantserova@oracle.com>
Reviewed-by: acorn, coleenp, sla
2013-06-10 11:30:51 +02:00
Vladimir Kozlov
d7176bf7f8 8014189: JVM crash with SEGV in ConnectionGraph::record_for_escape_analysis()
Add NULL checks and asserts for Type::make_ptr() returned value.

Reviewed-by: twisti
2013-05-09 17:28:04 -07:00
Vladimir Kozlov
b4977e887a 6934604: enable parts of EliminateAutoBox by default
Resurrected autobox elimination code and enabled part of it by default.

Reviewed-by: roland, twisti
2013-05-08 15:08:01 -07:00
Christian Thalinger
6964a690ed 7198429: need checked categorization of caller-sensitive methods in the JDK
Reviewed-by: kvn, jrose
2013-03-25 17:13:26 -07:00
Roland Westrelin
260e822459 8007959: Use expensive node logic for more math nodes
Use expensive node logic for other more math nodes.

Reviewed-by: kvn
2013-02-18 09:06:24 +01:00
Roland Westrelin
c401bf065d 7197327: 40% regression on 8 b41 comp 8 b40 on specjvm2008.mpegaudio on oob
Add support for expensive nodes.

Reviewed-by: kvn
2013-02-12 12:56:11 +01:00
Vladimir Kozlov
9e0c61f822 6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
Use SSE4.2 and AVX2 instructions for encodeArray intrinsic.

Reviewed-by: roland
2013-01-22 15:34:16 -08:00
Christian Thalinger
827930b510 8006127: remove printing code added with 8006031
Reviewed-by: kvn
2013-01-11 20:01:16 -08:00
Christian Thalinger
6c57a4b9f8 8006031: LibraryCallKit::inline_array_copyOf disabled unintentionally with 7172640
Reviewed-by: kvn
2013-01-11 14:07:09 -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
Vladimir Ivanov
8eb3b25c4f Merge 2012-12-18 08:19:53 -08:00
Vladimir Ivanov
6d08af845e 8003135: HotSpot inlines and hoists the Thread.currentThread().isInterrupted() out of the loop
Make the load of TLS._osthread._interrupted flag in Thread.isInterrupted(Z)Z intrinsic effectively volatile.

Reviewed-by: kvn, jrose
2012-12-18 06:52:00 -08:00
Roland Westrelin
b1c3e5ccc6 8005031: Some cleanup in c2 to prepare for incremental inlining support
Collection of small changes to prepare for incremental inlining.

Reviewed-by: twisti, kvn
2012-12-18 14:55:25 +01:00
Christian Thalinger
c5240e7c53 8004319: test/gc/7168848/HumongousAlloc.java fails after 7172640
Reviewed-by: kvn, johnc
2012-12-03 15:48:49 -08:00
Christian Thalinger
31411dbc32 7172640: C2: instrinsic implementations in LibraryCallKit should use argument() instead of pop()
Reviewed-by: kvn, jrose
2012-11-26 17:25:11 -08:00
Tom Deneau
6d94ef1ee7 7184394: add intrinsics to use AES instructions
Use new x86 AES instructions for AESCrypt.

Reviewed-by: twisti, kvn, roland
2012-10-24 14:33:22 -07:00
Vladimir Kozlov
2d3b78abcc 8000623: tools/javac/Diagnostics/6769027/T6769027.java crashes in PSPromotionManager::copy_to_survivor_space
Fix type of method pointer load from vtable.

Reviewed-by: twisti, johnc, roland
2012-10-17 12:09:32 -07:00
Vladimir Kozlov
5f132a5ec3 Merge 2012-10-12 09:22:52 -07:00
Roland Westrelin
61eb5a0549 7054512: Compress class pointers after perm gen removal
Support of compress class pointers in the compilers.

Reviewed-by: kvn, twisti
2012-10-09 10:11:38 +02:00
Christian Thalinger
7162ad011c 8000263: JSR 292: signature types may appear to be unloaded
Reviewed-by: kvn, jrose
2012-10-08 17:04:00 -07:00
Coleen Phillimore
28047d6a0f 8000213: NPG: Should have renamed arrayKlass and typeArrayKlass
Capitalize these metadata types (and objArrayKlass)

Reviewed-by: stefank, twisti, kvn
2012-09-29 06:40:00 -04:00
Bharadwaj Yadavalli
d5d2e78faa 7193318: C2: remove number of inputs requirement from Node's new operator
Deleted placement new operator of Node - node(size_t, Compile *, int).

Reviewed-by: kvn, twisti
2012-09-27 09:38:42 -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
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
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
Roland Westrelin
3511594d3c 7177917: Failed test java/lang/Math/PowTests.java
When c2 intrinsifies pow/exp, it should never inline the java implementations.

Reviewed-by: kvn
2012-07-02 09:58:06 +02:00
Roland Westrelin
118f552a6e 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework
Arrays.copyOfRange(original, from, to) with from > original.length tries to do a copy with a negative length.

Reviewed-by: kvn, twisti
2012-06-18 09:52:31 +02:00
Krystal Mok
529b370174 7174218: remove AtomicLongCSImpl intrinsics
Reviewed-by: kvn, twisti
2012-06-12 14:31:44 -07: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
Vladimir Kozlov
eb4a860bc3 6924259: Remove String.count/String.offset
Allow a version of String class that doesn't have count and offset fields.

Reviewed-by: never, coleenp
2012-05-14 09:36:00 -07:00
Rickard Bäckman
cf406f37e3 7160570: Intrinsification support for tracing framework
Reviewed-by: sla, never
2012-03-06 12:36:59 +01:00
Nils Eliasson
7b7d3507db 7152957: VM crashes with assert(false) failed: bad AD file
Reviewed-by: kvn, never
2012-03-12 15:28:07 -07:00
Nils Eliasson
36efb40d10 6658428: C2 doesn't inline java method if corresponding intrinsic failed to inline
Allow fallback to non-intrinsic inline case

Reviewed-by: kvn, jrose, never
2012-03-05 18:10:31 -08:00
Bill Pittore
39f063f94d Merge 2012-02-10 10:55:15 -05:00
Vladimir Kozlov
e6015c7c26 7143491: G1 C2 CTW: assert(p2x->outcnt() == 2) failed: expects 2 users: Xor and URShift nodes
Adjust the assert and code in eliminate_card_mark() method for case when stored value is NULL.

Reviewed-by: iveresov, never
2012-02-07 16:33:43 -08:00
Jiangli Zhou
cd85c690df 7132690: InstanceKlass:_reference_type should be u1 type
Change InstanceKlass::_reference_type to u1 type.

Reviewed-by: dholmes, coleenp, acorn
2012-01-25 17:40:51 -05:00
Vladimir Kozlov
791afc42da 7128352: assert(obj_node == obj) failed
Compare uncasted object nodes.

Reviewed-by: never
2012-01-10 18:05:38 -08:00
Vladimir Kozlov
b93ca70b9b Merge 2012-01-06 20:09:20 -08:00
Roland Westrelin
97439fb4ff 7121140: Allocation paths require explicit memory synchronization operations for RMO systems
Adds store store barrier after initialization of header and body of objects.

Reviewed-by: never, kvn
2011-12-20 16:56:50 +01:00
Stefan Karlsson
e057d60ca1 7118863: Move sizeof(klassOopDesc) into the *Klass::*_offset_in_bytes() functions
Moved sizeof(klassOopDesc), changed the return type to ByteSize and removed the _in_bytes suffix.

Reviewed-by: never, bdelsart, coleenp, jrose
2011-12-07 11:35:03 +01:00
Jiangli Zhou
f9f4ba0203 7117052: instanceKlass::_init_state can be u1 type
Change instanceKlass::_init_state field to u1 type.

Reviewed-by: bdelsart, coleenp, dholmes, phh, never
2011-12-06 18:28:51 -05:00
Vladimir Kozlov
47e357e16f 7081933: Use zeroing elimination optimization for large array
Don't zero new typeArray during runtime call if the allocation is followed by arraycopy into it.

Reviewed-by: twisti
2011-09-26 10:24:05 -07:00
Vladimir Kozlov
c3a7796068 7047069: Array can dynamically change size when assigned to an object field
Fix initialization of a newly-allocated array with arraycopy

Reviewed-by: never
2011-05-27 12:47:48 -07:00
Vladimir Kozlov
e1442309e1 7041100: The load in String.equals intrinsic executed before null check
Remove control from loads in String.equals intrinsic and cast argument to not-null.

Reviewed-by: never
2011-05-03 09:10:39 -07:00
Vladimir Kozlov
6d0283ed8e Merge 2011-04-29 11:15:30 -07:00
Vladimir Kozlov
abc5f94df7 7026700: regression in 6u24-rev-b23: Crash in C2 compiler in PhaseIdealLoop::build_loop_late_post
Memory slices should be always created for non-static fields after allocation

Reviewed-by: never
2011-04-20 18:29:35 -07:00
John Cuthbertson
f603d437be 7036021: G1: build failure on win64 and linux with hs21 in jdk6 build environment
Missing parentheses around a casted expression and some missing casts were causing build failures with the jdk6 build tools.

Reviewed-by: kvn, brutisso
2011-04-15 10:10:50 -07:00
John Cuthbertson
7c844aba67 Merge 2011-04-14 13:45:41 -07:00