79 Commits

Author SHA1 Message Date
Roland Westrelin
82f4aacb42 8259609: C2: optimize long range checks in long counted loops
Co-authored-by: John R Rose <jrose@openjdk.org>
Reviewed-by: thartmann, jrose
2021-10-26 15:53:37 +00:00
Roland Westrelin
2aacd4220a 8274145: C2: condition incorrectly made redundant with dominating main loop exit condition
Reviewed-by: kvn, neliasso
2021-10-08 14:48:35 +00:00
Christian Hagedorn
dfc557cbea 8274406: RunThese30M.java failed "assert(!LCA_orig->dominates(pred_block) || early->dominates(pred_block)) failed: early is high enough"
Reviewed-by: kvn, thartmann
2021-09-30 08:29:43 +00:00
Roland Westrelin
980c50dc60 8272562: C2: assert(false) failed: Bad graph detected in build_loop_late
Reviewed-by: chagedorn, kvn
2021-09-29 14:51:33 +00:00
Christian Hagedorn
b0983df5a4 8274074: SIGFPE with C2 compiled code with -XX:+StressGCM
Reviewed-by: roland, thartmann
2021-09-27 14:05:51 +00:00
Vladimir Ivanov
2ff4c01d42 8271600: C2: CheckCastPP which should closely follow Allocate is sunk of a loop
Reviewed-by: chagedorn, roland
2021-08-23 20:23:41 +00:00
Yi Yang
3f38a50c52 8271203: C2: assert(iff->Opcode() == Op_If || iff->Opcode() == Op_CountedLoopEnd || iff->Opcode() == Op_RangeCheck) failed: Check this code when new subtype is added
Reviewed-by: chagedorn, roland, thartmann
2021-08-16 02:30:57 +00:00
Christian Hagedorn
f791fdf23e 8261147: C2: Node is wrongly marked as reduction resulting in a wrong execution due to wrong vector instructions
Reviewed-by: thartmann, kvn
2021-07-09 11:53:45 +00:00
Roland Westrelin
ad27d9b3ec 8269088: C2 fails with assert(!n->is_Store() && !n->is_LoadStore()) failed: no node with a side effect
Reviewed-by: kvn, iveresov, neliasso
2021-07-01 08:11:59 +00:00
Roland Westrelin
d3ad8cd344 8268672: C2: assert(!loop->is_member(u_loop)) failed: can be in outer loop or out of both loops only
Reviewed-by: kvn, neliasso
2021-06-21 14:16:54 +00:00
Christian Hagedorn
9ad19f7838 8256934: C2: assert(C->live_nodes() <= C->max_node_limit()) failed: Live Node limit exceeded limit
Reviewed-by: roland, vlivanov
2021-06-16 13:02:51 +00:00
Roland Westrelin
4d545a1f86 8267988: C2: assert(!addp->is_AddP() || addp->in(AddPNode::Base)->is_top() || addp->in(AddPNode::Base) == n->in(AddPNode::Base)) failed: Base pointers must match (addp 1301)
Reviewed-by: chagedorn, vlivanov, kvn
2021-06-16 07:36:07 +00:00
Roland Westrelin
d4377afb99 8263303: C2 compilation fails with assert(found_sfpt) failed: no node in loop that's not input to safepoint
Reviewed-by: chagedorn, kvn
2021-06-10 06:56:04 +00:00
Roland Westrelin
4413142eca 8268017: C2: assert(phi_type->isa_int() || phi_type->isa_ptr() || phi_type->isa_long()) failed: bad phi type
Reviewed-by: vlivanov, chagedorn, whuang
2021-06-09 07:58:17 +00:00
Roland Westrelin
9d305b9c06 8252372: Check if cloning is required to move loads out of loops in PhaseIdealLoop::split_if_with_blocks_post()
Reviewed-by: thartmann, kvn
2021-05-26 09:20:42 +00:00
Tobias Hartmann
ab2aec2afb 8265938: C2's conditional move optimization does not handle top Phi
Reviewed-by: chagedorn, kvn, iignatyev
2021-04-27 17:10:53 +00:00
Roland Westrelin
7137328006 8264958: C2 compilation fails with assert "n is later than its clone"
Reviewed-by: neliasso, thartmann
2021-04-16 11:34:45 +00:00
Roland Westrelin
fd3a33a856 8263189: C2: assert(!had_error) failed: bad dominance
Reviewed-by: kvn, thartmann
2021-03-23 08:15:47 +00:00
Roland Westrelin
20297a1beb 8263577: C2: reachable nodes shouldn't have dead uses at the end of optimizations
Reviewed-by: vlivanov, neliasso
2021-03-16 08:20:52 +00:00
Jesper Wilhelmsson
d7acfae3d2 Merge 2021-02-06 00:29:45 +00:00
Roland Westrelin
4de3a6be9e 8260709: C2: assert(false) failed: unscheduable graph
Reviewed-by: thartmann, chagedorn
2021-02-04 15:11:25 +00:00
Tobias Hartmann
fe407cf1b6 8260420: C2 compilation fails with assert(found_sfpt) failed: no node in loop that's not input to safepoint
Reviewed-by: kvn, roland, chagedorn
2021-02-02 07:23:55 +00:00
Roland Westrelin
11d6467c50 8260407: cmp != __null && cmp->Opcode() == Op_CmpL failure with -XX:StressLongCountedLoop=200000000 in lucene
Reviewed-by: thartmann, kvn
2021-01-28 12:27:40 +00:00
Christian Hagedorn
c1fb521694 8259227: C2 crashes with SIGFPE due to a division that floats above its zero check
Reviewed-by: kvn, thartmann
2021-01-07 15:02:45 +00:00
Christian Hagedorn
ce36aeaac3 8257822: C2 crashes with SIGFPE due to a division that floats above its zero check
Reviewed-by: kvn, thartmann
2020-12-15 15:14:34 +00:00
Roland Westrelin
d93293f31b 8256730: Code that uses Object.checkIndex() range checks doesn't optimize well
Reviewed-by: vlivanov, thartmann
2020-12-10 08:09:08 +00:00
Roland Westrelin
3d460bd295 8256655: rework long counted loop handling
Reviewed-by: kvn, thartmann, vlivanov
2020-12-01 07:30:51 +00:00
Roland Westrelin
e76de18956 8223051: support loops with long (64b) trip counts
Reviewed-by: vlivanov, thartmann, jrose
2020-10-19 11:30:13 +00:00
Tobias Hartmann
7c0d417027 8251535: Partial peeling at unsigned test adds incorrect loop exit check
Reviewed-by: chagedorn, neliasso, kvn
2020-10-16 06:25:33 +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
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
Christian Hagedorn
840867efa6 8247218: Add default constructor to VectorSet to use Thread::current()->resource_area() as arena by default
Add a default construction to VectorSet and clean up uses of the old constructor.

