108 Commits

Author SHA1 Message Date
Vladimir Ivanov
83181efbeb 8058847: C2: EliminateAutoBox regression after 8042786
Reviewed-by: kvn, roland
2014-10-24 09:13:12 -07:00
Vladimir Kozlov
98f413fa1f Merge 2014-09-04 22:59:17 -07:00
Coleen Phillimore
73d759e533 8049105: Move array component mirror to instance of java/lang/Class (hotspot part 2)
This removes component mirrors from arrayKlass metadata and the C2 intrinsic for them.

Reviewed-by: kvn, twisti, mgerdin
2014-08-28 11:29:09 -04:00
Tobias Hartmann
70a55eac34 8054033: Remove unused references to Compile*
Removed unused references to Compile* missed by JDK-8034812.

Reviewed-by: kvn, roland
2014-08-05 09:58:52 +02:00
Roland Westrelin
fa27000f3c 8055910: closed/java/util/Collections/CheckedCollections.java failed with ClassCastException not thrown
Missing subtype check for Arrays.copyOf intrinsic

Reviewed-by: kvn, iveresov
2014-08-29 16:32:29 +02:00
Tobias Hartmann
11eb4553c9 8040213: C2 does not put all modified nodes on IGVN worklist
Verification code is added that checks if modified nodes are put on the IGVN worklist and modified nodes are processed by 'PhaseIterGVN::transform_old()'

Reviewed-by: kvn, jrose
2014-07-25 10:06:17 +02:00
Tobias Hartmann
2a0815a55e 8034812: remove IDX_INIT macro hack in Node class
The IDX_INIT macro used by Node::Node(...) to retrieve the Compile object is removed and replaced by a call to Compile::current(). The Node constructor, new operator and all calls to it are adapted accordingly.

Reviewed-by: kvn, jrose, iveresov, goetz
2014-06-02 08:07:29 +02: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
85296fec28 8036851: volatile double accesses are not explicitly atomic in C2
The C2 structure is adapted to distinguish between volatile and non-volatile double accesses.

Reviewed-by: twisti, kvn
2014-05-06 09:17:57 +02:00
Vladimir Kozlov
c909ac41de 8039298: assert(base == NULL || t_adr->isa_rawptr() || !phase->type(base)->higher_equal(TypePtr::NULL_PTR))
Convert the assert into the runtime check to skip IGVN optimizations for problematic memory nodes. Eliminate dead nodes more aggressively.

Reviewed-by: twisti, iveresov
2014-05-02 16:44:54 -07:00
Morris Meyer
6db303a301 8001532: C2 node files refactoring
Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes

Reviewed-by: kvn, morris
2014-04-01 09:05:20 -07:00
Vladimir Ivanov
bd8255eaa4 8036667: "assert(adr->is_AddP() && adr->in(AddPNode::Offset)->is_Con()) failed: offset is a constant" with FoldStableValues on
Reviewed-by: kvn
2014-03-06 09:53:14 -08:00
Vladimir Kozlov
7d92dc4d79 Merge 2014-01-28 12:28:17 -08:00
Vladimir Kozlov
c3a0e80e0b Merge 2014-01-28 12:25:34 -08:00
Roland Westrelin
c19a7e0fa3 8027422: assert(_gvn.type(obj)->higher_equal(tjp)) failed: cast_up is no longer needed
Type methods shouldn't always operate on speculative part

Reviewed-by: kvn, twisti
2014-01-24 09:31:53 +01:00
Mikael Vidstedt
a0da47fd66 8029233: Update copyright year to match last edit in jdk8 hotspot repository for 2013
Copyright year updated for files modified during 2013

Reviewed-by: twisti, iveresov
2013-12-24 11:48:39 -08:00
Christian Thalinger
e71c8df213 8029366: ShouldNotReachHere error when creating an array with component type of void
Reviewed-by: kvn
2013-12-06 16:43:56 -08:00
Goetz Lindenmaier
fe89766184 8028515: PPPC64 (part 113.2): opto: Introduce LoadFence/StoreFence
Use new nodes for loadFence/storeFence intrinsics in C2.

Reviewed-by: kvn, dholmes
2013-11-26 18:38:19 -08:00
Goetz Lindenmaier
13b13f5259 8024921: PPC64 (part 113): Extend Load and Store nodes to know about memory ordering
Add a field to C2 LoadNode and StoreNode classes which indicates whether the load/store should do an acquire/release on platforms which support it.

