154 Commits

Author SHA1 Message Date
Coleen Phillimore
7225e6008d 8182848: Some functions misplaced in debug.hpp
Moved to vmError.hpp,cpp where they seemed more appropriate

Reviewed-by: stefank, stuefe
2017-06-28 19:12:58 -04:00
Roland Westrelin
a9c2bc6517 8179678: ArrayCopy with same src and dst can cause incorrect execution or compiler crash
Replacing load on dst with load on src only valid if copy doesn't modify src element to load

Reviewed-by: kvn, thartmann
2017-06-02 09:08:34 +02:00
Tobias Hartmann
d3baf34118 8180575: Null pointer dereference in LoadNode::Identity()
Fixed a missing null check on the return value of AddPNode::Ideal_base_and_offset() found by Parfait.

Reviewed-by: kvn
2017-05-22 09:23:59 +02:00
Tobias Hartmann
66fb50e7a2 8180617: Null pointer dereference in InitializeNode::complete_stores
Fixed a missing null check on the return value of InitializeNode::allocation() found by Parfait.

Reviewed-by: zmajo
2017-05-22 09:16:46 +02:00
Igor Veresov
34dec39bc2 8178047: Aliasing problem with raw memory accesses
Require equal bases when unaliasing offsets for raw accesses

Reviewed-by: kvn
2017-04-19 18:02:26 -07:00
Goetz Lindenmaier
da8430daf1 8166561: [s390] Adaptions needed for s390 port in C1 and C2
Reviewed-by: kvn
2016-09-22 18:29:15 +02:00
Tobias Hartmann
913622a641 8038348: Instance field load is replaced by wrong data Phi
Store additional information in PhiNodes corresponding to known instance field values to avoid incorrect reusage.

Reviewed-by: kvn, vlivanov
2016-08-23 13:44:26 +02:00
Vladimir Ivanov
4c31d5f745 8160360: Mismatched field loads are folded in LoadNode::Value
Reviewed-by: kvn, thartmann
2016-07-06 15:05:28 +03:00
Tobias Hartmann
35f9db149b 8156760: VM crashes if -XX:-ReduceInitialCardMarks is set
Fixed several compiler crashes with disabled ReduceInitialCardMarks.

Reviewed-by: roland, minqi, dlong, tschatzl, kvn
2016-06-02 08:46:52 +02:00
Tobias Hartmann
8adbc20c87 8155241: Crash with assert in Xcomp mode and with disabled ReduceBulkZeroing
We should not assume that a CloneBasic arraycopy sets array initialization to complete.

Reviewed-by: kvn, roland
2016-05-12 08:25:42 +02:00
Alejandro Murillo
f9426642c6 Merge 2016-04-22 01:04:00 -07:00
Bharadwaj Yadavalli
b2ead5ac2d Merge 2016-04-12 14:17:42 -04:00
Daniel D. Daugherty
4397e85e26 Merge 2016-04-07 09:47:48 -07:00
Vladimir Ivanov
7fc81004e3 8152590: C2: @Stable support doesn't always work w/ incremental inlining
Reviewed-by: kvn
2016-04-11 21:42:55 +03:00
Joseph Provino
5cef85023b 8132524: Missing includes to resourceArea.hpp
Files that use ResourceMark are missing the include of resourceArea.hpp

Reviewed-by: tschatzl, jwilhelm
2016-04-04 12:57:48 -04:00
Ivan Krylov
429b1c80a1 8147844: new method j.l.Runtime.onSpinWait() and the corresponding x86 hotspot instrinsic
Adds c1 & c2 x86 intrinsics for j.l.Runtime.onSpinWait() that utilize the PAUSE instruction

Co-authored-by: Yuri Gaevsky <ygaevsky@azul.com>
Reviewed-by: iveresov, kvn
2016-03-30 17:04:14 +02:00
Vladimir Ivanov
d39c84770b 8152972: C2 crashes with SIGSEGV in LoadNode::make
Reviewed-by: kvn
2016-03-29 21:33:26 +03:00
Vladimir Ivanov
661796fe3f 8152179: C2: Folding of unsigned loads is broken w/ @Stable
Reviewed-by: jrose, kvn
2016-03-28 13:49:34 +03:00
Vladimir Ivanov
3d03610bf4 8152773: C2: LoadNode properties aren't preserved when converting between signed/unsigned variants
Reviewed-by: jrose, kvn
2016-03-28 13:49:34 +03:00
Aleksey Shipilev
103aff334f 8146801: Allocating short arrays of non-constant size is slow
Reviewed-by: kvn, twisti, vlivanov
2016-03-04 01:30:11 +03:00
Vladimir Ivanov
a1b61d2827 8150933: System::arraycopy intrinsic doesn't mark mismatched loads
Reviewed-by: kvn, shade
2016-03-01 20:06:47 +03:00
Vladimir Ivanov
bb51ea7a06 8150543: Mismatched access detection is inaccurate
Reviewed-by: kvn, shade
2016-02-29 23:46:55 +03:00
Vladimir Ivanov
abebc2da5c 8150186: Folding mismatched accesses with @Stable is incorrect
Reviewed-by: kvn, jrose, shade
2016-02-26 01:58:26 +03:00
Aleksey Shipilev
03174f3030 8149813: Move trusted final field handling from C2 LoadNode::Value to shared code
Reviewed-by: thartmann, kvn
2016-02-15 23:45:15 +03:00
Tobias Hartmann
69b52aa28b 8146629: Make phase->is_IterGVN() accessible from Node::Identity and Node::Value
Change arguments of Node::Identity() and Node::Value() from PhaseTransform* to PhaseGVN*.

