97 Commits

Author SHA1 Message Date
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
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
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
Manuel Hässig
9ae39b62b9 8355276: Sort C2 includes
Reviewed-by: kvn, thartmann
2025-06-23 07:47:17 +00:00
Christian Hagedorn
a5c9a4dbde 8349032: C2: Parse Predicate refactoring in Loop Unswitching broke fix for JDK-8290850
Reviewed-by: kvn, thartmann
2025-02-24 07:28:05 +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
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
Theo Weidmann
55c6904e8f 8331717: C2: Crash with SIGFPE Because Loop Predication Wrongly Hoists Division Requiring Zero Check
Reviewed-by: chagedorn, qamai, kvn
2025-01-10 08:59:31 +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
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
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
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
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
7131f053b0 8342043: Split Opaque4Node into OpaqueTemplateAssertionPredicateNode and OpaqueNotNullNode
Reviewed-by: kvn, roland
2024-10-23 08:00:42 +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
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
Christian Hagedorn
a5f401f3a8 8334650: Add debug information about whether an Assertion Predicate is for the init or last value
Reviewed-by: roland, kvn
2024-06-26 07:09:50 +00:00
Christian Hagedorn
ca5a438e5a 8334571: Extract control dependency rewiring out of PhaseIdealLoop::dominated_by() into separate method
Reviewed-by: roland, kvn
2024-06-24 08:58:02 +00:00
Roland Westrelin
d7dad50af5 8334544: C2: wrong control assigned in PhaseIdealLoop::clone_assertion_predicate_for_unswitched_loops()
Reviewed-by: chagedorn, thartmann
2024-06-20 07:14:01 +00:00
Christian Hagedorn
c5c0867881 8333252: C2: assert(assertion_predicate_has_loop_opaque_node(iff)) failed: must find OpaqueLoop* nodes
Reviewed-by: kvn, epeter
2024-06-05 15:37:31 +00:00
Christian Hagedorn
2edb6d9813 8330386: Replace Opaque4Node of Initialized Assertion Predicate with new OpaqueInitializedAssertionPredicateNode
Reviewed-by: kvn, roland
2024-05-28 08:12:36 +00:00
Christian Hagedorn
4bbd972cbb 8305638: Renaming and small clean-ups around predicates
Reviewed-by: roland, epeter
2024-05-06 07:48:22 +00:00
Sonia Zaldana Calles
19e46eed58 8331088: Incorrect TraceLoopPredicate output
Reviewed-by: chagedorn, dlong
2024-05-02 01:41:09 +00:00
Roland Westrelin
2ceeb6c001 8328822: C2: "negative trip count?" assert failure in profile predicate code
Reviewed-by: shade, chagedorn
2024-04-11 07:27:33 +00:00
Christian Hagedorn
f26e430899 8327110: Refactor create_bool_from_template_assertion_predicate() to separate class and fix identical cloning cases used for Loop Unswitching and Split If
Reviewed-by: epeter, kvn
2024-04-04 06:04:49 +00:00
Christian Hagedorn
7d8561d56b 8327109: Refactor data graph cloning used in create_new_if_for_predicate() into separate class
Reviewed-by: epeter, thartmann
2024-03-13 13:58:47 +00:00
Christian Hagedorn
c1a568c9c4 8314307: Improve loop handling
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Co-authored-by: Roland Westrelin <rwestrel@redhat.com>
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Reviewed-by: mschoene, rhalade, thartmann, epeter
2024-01-16 05:55:56 +00:00
Roland Westrelin
b922f8d459 8319793: C2 compilation fails with "Bad graph detected in build_loop_late" after JDK-8279888
Reviewed-by: chagedorn, epeter
2024-01-11 09:00:44 +00:00
Kim Barrett
122bc7770e 8322758: Eliminate -Wparentheses warnings in C2 code
Reviewed-by: aph, kvn
2024-01-02 22:32:58 +00:00
Daniel Lundén
701bc3bbbe 8295166: IGV: dump graph at more locations
Reviewed-by: thartmann, rcastanedalo, chagedorn
2023-12-08 11:08:08 +00:00
Christian Hagedorn
4b445753e6 8305637: Remove Opaque1 nodes for Parse Predicates and clean up useless predicate elimination
Reviewed-by: roland, kvn
2023-09-05 12:45:55 +00:00
Christian Hagedorn
1de5bf1ce9 8314106: C2: assert(is_valid()) failed: must be valid after JDK-8305636
Reviewed-by: thartmann, kvn
2023-08-14 08:14:42 +00:00
Christian Hagedorn
dc01604756 8305636: Expand and clean up predicate classes and move them into separate files
Reviewed-by: thartmann, roland
2023-08-07 09:14:16 +00:00
Christian Hagedorn
7dbdad50a6 8308892: Bad graph detected in build_loop_late after JDK-8305635
Reviewed-by: rcastanedalo, roland, thartmann
2023-06-02 12:00:11 +00:00
Christian Hagedorn
dfd3da3f52 8307683: Loop Predication should not hoist range checks with trap on success projection by negating their condition
Reviewed-by: thartmann, roland
2023-06-01 08:04:45 +00:00
Christian Hagedorn
4f096eb7c9 8305635: Replace Parse Predicate IfNode with new ParsePredicateNode and route predicate queries through dedicated classes
Reviewed-by: thartmann, kvn
2023-05-25 09:40:19 +00:00
Emanuel Peter
41beb448d2 8308084: C2 fix idom bug in PhaseIdealLoop::create_new_if_for_predicate
Reviewed-by: chagedorn, thartmann, kvn
2023-05-22 06:26:55 +00:00
Christian Hagedorn
19c8c30d1c 8305634: Renaming predicates, simple cleanups, and adding summary about current predicates
Reviewed-by: epeter, thartmann, roland
2023-05-16 13:30:07 +00:00
Johan Sjölen
5726d31e56 8301074: Replace NULL with nullptr in share/opto/
Reviewed-by: kvn, jwilhelm
2023-03-09 20:28:26 +00:00
Emanuel Peter
fabda24696 8296389: C2: PhaseCFG::convert_NeverBranch_to_Goto must handle both orders of successors
Reviewed-by: thartmann, chagedorn
2022-12-12 12:11:02 +00:00
Christian Hagedorn
49b86224aa 8290850: C2: create_new_if_for_predicate() does not clone pinned phi input nodes resulting in a broken graph
Reviewed-by: thartmann, kvn
2022-12-08 11:23:42 +00:00
Christian Hagedorn
0bd04a6589 8297951: C2: Create skeleton predicates for all If nodes in loop predication
Reviewed-by: thartmann, kvn
2022-12-06 07:18:44 +00:00
Johan Sjölen
b38bed6d0e 8294308: Allow dynamically choosing the MEMFLAGS of a type without ResourceObj
Reviewed-by: coleenp, stefank, kbarrett
2022-10-07 11:06:57 +00:00
Emanuel Peter
83abfa5d82 8255670: Improve C2's detection of modified nodes
Reviewed-by: kvn, thartmann, roland
2022-09-22 07:44:50 +00:00
Roland Westrelin
590337e2f2 8286625: C2 fails with assert(!n->is_Store() && !n->is_LoadStore()) failed: no node with a side effect
Reviewed-by: thartmann, chagedorn
2022-06-08 06:35:28 +00:00
Emanuel Peter
199832a710 8283466: C2: missing skeleton predicates in peeled loop
Reviewed-by: roland, chagedorn
2022-06-02 06:49:23 +00:00
Roland Westrelin
32593df392 8279888: Local variable independently used by multiple loops can interfere with loop optimizations
Co-authored-by: Claes Redestad <redestad@openjdk.org>
Reviewed-by: thartmann, kvn
2022-04-25 09:30:00 +00:00
Magnus Ihse Bursie
4594696f54 8284903: Fix typos in hotspot
Reviewed-by: cjplummer, coleenp, kvn, lucy, stefank
2022-04-19 19:10:52 +00:00