263 Commits

Author SHA1 Message Date
Jie Fu
0ff8db34ca 8221542: ~15% performance degradation due to less optimized inline decision
Reviewed-by: vlivanov, coleenp
2019-05-06 12:17:54 -07:00
Vladimir Ivanov
2e0c5db11d 8219902: C2: MemNode::can_see_stored_value() ignores casts which carry control dependency
Reviewed-by: kvn
2019-05-06 12:15:55 -07:00
Vladimir Ivanov
75d4f24c97 8223171: Redundant nmethod dependencies for effectively final methods
Reviewed-by: dlong
2019-05-06 12:15:49 -07:00
Patric Hedlin
e08506e683 8216137: assert failed: Live node limit exceeded
8219520: assert failed: Live node limit exceeded

Adding simplistic node budget support for loop-transformations. This /should/attempts to/ resolve most cases of: "assert(Compile::current()->live_nodes() < Compile::current()->max_node_limit()) failed: Live Node limit exceeded limit".

Reviewed-by: vlivanov, neliasso
2019-04-17 14:57:53 +02:00
Patric Hedlin
8088ed8317 8223143: Restructure/clean-up for 'loopexit_or_null()'
Minor restructure and clean-up for 'loopexit_or_null()' and its use.

Reviewed-by: vlivanov
2019-04-17 14:56:45 +02:00
Patric Hedlin
7bb9062f84 8223142: Clean-up WS and CB
Reviewed-by: vlivanov
2019-04-17 14:55:37 +02:00
Patric Hedlin
55e3cc8f6f 8223141: Change (count) suffix _ct into _cnt
Reviewed-by: vlivanov
2019-04-17 14:55:29 +02:00
Patric Hedlin
f4faee7bae 8223140: Clean-up in 'ok_to_convert()'
Simplify logic in function. Added precond/postcond macros.

Reviewed-by: vlivanov, neliasso
2019-04-17 14:55:11 +02:00
Patric Hedlin
ceef0f69dc 8223139: Rename mandatory policy-do routines
Rename 'policy_do_remove_empty_loop' to 'do_remove_empty_loop', 'policy_do_one_iteration_loop' to 'do_one_iteration_loop'.

Reviewed-by: vlivanov, dl
2019-04-17 14:55:01 +02:00
Patric Hedlin
205085d8d5 8223138: Small clean-up in loop-tree support
Rename predicate 'is_inner()' to 'is_innermost()' to be accurate. Added 'is_root()' predicate for root parent test in loop-tree. Changed definition of 'is_loop()' to always lazy-read the tail, since it should never be NULL. Cleanup of 'tail()' definition.

Reviewed-by: vlivanov, neliasso
2019-05-02 11:05:47 +02:00
Patric Hedlin
fcbca82247 8223137: Rename predicate 'do_unroll_only()' to 'is_unroll_only()'
Reviewed-by: vlivanov
2019-04-17 14:52:25 +02:00
Vladimir Kozlov
e9c523ae5f 8220623: [JVMCI] Update JVMCI to support JVMCI based Compiler compiled into shared library
Reviewed-by: dnsimon, never, stefank, rehn, neliasso, dholmes, kbarrett, coleenp
2019-05-01 12:31:29 -07:00
Rahul Raghavan
fee481d5a2 8202414: Unsafe write after primitive array creation may result in array length change
Avoided collecting unaligned stores in Initialize node by making can_capture_store return false for same

Reviewed-by: dlong, kvn, vlivanov
2019-05-01 22:02:48 +05:30
Tobias Hartmann
048c3dc026 8219807: C2 crash in IfNode::up_one_dom(Node*, bool)
Guard against regions degraded to copies.

Reviewed-by: kvn
2019-04-30 14:49:19 +02:00
Tobias Hartmann
919b40be45 8221592: C2 compilation failed with assert(!q->is_MergeMem())
Transform the original MergeMem after transforming the slices to get rid of MergeMem inputs.

Reviewed-by: kvn, neliasso
2019-04-29 09:04:25 +02:00
Roman Kennke
03ab1404f0 8221766: Load-reference barriers for Shenandoah
Reviewed-by: kvn, erikj, aph, shade
2019-04-02 23:00:22 +02:00
Derek Thomson
7a4b473edd 8157372: C2: Node::cmp() should return bool
The method Node::cmp() should return a boolean

Reviewed-by: vlivanov, kvn
2019-03-28 11:06:00 -07:00
Aleksey Shipilev
af6cddfa78 8220198: Lots of com/sun/crypto/provider/Cipher tests fail on x86_32 due to missing SHA512 stubs
Reviewed-by: kvn, thartmann
2019-03-27 11:35:28 +01:00
Claes Redestad
06656bd270 8221343: x86_32 crashes on startup with "_hwm out of range"
Reviewed-by: thartmann, kvn
2019-03-25 20:57:07 +01:00
Roman Kennke
59a025d90b 8220714: C2 Compilation failure when accessing off-heap memory using Unsafe
Reviewed-by: vlivanov, roland
2019-03-15 09:57:42 +01:00
Stefan Karlsson
b9cf9e7ca4 8220411: Remove ScavengeRootsInCode=0 code
Reviewed-by: thartmann, coleenp
2019-03-14 09:08:17 +01:00
Roland Westrelin
3ec1137c1f 8220374: C2: LoopStripMining doesn't strip as expected
Reviewed-by: rkennke, thartmann, mdoerr
2019-03-12 15:42:32 +01:00
Nils Eliasson
1057f7e2a7 8219517: assert(false) failed: infinite loop in PhaseIterGVN::optimize
Reviewed-by: kvn, thartmann
2019-03-13 15:22:28 +01:00
Pengfei Li
1dc7271eca 8214922: Add vectorization support for fmin/fmax
Reviewed-by: adinn, roland
2019-03-07 02:39:06 +00:00
Kim Barrett
c7ae2d10b7 8217417: Decorator name typo: C2_TIGHLY_COUPLED_ALLOC
Fixed typo in decorator name, variables, and comments.