Reviewed-by: kvn, thartmann
2020-06-29 17:14:19 +02:00
Roland Westrelin
5adfaa3986 8247763: assert(outer->outcnt() == 2) failed: 'only phis' failure in LoopNode::verify_strip_mined()
Reviewed-by: kvn, thartmann
2020-06-18 15:44:55 +02:00
Roland Westrelin
57388f807f 8244504: C2: refactor counted loop code in preparation for long counted loop
Reviewed-by: jrose, thartmann
2020-05-28 14:34:01 +02:00
Roland Westrelin
eb758d53f1 8247763: assert(outer->outcnt() == 2) failed: 'only phis' failure in LoopNode::verify_strip_mined()
Reviewed-by: kvn, thartmann
2020-06-18 15:44:55 +02:00
Roland Westrelin
52d46c314b 8238691: C2: turn subtype check into macro node
Reviewed-by: vlivanov, thartmann
2020-02-14 10:31:34 +01: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
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
Nils Eliasson
e1b94b1635 8235653: Clean-up BarrierSetC2
Reviewed-by: redestad, rkennke, thartmann
2019-12-11 14:08:20 +01:00
Roland Westrelin
9d40ab91db 8234350: assert(mode == ControlAroundStripMined && (use == sfpt || !use->is_reachable_from_root())) failed: missed a node
Reviewed-by: thartmann, mdoerr
2019-12-09 15:37:04 +01:00
Claes Redestad
12adeca887 8233708: VectorSet cleanup
Reviewed-by: neliasso, shade, thartmann
2019-11-07 12:12:39 +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
Erik Österlund
42885307f6 8230565: ZGC: Redesign C2 load barrier to expand on the MachNode level
Co-authored-by: Per Liden <per.liden@oracle.com>
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Nils Eliasson <nils.eliasson@oracle.com>
Reviewed-by: pliden, stefank, neliasso
2019-10-09 12:30:06 +00: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
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
Roland Westrelin
dfc5c795c7 8229483: Sinking load out of loop may trigger: assert(found_sfpt) failed: no node in loop that's not input to safepoint
Reviewed-by: thartmann, neliasso
2019-09-23 16:49:09 +02:00
Roland Westrelin
a63b541842 8230061: # assert(mode == ControlAroundStripMined && use == sfpt) failed: missed a node
Reviewed-by: thartmann, neliasso
2019-08-28 15:51:03 +02:00
Xin Liu
0a92dc786d 8229450: C2 compilation fails with assert(found_sfpt) failed
Reviewed-by: roland, thartmann
2019-09-04 16:39:12 +02:00