61 Commits

Author SHA1 Message Date
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
Roland Westrelin
ef266d77b6 8278296: Generalize long range check transformation
Reviewed-by: jrose, thartmann
2022-03-07 16:26:19 +00:00
Emanuel Peter
395bc141f2 8281732: add assert for non-NULL assumption for return of unique_ctrl_out
Reviewed-by: kvn, chagedorn, thartmann
2022-02-16 16:19:44 +00:00
Emanuel Peter
68b40ec286 8273139: C2: assert(f <= 1 && f >= 0) failed: Incorrect frequency
Reviewed-by: thartmann, chagedorn, roland
2022-01-19 11:47:17 +00:00
Roland Westrelin
8d1a1e83f4 8278228: C2: Improve identical back-to-back if elimination
Reviewed-by: chagedorn, kvn
2022-01-10 07:52:18 +00:00
Roland Westrelin
5dcdee4bcd 8262341: Refine identical code in AddI/LNode.
Reviewed-by: thartmann, eliu
2021-12-08 07:55:12 +00:00
Christian Hagedorn
01cb2b9883 8277529: SIGSEGV in C2 CompilerThread Node::rematerialize() compiling Packet::readUnsignedTrint
Reviewed-by: thartmann, roland, kvn
2021-12-03 17:14:10 +00:00
Yi Yang
fecf906f0a 8267928: Loop predicate gets inexact loop limit before PhaseIdealLoop::rc_predicate
Reviewed-by: thartmann, chagedorn, kvn
2021-11-30 11:50:51 +00:00
Roland Westrelin
3e798dd40c 8275330: C2: assert(n->is_Root() || n->is_Region() || n->is_Phi() || n->is_MachMerge() || def_block->dominates(block)) failed: uses must be dominated by definitions
Reviewed-by: thartmann, chagedorn
2021-11-26 09:48:09 +00:00
Nils Eliasson
710f496456 8273277: C2: Move conditional negation into rc_predicate
Reviewed-by: thartmann, chagedorn, kvn
2021-11-12 10:08:26 +00:00
Roland Westrelin
82f4aacb42 8259609: C2: optimize long range checks in long counted loops
Co-authored-by: John R Rose <jrose@openjdk.org>
Reviewed-by: thartmann, jrose
2021-10-26 15:53:37 +00:00
Christian Hagedorn
c86e24d4be 8271954: C2: assert(false) failed: Bad graph detected in build_loop_late
Reviewed-by: roland, kvn
2021-09-16 11:57:30 +00:00
casparcwang
16c3ad1ff4 8272574: C2: assert(false) failed: Bad graph detected in build_loop_late
Co-authored-by: Hui Shi <hshi@openjdk.org>
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: thartmann, chagedorn, kvn
2021-09-14 20:55:01 +00:00
Christian Hagedorn
aec037721c 8257498: Remove useless skeleton predicates
Reviewed-by: roland, thartmann
2021-02-01 09:39:31 +00:00
Christian Hagedorn
1d0adbb812 8253644: C2: assert(skeleton_predicate_has_opaque(iff)) failed: unexpected
Reviewed-by: roland, kvn
2020-12-08 08:48:58 +00:00
Roland Westrelin
3d460bd295 8256655: rework long counted loop handling
Reviewed-by: kvn, thartmann, vlivanov
2020-12-01 07:30:51 +00:00
Tobias Hartmann
eb85b8da32 8255665: C2 should aggressively remove temporary hook nodes
Reviewed-by: chagedorn, kvn
2020-11-05 08:02:47 +00:00
Roland Westrelin
b1e2f026d9 8253524: C2: Refactor code that clones predicates during loop unswitching
Reviewed-by: chagedorn, kvn, thartmann
2020-09-24 10:00:33 +00:00
Roland Westrelin
3fe5886baf 8252696: Loop unswitching may cause out of bound array load to be executed
Reviewed-by: neliasso, chagedorn
2020-09-23 07:34:56 +00:00
Mikael Vidstedt
1f5e21a16e Merge 2020-07-15 21:24:39 -07:00
Roland Westrelin
b67814941f 8229495: SIGILL in C2 generated OSR compilation
Reviewed-by: kvn, chagedorn
2020-07-01 17:28:49 +02:00
Christian Hagedorn
840867efa6 8247218: Add default constructor to VectorSet to use Thread::current()->resource_area() as arena by default
Add a default construction to VectorSet and clean up uses of the old constructor.