Reviewed-by: tschatzl
2019-03-11 02:05:07 -04:00
Nils Eliasson
d48c35db98 8219448: split-if update_uses accesses stale idom data
Reviewed-by: thartmann, kvn
2019-03-07 22:16:03 +01:00
Jatin Bhateja
c2ec1085e1 8217561: X86: Add floating-point Math.min/max intrinsics
Implementation taking care of +/-0.0 and NaN which uses a specific pattern for reductions

Reviewed-by: aph, kvn, neliasso, sviswanathan, adinn
2019-03-07 15:27:42 +01:00
Claes Redestad
367ae10733 8220159: Optimize various RegMask operations by introducing watermarks
Reviewed-by: neliasso, thartmann
2019-03-05 16:39:18 +01:00
Vivek Deshpande
40031abde4 8220211: Small update to Fix generation of VNNI vector code by allowing adjacent LoadS nodes to be isomorphic (JDK-8216580)
Reviewed-by: kvn
2019-03-05 21:26:14 -08:00
Vivek Deshpande
8b57cdf5f8 8216580: Fix generation of VNNI vector code by allowing adjacent LoadS nodes to be isomorphic
Reviewed-by: kvn, thartmann, rraghavan
2019-03-05 14:07:30 -08:00
Jie Fu
0f2562d71d 8219919: RuntimeStub name lost with PrintFrameConverterAssembly
Reviewed-by: kvn
2019-03-01 10:00:03 -08:00
Vladimir Kozlov
211162fd5c 8219951: Build failure on Mac and Windows after JDK-8219922
Add missing parentheses.

Reviewed-by: dholmes
2019-02-28 17:16:40 -08:00
Claes Redestad
29d842b5a0 8219922: Simplify and optimize IndexSetIterator::next using count_trailing_zeros
Reviewed-by: kvn, neliasso
2019-02-28 22:11:46 +01:00
Roland Westrelin
7fd7a118da 8219335: "failed: unexpected type" assert failure in ConnectionGraph::split_unique_types() with unsafe accesses
Reviewed-by: thartmann, kvn
2019-02-18 17:41:31 +01:00
Vladimir Ivanov
d41611ebeb 8161334: C2: Cast nodes hinder memory alias analysis
Reviewed-by: kvn, thartmann
2019-02-14 15:27:46 -08:00
Vladimir Ivanov
40c61cce4b 8218874: C2: Unsafe to access PhaseIdealLoop outside of constructors
Reviewed-by: thartmann, kvn
2019-02-14 15:27:12 -08:00
Vladimir Ivanov
521039cc35 8218879: Keep track of memory accesses originated from Unsafe
Reviewed-by: thartmann
2019-02-14 15:27:12 -08:00
Nils Eliasson
0a5047a326 8087128: C2: Disallow definition split on MachCopySpill nodes
Reviewed-by: kvn
2019-02-14 14:31:32 +01:00
Claes Redestad
efc62ac6ec 8217383: Obsolete UseImplicitStableValues
Reviewed-by: shade, rkennke, vlivanov
2019-02-12 09:00:04 +01:00
Roland Westrelin
f88962f2d9 8217990: C2 UseOptoBiasInlining: load of markword optimized to 0 if running with -XX:-EliminateLocks
Reviewed-by: thartmann, mdoerr, rrich, kvn
2019-02-07 09:55:57 +01:00
Roland Westrelin
6c640e1831 8215483: Off heap memory accesses should be vectorized
Reviewed-by: neliasso, kvn
2018-12-18 09:29:39 +01:00
Vladimir Ivanov
f5a64c0001 8075052: Autobox elimination hinders loop unrolling
Reviewed-by: kvn
2019-02-04 17:35:36 -08:00
Vladimir Ivanov
f5458c5891 8188133: C2: Static field accesses in clinit can trigger deoptimizations
Reviewed-by: kvn
2019-02-04 17:35:35 -08:00
Vladimir Ivanov
3a94607c69 8218163: C2: Continuous deoptimization w/ Reason_speculate_class_check and Action_none
Reviewed-by: kvn, neliasso
2019-02-01 18:51:14 -08:00
Vladimir Ivanov
71759e3177 8217919: C2: Enable -XX:+AggressiveUnboxing by default
Reviewed-by: kvn, neliasso
2019-02-01 18:50:53 -08:00
Vladimir Ivanov
0a5a0b1a29 8217918: C2: -XX:+AggressiveUnboxing is broken
Reviewed-by: kvn
2019-02-01 18:50:22 -08:00
Vladimir Ivanov
ac3711e9cd 6986483: CHA: optimize calls through interfaces
Reviewed-by: neliasso, thartmann
2019-01-31 17:48:29 -08:00
Vladimir Ivanov
46a57587dc 8059241: C2: Excessive RemoveUseless passes during incremental inlining
Reviewed-by: roland, shade
2019-01-31 17:48:25 -08:00
Robbin Ehn
046a1f0ff7 8218041: Assorted wrong/missing includes
Reviewed-by: dholmes, kbarrett, stefank, shade
2019-01-31 10:31:39 +01:00
Claes Redestad
bc8ecd924c 8217869: Add count_leading_zeros utility
Reviewed-by: neliasso, thartmann
2019-01-28 23:00:31 +01:00