241 Commits

Author SHA1 Message Date
Emanuel Peter
d22f5c54b5 8386591: C2: wrong result because of broken truncation check in CountedLoopConverter::TruncatedIncrement::build
Reviewed-by: roland, kvn, qamai
2026-06-19 06:55:12 +00:00
Emanuel Peter
b9f7bd2be8 8386482: C2 CountedLoopConverter::filtered_type_from_dominators: assert(_base == Int) failed: Not an Int
Reviewed-by: kvn, qamai
2026-06-15 07:08:29 +00:00
Stefan Karlsson
abd3d46204 8382401: Remove return type parameters from FREE_ and REALLOC_ macros
Reviewed-by: tschatzl, dholmes
2026-04-20 08:42:08 +00:00
Vladimir Ivanov
121165ec91 8290892: C2: Intrinsify Reference.reachabilityFence
Co-authored-by: Tobias Holenstein <tholenstein@openjdk.org>
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: dlong, epeter
2026-04-13 16:49:57 +00:00
Kerem Kat
3f6271b2b9 8375442: C2: Notify nodes that inspect the graph deeply of changes far away during IGVN
Reviewed-by: qamai, aseoane
2026-04-01 00:10:02 +00:00
Kerem Kat
22831cb0d8 8378005: Exclude boxing calls from guaranteed safepoint check in loop opts
Reviewed-by: mhaessig, chagedorn
2026-03-26 14:15:11 +00:00
Saranya Natarajan
46e6b26bf8 8372646: C2: Stress Counted Loop creation
Reviewed-by: rcastanedalo, chagedorn, dfenacci
2026-03-25 12:47:41 +00:00
Ashay Rane
766959f884 8371685: C2: Add flag to disable Loop Peeling
Reviewed-by: chagedorn, snatarajan, roland
2026-03-18 15:15:12 +00:00
Kangcheng Xu
e0fa3d2f81 8353290: C2: Refactor PhaseIdealLoop::is_counted_loop()
Reviewed-by: chagedorn, roland
2026-03-16 14:11:27 +00:00
Roland Westrelin
176422b885 8370519: C2: Hit MemLimit when running with +VerifyLoopOptimizations
Co-authored-by: Benoît Maillard <bmaillard@openjdk.org>
Reviewed-by: mhaessig, bmaillard, epeter
2026-02-02 11:43:30 +00:00
Roland Westrelin
b2cd3b0d48 8350330: C2: PhaseIdealLoop::add_parse_predicate() should mirror GraphKit::add_parse_predicate()
Reviewed-by: chagedorn, qamai
2026-01-28 08:00:11 +00:00
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