135 Commits

Author SHA1 Message Date
Marc Chevalier
e5a73b38e7 Re-enable 2026-07-31 13:04:02 +02:00
Marc Chevalier
10c67c9d18 disable 2026-07-31 13:04:02 +02: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
Eric Fang
436d291a1c 8370863: VectorAPI: Optimize the VectorMaskCast chain in specific patterns
Reviewed-by: xgong, vlivanov, galder
2026-04-15 08:24:51 +00:00
Anton Seoane Ampudia
c267c84ff6 8358766: Improve detection of changes to print IGVN steps
Reviewed-by: qamai, bmaillard, krk
2026-04-07 11:27:18 +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
Ozan Cetin
1b81d0ac1d 8379544: C2: URShiftI Ideal optimization opportunity for - 3rd level notification required
Reviewed-by: qamai, dfenacci
2026-03-13 15:46:41 +00:00
Kerem Kat
c6afd3ced6 8379460: C2: Notify AddI/AddL to URShiftI/URShiftL users
Reviewed-by: qamai, dfenacci, mchevalier
2026-03-12 09:24:55 +00:00
Kerem Kat
12af936ae4 8377986: C2: New method to add specific users to the worklist
Reviewed-by: qamai, mchevalier, dfenacci, bmaillard
2026-03-04 13:21:27 +00:00
Kerem Kat
329e14b074 8375688: C2: Missed Ideal optimization opportunity with VectorMaskToLong and -XX:+StressIncrementalInlining
Reviewed-by: qamai, dfenacci
2026-03-04 10:56:49 +00:00
Guanqiang Han
6aed0522eb 8373731: C2: Missed optimization opportunity for AddI
Reviewed-by: bmaillard, epeter, dlong
2026-02-25 12:49:45 +00:00
jonghoonpark
f1169f9d61 8377309: Remove PhaseIterGVN::verify_Identity_for exclusion for Min/Max find identity op
Reviewed-by: mhaessig, chagedorn
2026-02-24 12:10:00 +00:00
Kerem Kat
a296129347 8375633: C2: Missed Ideal optimization opportunity with ConvD2F/ConvF2HF and -XX:+StressIncrementalInlining
Reviewed-by: bmaillard, mchevalier, qamai
2026-02-20 11:33:39 +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
Kerem Kat
5a08374494 8374798: C2: Missing Identity optimization opportunity with RShiftI and LShiftI
8377389: C2: Missed Ideal optimization opportunity in PhaseIterGVN for URShiftI and LShiftI

