230 Commits

Author SHA1 Message Date
Galder Zamarreño
d16a9b2ec5 8373134: C2: Min/Max users of Min/Max uses should be enqueued for GVN
Reviewed-by: epeter, bmaillard, dlong
2026-01-15 07:22:54 +00:00
Christian Hagedorn
e4636d69e7 8373420: C2: Add true/false_proj*() methods for IfNode as a replacement for proj_out*(true/false)
Reviewed-by: dfenacci, roland, epeter
2025-12-17 11:17:39 +00:00
Roland Westrelin
00068a8030 8354282: C2: more crashes in compiled code because of dependency on removed range check CastIIs
Reviewed-by: chagedorn, qamai, galder, epeter
2025-12-10 08:45:20 +00:00
Roland Westrelin
35f4a7410c 8366888: C2: incorrect assertion predicate with short running long counted loop
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: chagedorn, bmaillard
2025-11-25 13:00:07 +00:00
Anton Seoane Ampudia
f4305923fb 8369002: Extract the loop->is_member(get_loop(get_ctrl(node))) pattern in a new function
Reviewed-by: bmaillard, rcastanedalo
2025-11-14 07:26:03 +00:00
Qizheng Xing
093e128771 8347499: C2: Make PhaseIdealLoop eliminate more redundant safepoints in loops
Reviewed-by: epeter, roland
2025-11-06 10:56:48 +00:00
Marc Chevalier
8ca485cf98 8370077: C2: make Compile::_major_progress a boolean
Reviewed-by: chagedorn, kvn, dlong, epeter
2025-10-31 11:02:29 +00:00
Marc Chevalier
02f8874c2d 8361608: C2: assert(opaq->outcnt() == 1 && opaq->in(1) == limit) failed
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: chagedorn, rcastanedalo
2025-10-31 11:00:06 +00:00
Emanuel Peter
d5ce66698d 8370220: C2: rename methods and improve documentation around get_ctrl and idom lazy updating/forwarding of ctrl and idom via dead ctrl nodes
Reviewed-by: chagedorn, thartmann
2025-10-28 06:42:05 +00:00
Roland Westrelin
ff6a0170f0 8369258: C2: enable ReassociateInvariants for all loop types
Reviewed-by: epeter, qamai
2025-10-16 07:35:41 +00:00
Emanuel Peter
4786f8bee5 8369448: C2 SuperWord: refactor VTransform to do move_unordered_reduction_out_of_loop during VTransform::optimize
Reviewed-by: chagedorn, kvn
2025-10-14 08:32:32 +00:00
Kim Barrett
9e843f56ec 8367014: Rename class Atomic to AtomicAccess
Reviewed-by: dholmes, aph, stefank
2025-09-12 06:35:55 +00:00
Emanuel Peter
443b172638 8324751: C2 SuperWord: Aliasing Analysis runtime check
Reviewed-by: kvn, mhaessig
2025-08-28 05:53:23 +00:00
Roland Westrelin
f155661151 8342692: C2: long counted loop/long range checks: don't create loop-nest for short running loops
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: chagedorn, thartmann
2025-07-22 08:35:36 +00:00
Xiaohong Gong
7d6c902ce8 8357726: Improve C2 to recognize counted loops with multiple casts in trip counter
Reviewed-by: chagedorn, epeter, galder
2025-06-25 01:16:08 +00:00
Roland Westrelin
c11f36e620 8356708: C2: loop strip mining expansion doesn't take sunk stores into account
Reviewed-by: rcastanedalo, epeter
2025-06-20 11:24:17 +00:00
Benoît Maillard
d1b788005b 8357951: Remove the IdealLoopTree* loop parameter from PhaseIdealLoop::loop_iv_phi
Reviewed-by: thartmann, mhaessig
2025-06-06 08:16:15 +00:00
Aleksey Shipilev
db6fa5923c 8355617: Remove historical debug_only macro in favor of DEBUG_ONLY
Reviewed-by: stefank, kbarrett, jwaters
2025-04-28 08:43:14 +00:00
Roland Westrelin
be6e4406d8 8349139: C2: Div looses dependency on condition that guarantees divisor not zero in counted loop
Reviewed-by: chagedorn, epeter, qamai
2025-04-24 09:10:43 +00:00
Manuel Hässig
d358f5f4a4 8347449: C2: UseLoopPredicate off should also turn UseProfiledLoopPredicate off
Reviewed-by: chagedorn, epeter
2025-04-02 06:48:06 +00:00
Emanuel Peter
c856b3425a 8352587: C2 SuperWord: we must avoid Multiversioning for PeelMainPost loops
Reviewed-by: chagedorn, kvn
2025-03-25 16:08:57 +00:00
Christian Hagedorn
e57b272506 8350578: Refactor useless Parse and Template Assertion Predicate elimination code by using a PredicateVisitor
Reviewed-by: epeter, kvn, roland
2025-03-19 07:41:07 +00:00
Christian Hagedorn
4867a4c89e 8351280: Mark Assertion Predicates useless instead of replacing them by a constant directly
Reviewed-by: epeter, roland
2025-03-10 12:09:16 +00:00
Emanuel Peter
e82031ec1a 8350756: C2 SuperWord Multiversioning: remove useless slow loop when the fast loop disappears
Reviewed-by: kvn, chagedorn
2025-03-06 06:48:42 +00:00
Roland Westrelin
939815fdcf 8347040: C2: assert(!loop->_body.contains(in)) failed
Reviewed-by: chagedorn, kvn
2025-02-27 16:47:31 +00:00
Emanuel Peter
885338b5f3 8323582: C2 SuperWord AlignVector: misaligned vector memory access with unaligned native memory
Reviewed-by: roland, kvn
2025-02-27 06:58:43 +00:00
SendaoYan
04659a4073 8350197: [UBSAN] Node::dump_idx reported float-cast-overflow
Reviewed-by: chagedorn
2025-02-19 01:30:16 +00:00
Emanuel Peter
19399d271e 8348572: C2 compilation asserts due to unexpected irreducible loop
Reviewed-by: thartmann, kvn
2025-02-05 12:58:43 +00:00
Stefan Karlsson
c33c1cfe73 8347909: Automatic precompiled.hpp inclusion
Reviewed-by: lkorinth, erikj, dholmes, ihse
2025-01-21 10:21:24 +00:00
Theo Weidmann
f54e0bf267 8345766: C2 should emit macro nodes for ModF/ModD instead of calls during parsing
Reviewed-by: kvn, epeter
2025-01-21 09:15:18 +00:00
Emanuel Peter
f0af830f85 8335747: C2: fix overflow case for LoopLimit with constant inputs
Reviewed-by: kvn, qamai
2025-01-14 11:55:39 +00:00
Christian Hagedorn
ed0b555627 8344035: Replace predicate walking code in Loop Unswitching with a predicate visitor
Reviewed-by: roland, kvn
2025-01-13 08:09:08 +00:00
theoweidmannoracle
e88e793cfd 8343148: C2: Refactor uses of "PhaseValue::*con*() + PhaseIdealLoop::set_ctrl()" into separate method
Reviewed-by: kvn, chagedorn, thartmann
2024-12-11 07:52:06 +00:00
Daniel Skantz
480b508cf2 8345156: C2: Add bailouts next to a few asserts
Reviewed-by: kvn, epeter
2024-12-09 16:29:56 +00:00
Christian Hagedorn
c977ef7b45 8342047: Create Template Assertion Predicates with Halt nodes only instead of uncommon traps
Reviewed-by: epeter, thartmann
2024-11-14 07:13:19 +00:00
Thomas Stuefe
133f8f3186 8344014: Simplify TracePhase constructor
Reviewed-by: dlong, roland
2024-11-13 12:30:06 +00:00
Christian Hagedorn
a6c85daa1c 8342945: Replace predicate walking code in get_assertion_predicates() used for Loop Unswitching and cleaning useless Template Assertion Predicates with a predicate visitor
Reviewed-by: thartmann, roland, kvn
2024-11-07 07:05:20 +00:00
Christian Hagedorn
e389f82b1b 8343137: C2: VerifyLoopOptimizations fails with "Was reachable in only one"
Reviewed-by: thartmann, kvn
2024-10-29 08:07:22 +00:00
Christian Hagedorn
7131f053b0 8342043: Split Opaque4Node into OpaqueTemplateAssertionPredicateNode and OpaqueNotNullNode
Reviewed-by: kvn, roland
2024-10-23 08:00:42 +00:00
Kangcheng Xu
80ec552248 8328528: C2 should optimize long-typed parallel iv in an int counted loop
Reviewed-by: roland, chagedorn, thartmann
2024-10-21 14:57:31 +00:00
Christian Hagedorn
d61f56a300 8342287: C2 fails with "assert(is_IfTrue()) failed: invalid node class: IfFalse" due to Template Assertion Predicate with two UCTs
Reviewed-by: kvn, thartmann
2024-10-21 06:28:40 +00:00
Dean Long
c89f76c0b9 8332644: Improve graph optimizations
Co-authored-by: Martin Balao <mbalao@redhat.com>
Co-authored-by: Francisco Ferrari Bihurriet <fferrari@redhat.com>
Reviewed-by: epeter, ahgross, thartmann, rhalade, dlong, roland
2024-10-15 17:04:27 +05:30
Roland Westrelin
ecc77a5b4a 8336702: C2 compilation fails with "all memory state should have been processed" assert
Reviewed-by: thartmann, chagedorn
2024-10-09 14:57:37 +00:00
Christian Hagedorn
3fba1702cd 8340786: Introduce Predicate classes with predicate iterators and visitors for simplified walking
Reviewed-by: roland, thartmann
2024-10-09 11:42:22 +00:00
Daniel Skantz
d3f3c6a8cd 8330157: C2: Add a stress flag for bailouts
Reviewed-by: chagedorn, thartmann
2024-10-09 07:01:23 +00:00
Christian Hagedorn
1dd60b62e3 8323688: C2: Fix UB of jlong overflow in PhaseIdealLoop::is_counted_loop()
Reviewed-by: thartmann, kvn
2024-09-24 06:47:20 +00:00
Roland Westrelin
e203df46fa 8338100: C2: assert(!n_loop->is_member(get_loop(lca))) failed: control must not be back in the loop
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Reviewed-by: chagedorn, thartmann
2024-09-05 15:51:27 +00:00
Andrew Dinn
ab509f1b98 8337654: Relocate uncommon trap stub from SharedRuntime to OptoRuntime
Reviewed-by: kvn, vlivanov, fyang
2024-08-06 13:22:55 +00:00
Tobias Hartmann
657c0bddf9 8336999: Verification for resource area allocated data structures in C2
Reviewed-by: chagedorn, kvn
2024-07-29 05:31:10 +00:00
Roland Westrelin
0ddf54e222 8335709: C2: assert(!loop->is_member(get_loop(useblock))) failed: must be outside loop
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Reviewed-by: epeter, thartmann
2024-07-19 07:30:23 +00:00