192 Commits

Author SHA1 Message Date
Vladimir Kozlov
0c07aaa7ae 8383420: SIGSEGV in PhaseChaitin::gather_lrg_masks
Reviewed-by: dlong, qamai
2026-04-30 04:14:41 +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
Quan Anh Mai
0acc1d1e4f 8377163: C2: Iteration split must take into consideration sunk stores
Reviewed-by: chagedorn, dfenacci
2026-04-13 06:55:13 +00:00
Guanqiang Han
caf37add7a 8374789: C2: refactor GraphKit code that create AddP nodes for raw memory to use helper method
Reviewed-by: chagedorn, qamai
2026-03-23 08:11:22 +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
Damon Fenacci
bfd5bdaf7f 8374582: [REDO] Move input validation checks to Java for java.lang.StringCoding intrinsics
Co-authored-by: Volkan Yazici <vyazici@openjdk.org>
Reviewed-by: chagedorn, thartmann, vyazici
2026-02-06 07:44:25 +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
Roland Westrelin
e6546683a8 8327963: C2: fix construction of memory graph around Initialize node to prevent incorrect execution if allocation is removed
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Co-authored-by: Roberto Castañeda Lozano <rcastanedalo@openjdk.org>
Reviewed-by: epeter, rcastanedalo
2025-11-04 11:17:56 +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
Benoît Maillard
7231916754 8364757: Missing Store nodes caused by bad wiring in PhaseIdealLoop::insert_post_loop
Reviewed-by: mhaessig, roland
2025-10-03 10:40:50 +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
Saranya Natarajan
805f1deebc 8342941: IGV: Add various new graph dumps during loop opts
Reviewed-by: chagedorn, dlunden
2025-07-16 07:44:57 +00:00
Manuel Hässig
9ae39b62b9 8355276: Sort C2 includes
Reviewed-by: kvn, thartmann
2025-06-23 07:47:17 +00:00
Marc Chevalier
4b9290af0a 8356647: C2: Excessively strict assert in PhaseIdealLoop::do_unroll
Reviewed-by: chagedorn, epeter, dlong
2025-05-28 13:26:15 +00:00
Roland Westrelin
26cb016b75 8350329: C2: Div looses dependency on condition that guarantees divisor not zero in counted loop after peeling
Reviewed-by: thartmann, chagedorn
2025-05-19 11:06:03 +00:00
Marc Chevalier
0d8675780f 8355488: Add stress mode for C2 loop peeling
Reviewed-by: thartmann, chagedorn
2025-05-16 11:32:01 +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
Christian Hagedorn
25925138b0 8350577: Fix missing Assertion Predicates when splitting loops
Reviewed-by: epeter, kvn
2025-03-31 07:38:53 +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
c953e0ede1 8350579: Remove Template Assertion Predicates belonging to a loop once it is folded away
Reviewed-by: epeter, roland
2025-03-25 11:58:28 +00:00
Roberto Castañeda Lozano
de580090cd 8351468: C2: array fill optimization assigns wrong type to intrinsic call
Reviewed-by: epeter, thartmann, qamai
2025-03-24 11:05:46 +00:00
Saranya Natarajan
9c00331465 8330469: C2: Remove or change "PrintOpto && VerifyLoopOptimizations" as printing code condition
Reviewed-by: chagedorn, rcastanedalo
2025-03-13 11:02:44 +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
Stefan Karlsson
c33c1cfe73 8347909: Automatic precompiled.hpp inclusion
Reviewed-by: lkorinth, erikj, dholmes, ihse
2025-01-21 10:21:24 +00:00
Christian Hagedorn
8a83dc213a 8347018: C2: Insertion of Assertion Predicates ignores the effects of PhaseIdealLoop::clone_up_backedge_goo()
Reviewed-by: epeter, kvn
2025-01-20 12:24:33 +00:00
Christian Hagedorn
3518b4bd20 8344171: Clone and initialize Assertion Predicates in order instead of in reverse-order
Reviewed-by: epeter, kvn
2024-12-16 06:21:22 +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
Roland Westrelin
d9a22139fb 8345299: C2: some nodes can still have incorrect control after do_range_check()
Reviewed-by: chagedorn, kvn
2024-12-06 09:18:46 +00:00
Christian Hagedorn
08dfc4a42e 8344213: Cleanup OpaqueLoop*Node verification code for Assertion Predicates
Reviewed-by: thartmann, epeter
2024-11-25 16:46:44 +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
3727f40461 8343745: Only update Last Value Assertion Predicates in Loop Unrolling
Reviewed-by: thartmann, kvn
2024-11-12 10:11:55 +00:00
Christian Hagedorn
5f338e9adb 8342946: Replace predicate walking code in Loop Unrolling with a predicate visitor
Reviewed-by: roland, kvn
2024-11-11 06:18:25 +00:00
Roland Westrelin
a10b1ccd37 8340532: C2: assert(is_OuterStripMinedLoop()) failed: invalid node class: IfTrue
Reviewed-by: chagedorn, kvn
2024-11-08 07:51:58 +00:00
Christian Hagedorn
4431852a88 8342943: Replace predicate walking and cloning code for main/post loops with a predicate visitor
Reviewed-by: roland, kvn
2024-11-06 06:10:01 +00:00
Christian Hagedorn
63c19d3db5 8341977: Replace predicate walking and cloning code for Loop Peeling with a predicate visitor
Reviewed-by: kvn, epeter
2024-10-30 06:11:06 +00:00
Christian Hagedorn
7131f053b0 8342043: Split Opaque4Node into OpaqueTemplateAssertionPredicateNode and OpaqueNotNullNode
Reviewed-by: kvn, roland
2024-10-23 08:00:42 +00:00
Roland Westrelin
8f2b23bb53 8341407: C2: assert(main_limit == cl->limit() || get_ctrl(main_limit) == new_limit_ctrl) failed: wrong control for added limit
Reviewed-by: chagedorn, thartmann
2024-10-21 07:37:01 +00:00
Christian Hagedorn
22a1feea74 8341328: Refactor initial Assertion Predicate creation into separate classes
Reviewed-by: thartmann, kvn
2024-10-17 05:08:59 +00:00
Roberto Castañeda Lozano
16042556f3 8341619: C2: remove unused StoreCM node
Reviewed-by: chagedorn, thartmann, kvn
2024-10-10 08:34:10 +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
Roland Westrelin
315abdf8c8 8339733: C2: some nodes can have incorrect control after do_range_check()
Reviewed-by: chagedorn, thartmann
2024-09-12 07:19:54 +00:00
Roland Westrelin
3a88fd437d 8334724: C2: remove PhaseIdealLoop::cast_incr_before_loop()
Reviewed-by: chagedorn, kvn
2024-09-03 06:58:29 +00:00
Christian Hagedorn
be34730fb4 8335257: Refactor code to create Initialized Assertion Predicates into separate class
Reviewed-by: kvn, epeter
2024-08-05 09:52:07 +00:00
Roland Westrelin
f61a505989 8334647: C2: CastII added by PhaseIdealLoop::add_template_assertion_predicate() should have control
Reviewed-by: chagedorn, kvn
2024-07-25 15:45:41 +00:00
Roland Westrelin
3baff2af6a 8335393: C2: assert(!had_error) failed: bad dominance
Reviewed-by: thartmann, chagedorn
2024-07-25 09:26:11 +00:00