Reviewed-by: qamai, chagedorn
2026-02-16 11:40:51 +00:00
Galder Zamarreño
c032082645 8374896: Min/Max identity optimization opportunities missing for int and long
Reviewed-by: chagedorn, bmaillard
2026-02-12 11:22:48 +00:00
Benoît Maillard
56afb460a0 8375038: C2: Enforce that Ideal() returns the root of the subgraph if any change was made by checking the node hash
Reviewed-by: qamai, mchevalier
2026-02-11 08:27:48 +00:00
Benoît Maillard
7ccf175785 8371536: C2: VerifyIterativeGVN should assert on first detected failure
Reviewed-by: epeter, mhaessig, chagedorn
2026-02-02 10:10:21 +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
Aleksey Shipilev
1b6c2bdd7b 8375055: C2: Better dead loop detection printout
Reviewed-by: chagedorn, qamai
2026-01-14 07:21:25 +00:00
Roland Westrelin
ad29642d8f 8351889: C2 crash: assertion failed: Base pointers must match (addp 344)
Reviewed-by: rcastanedalo, epeter
2025-12-15 16:18:44 +00:00
Aleksey Shipilev
99be0e73ce 8371581: C2: PhaseCCP should reach fixpoint by revisiting deeply-Value-d nodes
Reviewed-by: epeter, vlivanov, qamai
2025-11-24 07:47:13 +00:00
Benoît Maillard
9d6a61fda6 8371558: C2: Missing optimization opportunity in AbsNode::Ideal
Reviewed-by: thartmann, rcastanedalo, chagedorn
2025-11-13 09:24:51 +00:00
Benoît Maillard
f5eacbeb5f 8371534: C2: Missed Ideal optimization opportunity with AndL and URShiftL
Reviewed-by: thartmann, mhaessig
2025-11-11 16:33:15 +00:00
Benoît Maillard
5e8bf7a283 8369646: Detection of redundant conversion patterns in add_users_of_use_to_worklist is too restrictive
Reviewed-by: chagedorn, epeter
2025-11-10 08:39:21 +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
02d7281b93 8367483: C2 crash in PhaseValues::type: assert(t != nullptr) failed: must set before get - missing notification for CastX2P(SubL(x, y))
Reviewed-by: chagedorn, bmaillard
2025-09-12 12:06:18 +00:00
Emanuel Peter
2826d17025 8367243: Format issues with dist dump debug output in PhaseGVN::dead_loop_check
Reviewed-by: thartmann
2025-09-11 05:05:30 +00:00
Fredrik Bredberg
a272696813 8365190: Remove LockingMode related code from share
Reviewed-by: aboldtch, dholmes, ayang, coleenp, lmesnik, rcastanedalo
2025-09-08 10:28:18 +00:00
Francesco Andreuzzi
e606278fc8 8358598: PhaseIterGVN::PhaseIterGVN(PhaseGVN* gvn) doesn't use its parameter
Reviewed-by: galder, mhaessig, shade
2025-08-07 15:43:36 +00:00
Benoît Maillard
28297411b1 8359603: Missed optimization in PhaseIterGVN for redundant ConvX2Y->ConvY2X->ConvX2Y sequences due to missing notification in PhaseIterGVN::add_users_of_use_to_worklist
Reviewed-by: chagedorn, thartmann
2025-07-29 07:32:52 +00:00
Benoît Maillard
62a58062e5 8361700: Missed optimization in PhaseIterGVN for mask and shift patterns due to missing notification in PhaseIterGVN::add_users_of_use_to_worklist
Reviewed-by: thartmann, mchevalier, mhaessig, jkarthikeyan
2025-07-21 07:37:31 +00:00
Christian Hagedorn
a56cd371a2 8349584: Improve compiler processing
Reviewed-by: rhalade, ahgross, epeter, thartmann
2025-07-15 12:02:14 -07:00
Benoît Maillard
a531c9aece 8361144: Strenghten the Ideal Verification in PhaseIterGVN::verify_Ideal_for by comparing the hash of a node before and after Ideal
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Reviewed-by: galder, dfenacci, epeter
2025-07-14 11:40:00 +00:00
Benoît Maillard
c75df634be 8359602: Ideal optimizations depending on input type are missed because of missing notification mechanism from CCP
Reviewed-by: epeter, thartmann
2025-07-03 07:28:11 +00:00
Emanuel Peter
dd68829017 8347273: C2: VerifyIterativeGVN for Ideal and Identity
Reviewed-by: chagedorn, mhaessig
2025-06-12 14:19:08 +00:00
Daniel Lundén
2b32541609 8354767: Test crashed: assert(increase < max_live_nodes_increase_per_iteration) failed: excessive live node increase in single iteration of IGVN: 4470 (should be at most 4000)
Reviewed-by: chagedorn, dfenacci, rcastanedalo, epeter
2025-05-12 09:02:25 +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
Marc Chevalier
6254046f50 8320909: C2: Adapt IGVN's enqueuing logic to match idealization of AndNode with LShift operand
Reviewed-by: epeter, thartmann
2025-04-24 10:27:50 +00:00
Daniel Lundén
24be888d65 8351833: Unexpected increase in live nodes when splitting Phis through MergeMems in PhiNode::Ideal
Reviewed-by: chagedorn, rcastanedalo, kvn
2025-04-15 08:58:02 +00:00
Roland Westrelin
bcac42aabc 8349479: C2: when a Type node becomes dead, make CFG path that uses it unreachable
Reviewed-by: chagedorn, vlivanov
2025-04-10 07:04:15 +00:00
Liam Miller-Cushon
4954a336f8 8350563: C2 compilation fails because PhaseCCP does not reach a fixpoint
Co-authored-by: Matthias Ernst <mernst@google.com>
Reviewed-by: chagedorn, epeter
2025-04-09 20:20:15 +00:00
Roland Westrelin
79bffe2f28 8349361: C2: RShiftL should support all applicable transformations that RShiftI does
Reviewed-by: epeter, chagedorn, jkarthikeyan
2025-03-26 14:37:53 +00:00
Marc Chevalier
2bc4f64c56 8335708: C2: Compile::verify_graph_edges must start at root and safepoints, just like CCP traversal
Reviewed-by: chagedorn, epeter
2025-03-20 15:50:23 +00:00
Marc Chevalier
4109c73a78 8349523: Unused runtime calls to drem/frem should be removed
Reviewed-by: thartmann, kvn, chagedorn
2025-03-03 09:32:54 +00:00
Stefan Karlsson
c33c1cfe73 8347909: Automatic precompiled.hpp inclusion
Reviewed-by: lkorinth, erikj, dholmes, ihse
2025-01-21 10:21:24 +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
Roberto Castañeda Lozano
ec13364cda 8343067: C2: revisit constant-offset AddP chains after successful input idealizations
Reviewed-by: kvn, vlivanov
2024-11-11 10:05:15 +00:00