Tobias Hartmann
83fa552806
8389354: [lworld] PhaseIdealLoop::move_flat_array_check_out_of_loop creates anti-dependence cycle
...
Reviewed-by: qamai, chagedorn
2026-08-03 13:12:17 +00:00
David Simms
cc278dbb8a
8389219: Implement JEP 401: Value Objects (Preview)
...
8389220: Implement JEP 539: Strict Field Initialization in the JVM (Preview)
Co-authored-by: David Simms <dsimms@openjdk.org>
Co-authored-by: Dan Smith <dlsmith@openjdk.org>
Co-authored-by: Frederic Parain <fparain@openjdk.org>
Co-authored-by: Tobias Hartmann <thartmann@openjdk.org>
Co-authored-by: Roger Riggs <rriggs@openjdk.org>
Co-authored-by: Vicente Romero <vromero@openjdk.org>
Co-authored-by: Axel Boldt-Christmas <aboldtch@openjdk.org>
Co-authored-by: Karen Kinnear <acorn@openjdk.org>
Co-authored-by: Alex Menkov <amenkov@openjdk.org>
Co-authored-by: Bill Huang <bhuang@openjdk.org>
Co-authored-by: Benoît Maillard <bmaillard@openjdk.org>
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Co-authored-by: Chris Plummer <cjplummer@openjdk.org>
Co-authored-by: Casper Norrbin <cnorrbin@openjdk.org>
Co-authored-by: Coleen Phillimore <coleenp@openjdk.org>
Co-authored-by: David Beaumont <dbeaumont@openjdk.org>
Co-authored-by: Daniel D. Daugherty <dcubed@openjdk.org>
Co-authored-by: Damon Fenacci <dfenacci@openjdk.org>
Co-authored-by: David Holmes <dholmes@openjdk.org>
Co-authored-by: Dmitry Samersoff <dsamersoff@openjdk.org>
Co-authored-by: Eric Caspole <ecaspole@openjdk.org>
Co-authored-by: Evgeny Nikitin <enikitin@openjdk.org>
Co-authored-by: Ekaterina Pavlova <epavlova@openjdk.org>
Co-authored-by: Fei Yang <fyang@openjdk.org>
Co-authored-by: Dan Heidinga <heidinga@openjdk.org>
Co-authored-by: Harold Seigel <hseigel@openjdk.org>
Co-authored-by: Ioi Lam <iklam@openjdk.org>
Co-authored-by: Ivan Walulya <iwalulya@openjdk.org>
Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org>
Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Co-authored-by: Jim Laskey <jlaskey@openjdk.org>
Co-authored-by: John R Rose <jrose@openjdk.org>
Co-authored-by: Joel Sikström <jsikstro@openjdk.org>
Co-authored-by: Lois Foltan <lfoltan@openjdk.org>
Co-authored-by: Chen Liang <liach@openjdk.org>
Co-authored-by: Leonid Mesnik <lmesnik@openjdk.org>
Co-authored-by: Matias Saavedra Silva <matsaave@openjdk.org>
Co-authored-by: Marc Chevalier <mchevalier@openjdk.org>
Co-authored-by: Mandy Chung <mchung@openjdk.org>
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Co-authored-by: Markus Grönlund <mgronlun@openjdk.org>
Co-authored-by: Manuel Hässig <mhaessig@openjdk.org>
Co-authored-by: Nick Gasson <ngasson@openjdk.org>
Co-authored-by: Patricio Chilano Mateo <pchilanomate@openjdk.org>
Co-authored-by: Paul Hübner <phubner@openjdk.org>
Co-authored-by: Paul Sandoz <psandoz@openjdk.org>
Co-authored-by: Quan Anh Mai <qamai@openjdk.org>
Co-authored-by: Roberto Castañeda Lozano <rcastanedalo@openjdk.org>
Co-authored-by: Roland Westrelin <roland@openjdk.org>
Co-authored-by: Srikanth Adayapalam <sadayapalam@openjdk.org>
Co-authored-by: Aleksey Shipilev <shade@openjdk.org>
Co-authored-by: Stefan Johansson <sjohanss@openjdk.org>
Co-authored-by: Sergey Kuksenko <skuksenko@openjdk.org>
Co-authored-by: Serguei Spitsyn <sspitsyn@openjdk.org>
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Co-authored-by: Thomas Stuefe <stuefe@openjdk.org>
Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org>
Co-authored-by: Zoltan Majo <zmajo@openjdk.org>
Co-authored-by: Alan Bateman <alanb@openjdk.org>
Co-authored-by: Jaikiran Pai <jpai@openjdk.org>
Co-authored-by: Martin Doerr <mdoerr@openjdk.org>
Co-authored-by: Richard Reingruber <rrich@openjdk.org>
Co-authored-by: Feilong Jiang <fjiang@openjdk.org>
Co-authored-by: Daisuke Yamazaki <dyama@openjdk.org>
Reviewed-by: mcimadamore, liach, darcy, dcubed, aboldtch, coleenp, iklam, jlahoda, dlong, jpai, vklang, heidinga, sspitsyn, cjplummer
2026-07-31 00:45:12 +00:00
Roland Westrelin
5b3456ce70
8388406: [BACKOUT] C2: crash in compiled code due to zero division because of widened CastII
...
Reviewed-by: thartmann, chagedorn
2026-07-17 15:02:34 +00:00
Roland Westrelin
d6899460c7
8380166: C2: crash in compiled code due to zero division because of widened CastII
...
Reviewed-by: qamai, chagedorn
2026-07-15 09:25:58 +00:00
Quan Anh Mai
c3c59413be
8378966: C2: PhaseIdealLoop::pin_nodes_dependent_on must not be called with nullptr
...
Reviewed-by: chagedorn, aseoane
2026-04-17 14:09:07 +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
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
Michael Reeves
d0e62e114c
8351847: C2: Add "TraceSplitIf" flag to get more information about the optimization in Split-If
...
Reviewed-by: chagedorn, dfenacci
2026-03-19 07:44:30 +00:00
Kangcheng Xu
e0fa3d2f81
8353290: C2: Refactor PhaseIdealLoop::is_counted_loop()
...
Reviewed-by: chagedorn, roland
2026-03-16 14:11:27 +00:00
Quan Anh Mai
8b13fe31d0
8347365: C2: Fix the handling of depends_only_on_test
...
Reviewed-by: mhaessig, roland
2026-02-18 09:29:02 +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
Roland Westrelin
0d1d4d07b9
8374725: C2: assert(x_ctrl == get_late_ctrl_with_anti_dep(x->as_Load(), early_ctrl, x_ctrl)) failed: anti-dependences were already checked
...
Reviewed-by: chagedorn, qamai, dfenacci
2026-01-22 12:09:11 +00:00
Roland Westrelin
6ae3e06435
8373508: C2: sinking CreateEx out of loop breaks the graph
...
Reviewed-by: chagedorn, dlong
2026-01-05 14:02:41 +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
Christian Hagedorn
275cb9f287
8360510: C2: Template Assertion Predicates are not cloned to the inner counted loop with -XX:+StressDuplicateBackedge
...
Reviewed-by: epeter, roland
2025-11-26 07:55:43 +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
Emanuel Peter
75e37b06c3
8370332: C2 SuperWord: SIGSEGV because PhaseIdealLoop::split_thru_phi left dead nodes in loop _body
...
Reviewed-by: chagedorn, roland
2025-11-04 07:39:11 +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
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
Roland Westrelin
f8ba02f229
8361702: C2: assert(is_dominator(compute_early_ctrl(limit, limit_ctrl), pre_end)) failed: node pinned on loop exit test?
...
Reviewed-by: epeter, chagedorn, mhaessig
2025-09-15 18:13:09 +00:00
Christian Hagedorn
ceacf6f785
8366890: C2: Split through phi printing with TraceLoopOpts misses line break
...
Reviewed-by: rcastanedalo, mhaessig, epeter
2025-09-05 15:26:13 +00:00
Manuel Hässig
626bea80ab
8356176: C2 MemorySegment: missing RCE with byteSize() in Loop Exit Check inside the for Expression
...
Co-authored-by: Quan Anh Mai <qamai@openjdk.org>
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Co-authored-by: Tobias Hartmann <thartmann@openjdk.org>
Reviewed-by: epeter, qamai
2025-08-19 06:37:52 +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
Roland Westrelin
a2f99fd88b
8354383: C2: enable sinking of Type nodes out of loop
...
Reviewed-by: chagedorn, thartmann
2025-06-10 14:19:19 +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
Christian Hagedorn
b47b2062a2
8355674: C2: Partial Peeling should not introduce Phi nodes above OpaqueInitializedAssertionPredicate nodes
...
Reviewed-by: epeter, thartmann
2025-05-08 11:33:31 +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
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
Hamlin Li
d1cf232893
8352248: Check if CMoveX is supported
...
Reviewed-by: chagedorn, luhenry, rehn
2025-03-21 12:08:53 +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
19b9f11c2e
8351392: C2 crash: failed: Expected Bool, but got OpaqueMultiversioning
...
Reviewed-by: thartmann, kvn, vlivanov, chagedorn
2025-03-10 09:44:42 +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
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
Quan Anh Mai
aa21de566d
8347481: C2: Remove the control input of some nodes
...
Reviewed-by: dfenacci, vlivanov, kvn
2025-01-17 02:05:14 +00:00
theoweidmannoracle
d381d581bf
8332268: C2: Add missing optimizations for UDivI/L and UModI/L and unify the shared logic with the signed nodes
...
Reviewed-by: chagedorn, thartmann, epeter, qamai
2024-12-11 14:30:59 +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
08dfc4a42e
8344213: Cleanup OpaqueLoop*Node verification code for Assertion Predicates
...
Reviewed-by: thartmann, epeter
2024-11-25 16:46:44 +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
004aaea76d
8342330: C2: "node pinned on loop exit test?" assert failure
...
Reviewed-by: chagedorn, thartmann
2024-10-22 11:19:21 +00:00
Quan Anh Mai
7276a1bec0
8341784: Refactor TypeVect to use a BasicType instead of a const Type*
...
Reviewed-by: kvn, jkarthikeyan
2024-10-11 15:28:15 +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
Roland Westrelin
ce83f6af64
8338844: C2: remove useless code in PhaseIdealLoop::place_outside_loop() after 8335709
...
Reviewed-by: chagedorn, thartmann
2024-08-26 07:32:19 +00:00
Roland Westrelin
0c14579fef
8336830: C2: assert(get_loop(lca)->_nest < n_loop->_nest || lca->in(0)->is_NeverBranch()) failed: must not be moved into inner loop
...
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Reviewed-by: thartmann, chagedorn, epeter
2024-08-26 07:31:04 +00:00
Christian Hagedorn
55a97ec879
8336729: C2: Div/Mod nodes without zero check could be split through iv phi of outer loop of long counted loop nest resulting in SIGFPE
...
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Reviewed-by: epeter, kvn, thartmann
2024-08-20 15:47:16 +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