Reviewed-by: kvn
2013-11-15 11:05:32 -08:00
Thomas Schatzl
b4e927d2a9 Merge 2013-09-16 09:41:03 +02:00
Vladimir Ivanov
f0e77ac67f 8001107: @Stable annotation for constant folding of lazily evaluated variables
Co-authored-by: John Rose <john.r.rose@oracle.com>
Reviewed-by: rbackman, twisti, kvn
2013-09-10 14:51:48 -07:00
Erik Helin
30f059b5fc 8015107: NPG: Use consistent naming for metaspace concepts
Reviewed-by: coleenp, mgerdin, hseigel
2013-08-12 17:37:02 +02:00
Niclas Adlertz
19d56715fa 8017243: 8001345 is incomplete
Replaces unused decodeN at MemBarAcquire with its corresponding loadN if loadN is used at more than one place.

Reviewed-by: kvn, twisti
2013-06-25 12:07:07 -07:00
Vladimir Kozlov
175419c053 Merge 2013-06-20 16:08:11 -07:00
Niclas Adlertz
556b4925b3 8001345: VM crashes with assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc
Remove unnecessary LoadN / DecodeN nodes at MemBarAcquire nodes.

Reviewed-by: kvn, roland
2013-06-19 00:41:56 +02:00
Calvin Cheung
53448fdbed 8014431: cleanup warnings indicated by the -Wunused-value compiler option on linux
Co-authored-by: Jeremy Manson <jeremymanson@google.com>
Reviewed-by: dholmes, coleenp
2013-06-13 22:02:40 -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
Vladimir Kozlov
010f640069 8009472: Print additional information for 8004640 failure
Dump nodes and types in 8004640 case.

Reviewed-by: roland
2013-03-06 12:25:57 -08:00
Roland Westrelin
fe92862089 8007294: ReduceFieldZeroing doesn't check for dependent load and can lead to incorrect execution
InitializeNode::can_capture_store() must check that the captured store doesn't overwrite a memory location that is loaded before the store.

Reviewed-by: kvn
2013-02-25 14:13:04 +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
Vladimir Kozlov
cfcd28fd9d 8005522: use fast-string instructions on x86 for zeroing
Use 'rep stosb' instead of 'rep stosq' when fast-string operations are available.

Reviewed-by: twisti, roland
2013-01-03 15:09:55 -08: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
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
d1191bb4f4 7119644: Increase superword's vector size up to 256 bits
Increase vector size up to 256-bits for YMM AVX registers on x86.

Reviewed-by: never, twisti, roland
2012-06-15 01:25:19 -07:00
Vladimir Kozlov
ae6d0d30f5 7174510: 19 JCK compiler tests fail with C2 error: memNode.cpp:812 - ShouldNotReachHere
Add missing check for EncodeP node in MemNode::Ideal_common_DU_postCCP() method.

Reviewed-by: twisti
2012-06-11 14:58:51 -07:00
Vladimir Kozlov
3770ecec6f 7132936: guarantee(t != NULL) failed: must be con
Use !higher_equal() check to skip top and values which fit.

Reviewed-by: never
2012-01-24 17:04:51 -08:00
Vladimir Kozlov
5b3f2efc2e 7131302: connode.cpp:205 Error: ShouldNotReachHere()
Add Value() methods to short and byte Load nodes to truncate constants which does not fit.

Reviewed-by: jrose
2012-01-20 09:43:06 -08: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
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
Vladimir Kozlov
78034a3d3b 7117282: assert(base == NULL || t_adr->isa_rawptr() || !phase->type(base)
Delay memory node transformation until the memory is processed.

Reviewed-by: iveresov, never
2011-12-02 21:37:19 -08:00
Vladimir Kozlov
8d2ee23293 6890673: Eliminate allocations immediately after EA
Try to eliminate allocations and related locks immediately after escape analysis.

Reviewed-by: never
2011-11-16 09:13:57 -08:00
Vladimir Kozlov
09b7902e14 7107042: assert(no_dead_loop) failed: dead loop detected
Use dead nodes elimination code in PhaseIdealLoop before executing EA.

Reviewed-by: never, twisti
2011-11-09 07:25:51 -08: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
Christian Thalinger
1038fed51d 7071709: JSR 292: switchpoint invalidation should be pushed not pulled
Reviewed-by: never
2011-09-02 04:28:59 -07:00
Roland Westrelin
b543a07b9a 7074017: Introduce MemBarAcquireLock/MemBarReleaseLock nodes for monitor enter/exit code paths
Replace MemBarAcquire/MemBarRelease nodes on the monitor enter/exit code paths with new MemBarAcquireLock/MemBarReleaseLock nodes

Reviewed-by: kvn, twisti
2011-08-02 18:36:40 +02:00