1150 Commits

Author SHA1 Message Date
Andrew Haley
b387838cea 8079315: UseCondCardMark broken in conjunction with CMS precleaning on x86
Add the necessary StoreLoad barrier in interpreter, C1 and C2 for x86

Reviewed-by: tschatzl
2015-06-19 09:41:50 +02:00
Gerard Ziemski
ed2bb8c9fc 8122937: [JEP 245] Validate JVM Command-Line Flag Arguments
Validate the arguments to all JVM command-line flags so as to avoid crashes, and ensure that appropriate error messages are displayed when they are invalid.

Reviewed-by: ddmitriev, dholmes, kbarrett, drwhite, brutisso, coleenp
2015-06-18 14:39:38 -05:00
Roland Westrelin
fd10da6423 8086016: closed/java/text/Format/NumberFormat/BigDecimalCompatibilityTest.java is crashing
Trying to transform ArrayCopyNode in dying part of the graph

Reviewed-by: kvn
2015-06-09 12:09:03 +02:00
Roland Westrelin
d7522fb084 8086046: escape analysis generates incorrect code as of B67
Load bypasses arraycopy that sets the value after the ArrayCopyNode is expanded

Reviewed-by: kvn
2015-06-12 14:10:17 +02:00
Roland Westrelin
513d9a5ede 8085832: Optimize main and post loop out when pre loop is found empty
Eliminate main loop and post loop if pre loop becomes empty

Reviewed-by: kvn, mcberg
2015-05-12 14:26:31 +02:00
Roland Westrelin
197ecf9bc1 8081823: C2 performs unsigned comparison against -1
X <= 0 || x > 0 wrongly folded as (x-1) >u -1

Reviewed-by: kvn, vlivanov
2015-06-08 18:35:17 +02:00
Roland Westrelin
0fb315714c 8078866: compiler/eliminateAutobox/6934604/TestIntBoxing.java assert(p_f->Opcode() == Op_IfFalse) failed
Bail out from range check elimination if pre loop is not found

Reviewed-by: kvn
2015-06-04 16:19:22 +02:00
Vladimir Kozlov
93d1573c5e 8081778: Use Intel x64 CPU instructions for RSA acceleration
Add intrinsics for BigInteger squareToLen and mulAdd methods.

Reviewed-by: kvn, jrose
2015-06-03 15:02:10 -07:00
Roland Westrelin
81b0f156c8 8080976: Unexpected AIOOB thrown from 1.9.0-ea-b64 on (regression)
Loop variant use in reduction should prevent vectorization

Reviewed-by: kvn, mcberg
2015-05-29 16:09:16 +02:00
Roland Westrelin
0296c2894b 8080699: Assert failed: Not a Java pointer in JCK test
Eliminated arraycopy node still reachable through exception edges

Reviewed-by: kvn
2015-05-22 09:14:18 +02:00
Tobias Hartmann
068d5d78b1 Merge 2015-05-22 09:50:32 +02:00
Roland Westrelin
59618d7d03 Merge 2015-05-21 20:29:09 +02:00
Andreas Eriksson
346fb9ffa7 8060036: C2: CmpU nodes can end up with wrong type information
CmpU needs to be reprocessed by CCP when an AddI/SubI input's input type change

Reviewed-by: mcberg, kvn, roland
2015-05-21 16:49:11 +02:00
Roland Westrelin
a3c77df5f1 8077504: Unsafe load can loose control dependency and cause crash
Node::depends_only_on_test() should return false for Unsafe loads

Reviewed-by: kvn, adinn
2015-05-21 13:54:07 +02:00
Jesper Wilhelmsson
f64e5038a4 Merge 2015-05-18 17:09:47 +02:00
Vladimir Ivanov
18f7135255 8079135: C2 disables some optimizations when a large number of unique nodes exist
Reviewed-by: kvn
2015-05-15 19:21:46 +03:00
Roland Westrelin
be86925c01 8078436: java/util/stream/boottest/java/util/stream/UnorderedTest.java crashed with an assert in ifnode.cpp
Bad assert in fold_compares code

