Xin Liu
ea5a2b15a0
8251464: make Node::dump(int depth) support indent
...
Reviewed-by: thartmann
2020-10-02 13:45:29 +00:00
Christian Hagedorn
8d30bb03ee
8249607: C2: assert(!had_error) failed: bad dominance
...
Fix prevented igvn optimization in SplitIf for LoadNodes which resulted in dominanance errors with loop strip mining.
Reviewed-by: roland, kvn
2020-08-31 12:10:25 +02:00
Christian Hagedorn
31368cd1f0
8249602: C2: assert(cnt == _outcnt) failed: no insertions allowed
...
Use DUIterator instead of DUIterator_Fast due to legit insertions.
Reviewed-by: kvn, thartmann
2020-07-28 16:05:30 +02:00
Christian Hagedorn
417e8e449d
8248552: C2 crashes with SIGFPE due to division by zero
...
Bail out in PhaseIdealLoop:split_thru_phi when trying to split a Div or ModNode iv phi whose zero check was removed but could potentially still be zero based on type information.
Reviewed-by: kvn, thartmann
2020-07-27 11:03:17 +02:00
Mikael Vidstedt
1f5e21a16e
Merge
2020-07-15 21:24:39 -07:00
Roland Westrelin
b67814941f
8229495: SIGILL in C2 generated OSR compilation
...
Reviewed-by: kvn, chagedorn
2020-07-01 17:28:49 +02:00
Igor Ignatyev
04280a0d05
8249000: vm.gc.X should take selected JIT into account
...
Reviewed-by: kvn
2020-07-10 11:52:35 -07:00
Mikael Vidstedt
09510a15a1
Merge
2020-07-10 23:12:29 -07:00
Christian Hagedorn
b02e4d4aba
8248596: [TESTBUG] compiler/loopopts/PartialPeelingUnswitch.java times out with Graal enabled
...
Change C2 specific test to be executed only with server compiler.
Reviewed-by: roland, kvn, thartmann
2020-07-06 09:16:58 +02:00
Christian Hagedorn
08df6a1f15
8246203: Segmentation fault in verification due to stack overflow with -XX:+VerifyIterativeGVN
...
Replace the recursive verification algorithm with an iterative one to avoid a stack overflow for large graphs.
Reviewed-by: kvn, thartmann
2020-06-15 09:50:11 +02:00
Roland Westrelin
9c99008aff
8245714: "Bad graph detected in build_loop_late" when loads are pinned on loop limit check uncommon branch
...
Reviewed-by: thartmann
2020-05-28 13:21:54 +02:00
Yong Zhou
dc54da232d
8244407: JVM crashes after transformation in C2 IdealLoopTree::split_fall_in
...
Reviewed-by: thartmann, kvn
2020-05-13 07:25:47 +08:00
Roland Westrelin
f0b37f161b
8239569: PublicMethodsTest.java failed due to NPE in java.base/java.nio.file.FileSystems.getFileSystem(FileSystems.java:230)
...
Reviewed-by: thartmann, kvn
2020-04-23 15:54:08 +02:00
Igor Ignatyev
70e632d5ec
8243935: remove copying of s.h.WB$WhiteBoxPermission in hotspot tests
...
Reviewed-by: dholmes, stefank
2020-04-28 19:57:02 -07:00
Igor Ignatyev
7c351405c4
8242310: use reproducible random in hotspot compiler tests
...
Reviewed-by: kvn, thartmann
2020-04-08 22:58:42 -07:00
Jie Fu
3487361a39
8242379: [TESTBUG] compiler/loopopts/TestLoopUnswitchingLostCastDependency.java fails with release VMs
...
Reviewed-by: roland, kvn
2020-04-09 09:20:18 +08:00
Roland Westrelin
6405d75070
8241900: Loop unswitching may cause dependence on null check to be lost
...
Reviewed-by: thartmann, kvn
2020-04-02 15:03:27 +02:00
Per Lidén
2e4783411e
8240745: Implementation: JEP 377: ZGC: A Scalable Low-Latency Garbage Collector (Production)
...
Reviewed-by: stefank, eosterlund
2020-04-03 23:40:33 +02:00
Christian Hagedorn
c01e986cc9
8237859: C2: Crash when loads float above range check
...
Fix control edges of predicates to data nodes when creating pre/main/post loops.
Reviewed-by: neliasso, thartmann, roland
2020-03-25 14:41:52 +01:00
Sandhya Viswanathan
398ce2948c
8240248: Extend superword reduction optimizations for x86
...
Add support for and, or, xor reduction
Co-authored-by: Shravya Rukmannagari <shravya.rukmannagari@intel.com>
Reviewed-by: vlivanov, thartmann
2020-03-23 10:26:40 -07:00
Christian Hagedorn
a51dd58f38
8240227: Loop predicates should be copied to unswitched loops
...
Copy loop range check predicates to unswitched loops and update their control edges.
Reviewed-by: kvn, neliasso, thartmann, roland
2020-03-19 10:15:28 +01:00
Dongbo He
aa2be1141d
8240576: JVM crashes after transformation in C2 IdealLoopTree::merge_many_backedges
...
Reviewed-by: kvn
2020-03-09 22:31:12 +08:00
Qi Feng
d1818942b0
8240286: [TESTBUG] Test command error in hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Float.java
...
Reviewed-by: kvn, thartmann
2020-03-05 14:51:41 +08:00
Christian Hagedorn
d7b122ed69
8238438: SuperWord::co_locate_pack picks memory state of first instead of last load
...
Fix selection of first and last memory state in SuperWord::co_locate_pack
Reviewed-by: thartmann, kvn
2020-03-02 10:23:08 +01:00
Pengfei Li
934db29ac5
8239549: AArch64: Backend support for MulAddVS2VI node
...
Reviewed-by: aph
2020-02-26 09:33:29 +08:00
Christian Hagedorn
3ea92e735b
8238756: C2: assert(((n) == __null || !VerifyIterativeGVN || !((n)->is_dead()))) failed: can not use dead node
...
Fix -XX:+VerifyIterativeGVN due to a dead node and add some basic flag testing.
Reviewed-by: roland, neliasso
2020-02-13 15:07:45 +01:00
Fairoz Matte
a4b3e781fe
8236701: [TESTBUG] compiler/loopopts/superword/Vec_MulAddS2I.java uses wrong flag -XX:-SuperWord
...
Reviewed-by: iklam, thartmann
2020-01-16 17:37:09 -08:00
Fei Yang
a86e196559
8235762: JVM crash in SWPointer during C2 compilation
...
Reviewed-by: thartmann, chagedorn, neliasso
2020-01-09 19:12:16 +08:00
Christian Hagedorn
3e9a17c53e
8235984: C2: assert(out->in(PhiNode::Region) == head || out->in(PhiNode::Region) == slow_head) failed: phi must be either part of the slow or the fast loop
...
Bailout from loop unswitching if loop predicates have a control dependency to partially peeled statements.
Reviewed-by: neliasso, thartmann
2020-01-07 17:06:10 +01:00
Jatin Bhateja
079db54d51
8230185: assert(is_Loop()) failed: invalid node class
...
Adding missing check for a counted loop.
Reviewed-by: kvn, thartmann
2019-12-18 10:04:53 +01:00
Christian Hagedorn
ba94936c80
8233033: C2 produces wrong result while unswitching a loop due to lost control dependencies
...
Adding missing control dependencies when cloning loop predicates at loop unswitching.
Reviewed-by: roland, vlivanov, thartmann
2019-12-11 14:33:32 +01:00
Christian Hagedorn
2ee7b9d3a0
8233032: assert(in_bb(n)) failed: must be
...
Find first and last memory state of a load pack without relying on bb indices.
Co-authored-by: Roland Westrelin <rwestrel@redhat.com>
Reviewed-by: roland, kvn, thartmann
2019-12-10 09:28:38 +01:00
Christian Hagedorn
fd8832f726
8229994: assert(false) failed: Bad graph detected in get_early_ctrl_for_expensive
...
Fixes wrong idom information set in loop peeling when a loop strip mined loop is involved.
Reviewed-by: vlivanov, thartmann
2019-12-06 10:00:16 +01:00
Christoph Göttschkes
9c4adc66c7
8234906: [TESTBUG] TestDivZeroCheckControl fails for client VMs due to Unrecognized VM option LoopUnrollLimit
...
Reviewed-by: kvn
2019-12-04 10:38:54 +01:00
Christoph Göttschkes
a4a351caad
8234807: [TESTBUG] LoopRotateBadNodeBudget fails for client VMs due to Unrecognized VM option PartialPeelNewPhiDelta
...
Reviewed-by: kvn
2019-11-27 10:13:41 +01:00
Tobias Hartmann
1833584f92
8233529: loopTransform.cpp:2984: Error: assert(p_f->Opcode() == Op_IfFalse) failed
...
Strengthened asserts in locate_pre_from_main() and added a check for is_main_no_pre_loop().
Reviewed-by: kvn, vlivanov
2019-11-12 10:16:04 +01:00
Christian Hagedorn
173dae8bc6
8229694: JVM crash in SWPointer during C2 OSR compilation
...
Handle the case where there is only 1 pack and no operations left when calling SuperWord::find_align_to_ref() to find the best alignment again.
Reviewed-by: kvn, vlivanov, thartmann
2019-11-11 10:41:03 +01:00
Patric Hedlin
902858e3ce
8231565: More node budget asserts in fuzzed tests
...
Reviewed-by: neliasso, thartmann
2019-10-23 12:51:53 +02:00
Christian Hagedorn
13b4952f11
8232874: Add missing test for 8230062
...
Adds a missing test which verifies the bug fix of 8230062.
Reviewed-by: roland, thartmann
2019-10-23 12:17:14 +02:00
Huang Wang
4fb2bb554d
8231988: Unexpected test result caused by C2 IdealLoopTree::do_remove_empty_loop
...
Duplicate cmp node in empty loop if it has other users
Co-authored-by: Tuo Xie <xietuo@huawei.com>
Reviewed-by: neliasso, thartmann
2019-10-11 16:52:18 +08:00
Roland Westrelin
a81dcf4dbf
8231620: assert(bol->is_Bool()) crash during split if due to FastLockNode
...
Reviewed-by: vlivanov, thartmann
2019-10-01 10:28:12 +02:00
Patric Hedlin
8275b17b07
8229499: Node budget assert in fuzzed test
...
Reviewed-by: thartmann, neliasso
2019-09-12 11:44:51 +02:00
Tobias Hartmann
a03e92201d
8231223: C2's conditional move optimization fails with assert(bol->Opcode() == Op_Bool) failed
...
Bail out if the range check If has an Opaque4Node input instead of a BoolNode.
Reviewed-by: roland, kvn
2019-09-26 09:16:08 +02:00
Aleksey Shipilev
7c2fe7025b
8230813: Add JDK-8010500 to compiler/loopopts/superword/TestFuzzPreLoop.java bug list
...
Reviewed-by: zgu
2019-09-10 19:58:22 +02:00
Tobias Hartmann
a4b46ccc23
8229496: SIGFPE (division by zero) in C2 OSR compiled method
...
Adding a CastNode to keep the dependency between the div/mod operation and the zero check.
Reviewed-by: roland, mdoerr
2019-09-05 13:56:17 +02:00
Aleksey Shipilev
5110530d5b
8230238: Add another regression test for JDK-8134739
...
Reviewed-by: kvn
2019-09-02 11:31:12 +02:00
Christian Hagedorn
db359f11b5
8229158: make UseSwitchProfiling non-experimental or false by-default
...
Changed UseSwitchProfiling from experimental to diagnostic.
Reviewed-by: dholmes, shade, thartmann
2019-08-20 10:46:23 +02:00
Tobias Hartmann
672fa8b97a
8228888: C2 compilation fails with assert "m has strange control"
...
Weakened too strong assert.
Reviewed-by: kvn, roland
2019-08-20 07:47:13 +02:00
Patric Hedlin
d222b01dee
8223363: Bad node estimate assertion failure
...
8223502: Node estimate for loop unswitching is not correct: assert(delta <= 2 * required) failed: Bad node estimate
8224648: assert(!exceeding_node_budget()) failed: Too many NODES required! failure with ctw
Tighten the node estimates. New est_loop_clone_sz() implementation that will compute a "fan-out" complexity estimate as part of the size estimate (to better estimate complex loop body size after cloning). New est_loop_unroll_sz() function, used to estimate the size of a loop body att full/maximal unrolling. Correction to node budget final tests and asserts.
Reviewed-by: neliasso, kvn
2019-05-28 14:56:58 +02:00
Patric Hedlin
a17df8d45b
8210392: assert(Compile::current()->live_nodes() < Compile::current()->max_node_limit()) failed: Live Node limit exceeded limit
...
Avoid excessive split-if.
Reviewed-by: thartmann, neliasso
2018-12-18 10:12:28 +01:00
Roland Westrelin
326c6997a0
8215044: C2 crash in loopTransform.cpp with assert(cl->trip_count() > 0) failed: peeling a fully unrolled loop
...
Reviewed-by: thartmann, kvn
2018-12-13 17:57:11 +01:00
Rahul Raghavan
5a6385b363
8211698: Crash in C2 compiled code during execution of double array heavy processing code
...
Correctly registered new Opaque4Node in add_range_check_predicate
Reviewed-by: roland, thartmann
2018-12-18 19:13:54 +05:30
Tobias Hartmann
2e989366ea
8215410: Regression test for JDK-8214994
...
Added a regression test for 8214994 which was fixed by accident with 8211451.
Reviewed-by: kvn
2018-12-17 08:25:57 +01:00
Vivek Deshpande
05e175bf1b
8214751: X86: Support for VNNI Instructions
...
Co-authored-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Reviewed-by: kvn
2018-12-12 14:48:34 -08:00
Roland Westrelin
84cd74b013
8214344: C2: assert(con.basic_type() != T_ILLEGAL) failed: elembt=byte; loadbt=void; unsigned=0
...
Reviewed-by: kvn, thartmann
2018-11-27 08:44:19 +01:00
Tobias Hartmann
73bcb0507e
8208275: C2 crash in Node::add_req(Node*)
...
Split-if optimization should not process (dead) counted loops.
Reviewed-by: roland
2018-08-17 08:21:20 +02:00
Aleksei Voitylov
2d0aee2275
8207065: Cleanup compiler tests for Client VM
...
Reviewed-by: kvn, iignatyev
2018-07-13 11:13:34 -07:00
Roland Westrelin
8c2d9b5ff0
8202123: C2 Crash in Node::in(unsigned int) const+0x14
...
Reviewed-by: kvn, thartmann
2018-06-29 17:59:44 +02:00
Roland Westrelin
7d7184e505
8205515: assert(opcode == Op_RangeCheck) failed: no other if variant here
...
Reviewed-by: thartmann, kvn
2018-07-02 10:44:46 +02:00
Tobias Hartmann
d2f70d7052
8205033: [REDO] Induction variable of over-unrolled loop conflicts with range checks
...
Update skeleton predicates before main loop during unrolling to remove dead code.
Reviewed-by: kvn, roland
2018-06-19 12:25:42 +02:00
Vladimir Kozlov
3ced42361d
8202948: C2: assert(init_offset >= 0) failed: positive offset from object start
...
Convert the assert into compilation check which will skip superword optimization
Reviewed-by: roland, thartmann
2018-06-15 08:28:08 -07:00
Tobias Hartmann
d01224d43e
8205034: [BACKOUT] Induction variable of over-unrolled loop conflicts with range checks
...
Backout fix for JDK-8203915 because it causes SIGILL failures.
Reviewed-by: shade
2018-06-14 11:22:04 +02:00
Tobias Hartmann
c9c8cc68de
8203915: Induction variable of over-unrolled loop conflicts with range checks
...
Update skeleton predicates before main loop during unrolling to remove dead code.
Reviewed-by: kvn, roland
2018-06-14 09:04:55 +02:00
Tobias Hartmann
2d00538d92
8202949: C2: assert(false) failed: Bad graph detected in build_loop_late
...
Fixed trip count computation for counted loop with negative stride to prevent over-unrolling.
Reviewed-by: roland
2018-05-25 09:05:42 +02:00
Roland Westrelin
98db6d11f3
8193130: Bad graph when unrolled loop bounds conflicts with range checks
...
Reviewed-by: kvn, thartmann
2018-03-22 20:21:19 -07:00
Roland Westrelin
4f8c5b6949
8197563: assert(is_Loop()) crash in PhaseIdealLoop::try_move_store_before_loop()
...
Don't move store out of the loop if head is not a LoopNode.
Reviewed-by: kvn, thartmann
2018-02-13 16:57:01 +01:00
Roland Westrelin
d244b3ccd1
8196296: Lucene test crashes C2 compilation
...
Prevent merging of back to back ifs if one is a counted loop end.
Reviewed-by: kvn, thartmann
2018-01-30 09:08:44 +01:00
Roland Westrelin
29bab311ab
8192908: -XX:+UseCountedLoopSafepoints alone doesn't disable strip mining with G1
...
-XX:+UseCountedLoopSafepoints should disable loop strip mining.
Reviewed-by: kvn, thartmann
2017-12-07 15:52:46 +01:00
Roland Westrelin
386e258e20
8186027: C2: loop strip mining
...
Reviewed-by: kvn, neliasso
2017-11-28 11:59:16 +01:00
Roland Westrelin
1c25161036
8191153: assert(u_ctrl != blk1 && u_ctrl != blk2) failed: won't converge
...
Relax assert
Reviewed-by: kvn
2017-11-27 10:44:19 -08:00
Roland Westrelin
002aff0a75
8190375: Java Crash in JavaBug.formatPos(I)Ljava/lang/String
...
Skip the logic that set the value of the Phi iv if the exit condition is "not equal"
Reviewed-by: thartmann, mdoerr
2017-11-13 14:53:28 -05:00
Tobias Hartmann
34622112b6
8189067: SuperWord optimization crashes with "assert(out == prev || prev == __null) failed: no branches off of store slice"
...
Only move the store if the LCA of all users is outside of the loop. Re-enable UseSubwordForMaxVector.
Reviewed-by: kvn, roland
2017-10-13 14:02:01 +02:00
Roland Westrelin
844e594fec
8187822: C2 conditonal move optimization might create broken graph
...
Reviewed-by: kvn
2017-09-27 16:17:47 +02:00
Ekaterina Pavlova
853f26ed15
8185134: [Graal] Introduce vm.graal predicate and tag tests which are not applicable for Graal
...
Reviewed-by: kvn, dnsimon
2017-10-02 14:31:34 -07:00
Erik Joelsson
3789983e89
8187443: Forest Consolidation: Move files to unified layout
...
Reviewed-by: darcy, ihse
2017-09-12 19:03:39 +02:00