1276 Commits

Author SHA1 Message Date
Zoltan Majo
26cd440c55 8132457: Unify command-line flags controlling the usage of compiler intrinsics
Cleanup processing of command-line flags controlling intrinsics.

Reviewed-by: kvn
2015-08-03 09:39:29 +02:00
Jaroslav Bachorik
39aea4789c Merge 2015-07-31 12:13:57 +02:00
Zoltan Majo
422cd18f23 8130832: Extend the WhiteBox API to provide information about the availability of compiler intrinsics
Add a new method, sun.hotspot.WhiteBox.isIntrinsicAvailable, that can be used to determine if an intrinsic is available.

Reviewed-by: kvn, jrose
2015-07-28 19:20:42 +02:00
Sangheon Kim
a13fe250b0 8130459: Add additional validation after heap creation
Some PLAB related flags' validation can happen after heap creation. Introduced additional stage of validation check.

Reviewed-by: coleenp, dholmes, kbarrett, gziemski, ecaspole, ddmitriev
2015-07-27 13:56:26 -07:00
Roland Westrelin
51ddedd5c7 Merge 2015-07-23 19:11:28 +02:00
Vladimir Ivanov
259aeb3399 8131675: EA fails with assert(false) failed: not unsafe or G1 barrier raw StoreP
Reviewed-by: roland
2015-07-22 20:23:53 +03:00
Daniel D. Daugherty
d7f565d9eb 8075171: Contended Locking fast notify bucket
JEP-143/JDK-8073165 Contended Locking fast notify 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-07-21 07:28:37 -07:00
Goetz Lindenmaier
ad601cca0c 8131676: Fix warning 'negative int converted to unsigned' after 8085932
Also fix 64-bit constant added in 8076276.

Reviewed-by: kvn
2015-07-16 14:18:13 +02:00
Vladimir Kozlov
10f06d081d Merge 2015-07-14 18:58:38 +02:00
Jan Civlin
2a4f18ccbd 8085932: Fixing bugs in detecting memory alignments in SuperWord
Reviewed-by: kvn
2015-07-14 09:55:22 -07:00
Vladimir Ivanov
92d8281194 8078629: VM should constant fold Unsafe.get*() loads from final fields
Reviewed-by: kvn, jrose, psandoz
2015-07-14 06:44:50 -07:00
Vladimir Kozlov
b5284a93ce 8129920: Vectorized loop unrolling
Optimize loop opts for vectorizible loops.

Reviewed-by: kvn, roland
2015-07-10 11:59:09 -07:00
Daniel D. Daugherty
8dbfda6628 Merge 2015-07-09 14:35:13 -07:00
Goetz Lindenmaier
07c7774cd7 8086069: Adapt runtime calls to recent intrinsics to pass ints as long
Remove CCallingConventionRequiresIntsAsLongs from shared code and push functionality to native wrapper. Less optimal but more flexible.

Reviewed-by: jrose, kvn
2015-06-29 15:30:55 +02:00
Zoltan Majo
9245cdc214 8076112: Add @HotSpotIntrinsicCandidate annotation to indicate methods for which Java Runtime has intrinsics
Annotate possibly intrinsified methods with @HotSpotIntrinsicCandidate. Add checks omitted by intrinsics to the library code. Add CheckIntrinsics flags to check consistency of intrinsics.

Reviewed-by: jrose, kvn, thartmann, vlivanov, abuckley, darcy, ascarpino, briangoetz, alanb, aph, dnsimon
2015-07-03 07:25:03 +02:00
Andrew Haley
917f70414f Merge 2015-07-02 11:12:59 +01:00
Vladimir Kozlov
d71bb8c72b 8129893: 8129094 fix is incomplete
Move old and add new primitive type check.

Reviewed-by: iveresov
2015-06-30 12:12:18 -07:00
Andrew Haley
52b991b411 8130150: Implement BigInteger.montgomeryMultiply intrinsic
Add montgomeryMultiply intrinsics

Reviewed-by: kvn
2015-06-16 17:31:53 +01:00
James Cheng
e2533553f6 8073583: C2 support for CRC32C on SPARC
Reviewed-by: jrose, kvn
2015-06-29 00:10:01 -07:00
Vladimir Kozlov
0b9dfebfa4 Merge 2015-06-25 09:48:50 -07:00
Jesper Wilhelmsson
d60d6fdf40 Merge 2015-06-24 13:38:01 +02:00
Vladimir Ivanov
90a42c2491 8074551: GWT can be marked non-compilable due to deopt count pollution
Reviewed-by: kvn
2015-06-11 14:19:40 +03:00
Vladimir Kozlov
d62598136b 8129094: assert(is_java_primitive(bt)) failed: only primitive type vectors
Ignored non-primitive type memory operation regardless its (or its inputs) control.

Reviewed-by: roland, mcberg
2015-06-18 11:09:29 -07:00
Anthony Scarpino
c4c528df14 8073108: Use x86 and SPARC CPU instructions for GHASH acceleration
Reviewed-by: kvn, jrose
2015-06-17 17:48:25 -07:00
Michael Berg
7c7b91845f 8080325: SuperWord loop unrolling analysis
Determine loop unroll factor based on supported vectors sizes.

Reviewed-by: roland, kvn
2015-06-16 16:10:36 -07:00
Coleen Phillimore
97f69e8b42 Merge 2015-06-19 13:03:58 +00:00
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