Reviewed-by: kvn, roland
2016-01-12 12:55:09 +01:00
Zoltan Majo
dfa6539a6a 8086053: Address inconsistencies regarding ZeroTLAB
Add zero-initialization to C1 for fast TLAB refills; strenghten C2 conditions for skipping zero-initialization.

Reviewed-by: kvn, thartmann
2016-01-12 09:19:09 +01:00
Coleen Phillimore
200784d505 8132051: Better byte behavior
Co-authored-by: Roland Westerlin <roland.westerlin@oracle.com>
Co-authored-by: Vladimir Kozlov <vladimir.kozlov@oracle.com>
Co-authored-by: John Rose <john.r.rose@oracle.com>
Reviewed-by: bdelsart, roland, kvn, jrose, ahgross
2015-10-13 18:13:34 -04:00
Roland Westrelin
c18a26c573 8142386: Octane crashes with assert(is_Load())
Unsafe access to an array is wrongly marked as mismatched

Reviewed-by: vlivanov, thartmann
2015-11-17 12:00:16 +01:00
Roland Westrelin
45b3ce816a 8140309: [REDO] failed: no mismatched stores, except on raw memory: StoreB StoreI
Mismatched stores on same slice possible with Unsafe.Put*Unaligned methods

Reviewed-by: kvn, thartmann
2015-10-28 10:20:33 +01:00
Dean Long
42c3dcab55 8140267: assert(is_native_ptr || alias_type->adr_type() == TypeOopPtr::BOTTOM || alias_type->field() != __null || alias_type->element() != __null) failed: field, array element or unknown
Back out 8136473

Reviewed-by: twisti
2015-10-21 18:05:45 -04:00
Roland Westrelin
096fa934a8 8136473: failed: no mismatched stores, except on raw memory: StoreB StoreI
Mismatched stores on same slice possible with Unsafe.Put*Unaligned methods

Reviewed-by: kvn, thartmann
2015-10-16 16:53:02 +02:00
Jesper Wilhelmsson
e75e2e04f7 Merge 2015-10-07 01:03:24 +02:00
David Lindholm
1e71f67736 8080775: Better argument formatting for assert() and friends
Reviewed-by: kbarrett, pliden
2015-09-29 11:02:08 +02:00
Hui Shi
0f4b248b18 8136596: Remove aarch64: MemBarRelease when final field's allocation is NoEscape or ArgEscape
Elide MemBar when AllocateNode _is_non_escaping

Reviewed-by: kvn, roland
2015-09-21 10:51:33 +02:00
Aleksey Shipilev
7c7692856a 8134758: Final String field values should be trusted as stable
Reviewed-by: kvn, thartmann
2015-09-01 19:48:10 +03:00
Roland Westrelin
96b004cd82 8080289: Intermediate writes in a loop not eliminated by optimizer
Move Stores out of loop (after or before) when possible

Reviewed-by: kvn, vlivanov
2015-07-29 17:25:04 +02:00
Roland Westrelin
0baf2f7e8a 8130847: Cloned object's fields observed as null after C2 escape analysis
Eliminated instance/array written to by an array copy variant must be correctly initialized when reallocated at a deopt

Reviewed-by: kvn, vlivanov
2015-08-15 02:54:18 +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
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
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
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
Stefan Karlsson
4913ad5d7d 8072911: Remove includes of oop.inline.hpp from .hpp files
Reviewed-by: brutisso, coleenp, jwilhelm, simonis, dholmes
2015-02-13 14:37:35 +01:00
Zoltan Majo
eb5be4c2fe 8066312: Add new Node* Node::find_out(int opc) method
Added methods find_user_with() and has_user_with() for searching for a particular out type.

Reviewed-by: kvn, jrose
2015-01-19 09:32:40 +01:00
Vladimir Ivanov
5fd1e54fc1 8067338: compiler/debug/TraceIterativeGVN.java segfaults
Reviewed-by: kvn
2014-12-19 16:42:40 -08:00
Vladimir Ivanov
f3d9096e4d 8062258: compiler/debug/TraceIterativeGVN.java segfaults in trace_PhaseIterGVN
Reviewed-by: kvn
2014-11-17 14:02:45 -08:00
Zoltan Majo
49b224a4f7 8057622: java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest: SEGV inside compiled code (sparc)
In Parse::array_store_check(), add control edge FROM IfTrue branch of runtime type check of the destination array TO loading _element_klass from destination array.

Reviewed-by: kvn, roland, anoll
2014-11-06 09:40:58 +01:00
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