Reviewed-by: kvn, vlivanov
2015-05-12 09:41:12 +02:00
Roland Westrelin
a9cdbd0407 8076188: Optimize arraycopy out for non escaping destination
If the destination of an arraycopy is non escaping, the arraycopy may be optimized out

Reviewed-by: kvn, vlivanov
2015-05-12 10:27:50 +02:00
Tobias Hartmann
005adcec93 Merge 2015-05-11 07:58:02 +02:00
Tobias Hartmann
e113dfc652 8079343: Crash in PhaseIdealLoop with "assert(!had_error) failed: bad dominance"
C2 should not try to vectorize loops with loop variant vector base address.

Reviewed-by: kvn
2015-05-11 07:44:46 +02:00
Michael C Berg
4fca8dbb1f 8076276: Add support for AVX512
Reviewed-by: kvn, roland
2015-05-08 11:49:20 -07:00
Tobias Hartmann
43a5abc876 8078497: C2's superword optimization causes unaligned memory accesses
Prevent vectorization of memory operations with different invariant offsets if unaligned memory accesses are not allowed.

Reviewed-by: kvn
2015-05-08 12:19:17 +02:00
Jan Civlin
c7d33de202 8076284: Improve vectorization of parallel streams
Improve vectorization of java/util/stream/Streams$RangeIntSpliterator::forEachRemaining() method and enable loop vectorization in a given method on demand.

Reviewed-by: kvn
2015-05-05 12:33:57 -07:00
Andreas Woess
5c13c285f7 8075492: adopt recent IGV
Adopted recent sources, updated README, added build and run instructions; ignored IGV build files in Mercurial; adapted HotSpot Ideal graph printer to current IGV's data format schema; reintroduced control flow window and basic block layout

Co-authored-by: Bernhard Urban <bernhard.urban@oracle.com>
Co-authored-by: Christian Haeubl <christian.haeubl@oracle.com>
Co-authored-by: Doug Simon <doug.simon@oracle.com>
Co-authored-by: Gilles Duboscq <gilles.duboscq@oracle.com>
Co-authored-by: Lukas Stadler <lukas.stadler@oracle.com>
Co-authored-by: Peter Hofer <peter.hofer@jku.at>
Co-authored-by: Roland Schatz <roland.schatz@oracle.com>
Co-authored-by: Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: kvn, roland
2015-05-05 13:06:10 +02:00
Michael C Berg
a880f3d139 8078563: Restrict reduction optimization
Reviewed-by: kvn, twisti
2015-04-29 15:34:04 -07:00
Bharadwaj Yadavalli
f8d0a6ff28 Merge 2015-04-30 18:14:58 -04:00
Roland Westrelin
3cdae26a75 8078426: mb/jvm/compiler/InterfaceCalls/testAC2 - assert(predicate_proj == 0L) failed: only one predicate entry expected
Split if finds predicates on several incoming paths when unswitched's loops are optimized out

Reviewed-by: kvn
2015-04-29 14:43:12 -07:00
Severin Gehwolf
add46c476a 8078666: JVM fastdebug build compiled with GCC 5 asserts with "widen increases"
Do the math on the unsigned type where overflows are well defined

Reviewed-by: kvn, aph
2015-04-29 12:23:48 -07:00
Zoltan Majo
a452b030ce 8068945: Use RBP register as proper frame pointer in JIT compiled code on x86
Introduce the PreserveFramePointer flag to control if RBP is used as the frame pointer or as a general purpose register.

Reviewed-by: kvn, roland, dlong, enevill, shade
2015-04-27 10:49:43 +02:00
Aleksey Shipilev
dc67bb0a0e 8076987: C1 should support conditional card marks (UseCondCardMark)
Reviewed-by: iveresov, roland
2015-04-22 19:10:03 +03:00
Daniel D. Daugherty
9b1474b512 Merge 2015-07-02 14:20:36 -07:00
Bertrand Delsart
5aec2dc9fc 8087333: Optionally Pre-Generate the HotSpot Template Interpreter
Optional support for pregenerated template interpreter