Reviewed-by: kvn, thartmann
2020-06-29 17:14:19 +02:00
Roland Westrelin
9c99008aff 8245714: "Bad graph detected in build_loop_late" when loads are pinned on loop limit check uncommon branch
Reviewed-by: thartmann
2020-05-28 13:21:54 +02:00
Roland Westrelin
57388f807f 8244504: C2: refactor counted loop code in preparation for long counted loop
Reviewed-by: jrose, thartmann
2020-05-28 14:34:01 +02:00
Christian Hagedorn
c01e986cc9 8237859: C2: Crash when loads float above range check
Fix control edges of predicates to data nodes when creating pre/main/post loops.

Reviewed-by: neliasso, thartmann, roland
2020-03-25 14:41:52 +01:00
Christian Hagedorn
a51dd58f38 8240227: Loop predicates should be copied to unswitched loops
Copy loop range check predicates to unswitched loops and update their control edges.

Reviewed-by: kvn, neliasso, thartmann, roland
2020-03-19 10:15:28 +01:00
Roland Westrelin
995fae6d4b 8235584: UseProfiledLoopPredicate fails with assert(_phase->get_loop(c) == loop) failed: have to be in the same loop
Reviewed-by: thartmann, neliasso
2020-01-10 17:50:51 +01:00
Goetz Lindenmaier
51abf67ce1 8235998: [c2] Memory leaks during tracing after '8224193: stringStream should not use Resource Area'
Reviewed-by: dholmes, kvn
2019-12-16 14:10:20 +01:00
Tobias Hartmann
642d2ddcbc 8235452: Strip mined loop verification fails with assert(is_OuterStripMinedLoop()) failed: invalid node class
Do not try to verify strip mining if the strip mined loop is malformed.

Reviewed-by: roland, vlivanov
2019-12-11 10:42:44 +01:00
Tobias Hartmann
a03e92201d 8231223: C2's conditional move optimization fails with assert(bol->Opcode() == Op_Bool) failed
Bail out if the range check If has an Opaque4Node input instead of a BoolNode.

Reviewed-by: roland, kvn
2019-09-26 09:16:08 +02:00
Roland Westrelin
9b81fe37f2 8230470: Shenandoah doesn't need change from JDK-8212610 anymore
Reviewed-by: thartmann
2019-09-03 09:28:42 +02:00
Roman Kennke
03ab1404f0 8221766: Load-reference barriers for Shenandoah
Reviewed-by: kvn, erikj, aph, shade
2019-04-02 23:00:22 +02:00
Vladimir Ivanov
731e728ece 8215757: C2: PhaseIdealLoop::create_new_if_for_predicate() computes wrong IDOM
Reviewed-by: kvn, roland
2019-01-15 16:41:17 -08:00
Roland Westrelin
6bbfc1d2a8 8216135: C2 assert(!had_error) failed: bad dominance
Reviewed-by: thartmann, kvn
2019-01-14 15:07:22 +01:00
Roman Kennke
8b62a2ee9d 8214259: Implementation: JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
Co-authored-by: Christine Flood <chf@redhat.com>
Co-authored-by: Aleksey Shipilev <shade@redhat.com>
Co-authored-by: Roland Westrelin <rwestrel@redhat.com>
Co-authored-by: Zhenygu Gu <zgu@redhat.com>
Co-authored-by: Andrew Haley <aph@redhat.com>
Co-authored-by: Andrew Dinn <adinn@redhat.com>
Co-authored-by: Mario Torre <mtorre@redhat.com>
Reviewed-by: kvn, roland, shade, coleenp, lmesnik, pliden, jgeorge, ihse, erikj
2018-12-10 15:47:44 +01:00
Roland Westrelin
8f4456e77a 8211451: ~2.5% regression on compression benchmark starting with 12-b11
Reviewed-by: kvn, thartmann
2018-11-08 10:20:04 +01:00
Roland Westrelin
9429c17b35 8205574: Loop predication "assert(f <= 1 && f >= 0) failed Incorrect frequency"
Reviewed-by: kvn
2018-11-09 10:52:15 +01:00