1237 Commits

Author SHA1 Message Date
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
Michael Haupt
fd2f61a53f 8004073: Implement C2 Ideal node specific dump() method
Add Node::dump_rel() to dump a node and its related nodes (the notion of "related" depends on the node at hand); add Node::dump_comp() to dump a node in compact representation; add Node::dump_rel_comp() to dump a node and its related nodes in compact representation; add the required machinery; extend some C2 IR nodes with compact and related dumping

Reviewed-by: kvn, roland
2015-03-18 16:16:30 +01:00
Tobias Hartmann
e834a48100 8130309: Need to bailout cleanly if creation of stubs fails when codecache is out of space
Check for failed expansion of stub section in code buffer and bailout.

Reviewed-by: kvn, adinn, dlong, roland, twisti
2015-07-29 08:05:21 +02:00
Roland Westrelin
71e31ee0b9 8073480: C2 should optimize explicit range checks
Explicit range checks should be recognized by C2

Reviewed-by: kvn, vlivanov
2015-03-17 10:06:31 +01:00
Roland Westrelin
0258ef4abc 8073866: Fix for 8064703 is not sufficient
Side effects between allocation and arraycopy can be reexecuted, unreachable uninitialized array can be seen by GCs

Reviewed-by: kvn, vlivanov
2015-03-16 12:24:06 +01:00
Igor Ignatyev
f51a895f42 Merge 2015-03-14 16:13:48 +00:00
Igor Ignatyev
140bf2be86 8073607: add trace events for inlining
Reviewed-by: kvn, fzhinkin, mgronlun
2015-03-13 21:53:13 +03:00
Joseph Provino
67fb17a658 8067891: Remove vestigal G1SATBCT barrier set kind
Remove all case statements specifying G1SATBCT

Reviewed-by: tschatzl, kbarrett
2015-03-23 12:18:20 +01:00
Dean Long
aa21fdd0c0 8072383: resolve conflicts between open and closed ports
Refactor close to remove references to closed ports

Reviewed-by: kvn, simonis, dholmes
2015-02-24 17:23:53 -05:00
Alejandro Murillo
cf1f3d308b Merge 2015-03-06 04:58:52 -08:00
Zoltan Majo
78b1c29418 Merge 2015-03-06 08:53:22 +01:00
Roland Westrelin
2c277304d8 8073957: assert(ary_src != 0) failed: not an array or instance?
ArrayCopyNode going dead needs better validation of inputs

Reviewed-by: kvn, vlivanov
2015-03-03 12:30:07 +01:00
Kim Barrett
40d3986051 8069016: Add BarrierSet downcast support
Add FakeRttiSupport utility and use to provide barrier_set_cast.

Reviewed-by: jmasa, sangheki
2015-02-27 19:52:48 -05:00
Vladimir Kozlov
239370b736 Merge 2015-02-26 10:56:54 -08:00