Reviewed-by: coleenp, dholmes, kvn
2015-07-01 10:53:26 +02:00
Calvin Cheung
7bb3af5d16 Merge 2015-04-17 14:37:20 -07:00
Daniel D. Daugherty
884f0d320f 8073165: Contended Locking fast exit bucket
JEP-143/JDK-8073165 Contended Locking fast exit bucket

Co-authored-by: Dave Dice <dave.dice@oracle.com>
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Reviewed-by: dholmes, acorn, dice, dcubed
2015-04-16 08:23:26 -07:00
Roland Westrelin
cb7a08139b 8074676: java.lang.invoke.PermuteArgsTest.java fails with "assert(is_Initialize()) failed: invalid node class"
After guards in Arrays.copyOf() intrinsic, control may become top

Reviewed-by: kvn, vlivanov
2015-04-15 11:01:56 +02:00
Staffan Larsen
47d774ab34 8077364: "if( !this )" construct prevents build on Xcode 6.3
Reviewed-by: stefank, simonis
2015-04-15 09:34:46 +02: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
Vladimir Kozlov
81bb7521bd 8076523: assert(((ABS(iv_adjustment_in_bytes) % elt_size) == 0)) fails in superword.cpp
Check that offset % mem_oper_size == 0 when alignment is verified during vectorization.

Reviewed-by: iveresov
2015-04-02 17:16:39 -07:00
Roland Westrelin
05ea4dbf1e 8069191: moving predicate out of loops may cause array accesses to bypass null check
Remove CastPP nodes only during final graph reshape

Reviewed-by: kvn, jrose
2015-03-24 10:25:09 +01:00
Roland Westrelin
ef217cba65 8076094: CheckCastPPNode::Value() has outdated logic for constants
Outdated logic for constants in CheckCastPPNode::Value()

Reviewed-by: kvn, vlivanov
2015-03-23 14:21:17 +01:00
Michael C Berg
9e55e44c85 8074981: Integer/FP scalar reduction optimization
Add scalar reduction optimization to C2 to take advantage of vector instructions in modern x86 CPUs.

Reviewed-by: kvn, twisti
2015-04-01 18:07:50 -07:00
Roland Westrelin
7c5d30b0e3 8075587: Compilation of constant array containing different sub classes crashes the JVM
Meet of 2 constant arrays result in bottom

Reviewed-by: kvn
2015-03-27 13:47:33 +01:00
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
Roland Westrelin
61aa1cfdef 8075921: assert assert(allocx == alloc) fails in library_call.cpp
Control becomes top after arraycopy guards and confuses tighly coupled allocation logic

Reviewed-by: kvn, vlivanov
2015-03-27 08:58:45 +01:00
Roland Westrelin
1c38036fd8 8075922: assert(t == t_no_spec) fails in phaseX.cpp
Subgraph becomes dead RegionNode::Ideal() but is not destroyed

Reviewed-by: kvn, vlivanov
2015-03-25 14:25:53 +01:00
Zoltan Majo
90e9ec4634 Merge 2015-03-27 09:02:53 +01:00
Jesper Wilhelmsson
5f5b27baba Merge 2015-03-23 22:08:14 +01:00
Vladimir Ivanov
b64245d163 Merge 2015-03-20 20:32:07 +00:00
Vladimir Ivanov
879642dc68 8074548: Never-taken branches cause repeated deopts in MHs.GWT case
Reviewed-by: jrose, kvn
2015-03-20 11:41:34 -07:00
Vladimir Ivanov
43dbb43fb5 8075263: MHI::checkCustomized isn't eliminated for inlined MethodHandles
Reviewed-by: jrose, kvn
2015-03-20 11:41:34 -07:00