Roberto Castañeda Lozano
417e1d1a4e
8259061: C2: assert(found) failed: memory-writing node is not placed in its original loop or an ancestor of it
...
Remove assertion that is too general, that is, it can fail on compilations where
C2 generates correct code otherwise.
Reviewed-by: chagedorn, thartmann, kvn
2021-01-13 07:22:30 +00:00
Xiaohong Gong
1cf2378bda
8259353: VectorReinterpretNode is incorrectly optimized out
...
Reviewed-by: vlivanov, njian
2021-01-13 05:48:08 +00:00
Christian Hagedorn
c1fb521694
8259227: C2 crashes with SIGFPE due to a division that floats above its zero check
...
Reviewed-by: kvn, thartmann
2021-01-07 15:02:45 +00:00
Aleksey Shipilev
ad45678719
8258558: Revert changes for JDK-8252505 and related issues
...
Reviewed-by: kvn
2021-01-06 13:27:57 +00:00
Wang Huang
554e60c400
8258989: JVM is failed to inline in jdk.internal.vm.vector.VectorSupport::convert
...
Co-authored-by: He Xuejin <hexuejin2@huawei.com>
Reviewed-by: vlivanov, thartmann
2021-01-06 01:49:15 +00:00
Roland Westrelin
6775113ce8
8258393: Shenandoah: "graph should be schedulable" assert failure
...
Reviewed-by: rkennke, thartmann
2021-01-05 13:06:54 +00:00
Vladimir Ivanov
772addfd24
8258790: C2: Crash on empty macro node list
...
Reviewed-by: kvn, chagedorn
2020-12-22 12:12:21 +00:00
Roberto Castañeda Lozano
4e8338eb13
8255763: C2: OSR miscompilation caused by invalid memory instruction placement
...
Disable GCM hoisting of memory-writing nodes for irreducible CFGs. This prevents
GCM from wrongly "hoisting" stores into descendants of their original loop. Such
an "inverted hoisting" can happen due to CFGLoop::compute_freq()'s inaccurate
estimation of frequencies for irreducible CFGs.
Extend CFG verification code by checking that memory-writing nodes are placed in
either their original loop or an ancestor.
Add tests for the reducible and irreducible cases. The former was already
handled correctly before the change (the frequency estimation model prevents
"inverted hoisting" for reducible CFGs), and is just added for coverage.
This change addresses the specific miscompilation issue in a conservative way,
for simplicity and safety. Future work includes investigating if only the
illegal blocks can be discarded as candidates for GCM hoisting, and refining
frequency estimation for irreducible CFGs.
Reviewed-by: kvn, chagedorn
2020-12-21 13:04:24 +00:00
Christian Hagedorn
ce36aeaac3
8257822: C2 crashes with SIGFPE due to a division that floats above its zero check
...
Reviewed-by: kvn, thartmann
2020-12-15 15:14:34 +00:00
Dong Bo
026b09cf64
8257483: C2: Split immediate vector rotate from RotateLeftV and RotateRightV nodes
...
Reviewed-by: vlivanov
2020-12-10 12:26:04 +00:00
Roland Westrelin
d93293f31b
8256730: Code that uses Object.checkIndex() range checks doesn't optimize well
...
Reviewed-by: vlivanov, thartmann
2020-12-10 08:09:08 +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
0b6b6eb59a
8257813: [redo] C2: Filter type in PhiNode::Value() for induction variables of trip-counted integer loops
...
Reviewed-by: chagedorn, kvn
2020-12-08 08:30:18 +00:00
Vladimir Ivanov
62c7788b29
8257211: C2: Enable call devirtualization during post-parse phase
...
Reviewed-by: kvn, neliasso, thartmann
2020-12-07 22:50:38 +00:00
Roland Westrelin
f5a582c287
8257575: C2: "failed: only phis" assert failure in loop strip mining verification
...
Reviewed-by: thartmann, neliasso
2020-12-07 09:38:22 +00:00
Aleksey Shipilev
e590618962
8252505: C1/C2 compiler support for blackholes
...
Reviewed-by: vlivanov, aph
2020-12-06 17:43:34 +00:00
Vladimir Kozlov
dd0b9454a2
8257531: Super word not applied to a loop of simple Buffer operations
...
Reviewed-by: roland, psandoz
2020-12-04 19:23:52 +00:00
Roland Westrelin
86b65756cb
8257574: C2: "failed: parsing found no loops but there are some" assert failure
...
Reviewed-by: thartmann, neliasso, chagedorn
2020-12-04 12:01:53 +00:00
Vladimir Ivanov
fbdc1877e2
8257624: C2: PhaseMacroExpand::eliminate_macro_nodes() crashes on out-of-bounds access into macro node array
...
Reviewed-by: neliasso, kvn
2020-12-04 09:37:18 +00:00
Vladimir Ivanov
fd6756ee2b
8257634: C2: Introduce IncrementalInliningForceCleanup diagnostic flag
...
Reviewed-by: kvn, adityam, thartmann
2020-12-04 09:24:08 +00:00
Christian Hagedorn
4a85514963
8257182: JCK test failures in integer / long rotation tests
...
Reviewed-by: mdoerr, vlivanov, thartmann, kvn
2020-12-04 08:10:31 +00:00
Vladimir Ivanov
f33808ffc9
8257631: C2: Assertion failure in ArrayCopyNode::get_count() during late inlining
...
Reviewed-by: neliasso, kvn, thartmann
2020-12-04 07:55:40 +00:00
Vladimir Ivanov
417e7e6317
8257632: C2: Late inlining attempt on a call with a dead memory crashes
...
Reviewed-by: neliasso, kvn, thartmann
2020-12-04 07:55:04 +00:00
Vladimir Ivanov
6845fee905
8257625: C2: Harden input checks in vector intrinsics
...
Reviewed-by: thartmann
2020-12-04 07:54:24 +00:00
Vladimir Ivanov
4390f2c8c3
8257630: C2: ReplacedNodes doesn't handle non-CFG multi nodes
...
Reviewed-by: neliasso, kvn, thartmann
2020-12-04 07:53:17 +00:00
Volker Simonis
d3f3c32282
8255742: PrintInlining as compiler directive doesn't print virtual calls
...
Reviewed-by: thartmann, kvn
2020-12-03 18:02:05 +00:00
Vladimir Kozlov
6c9482eef5
8257561: Some code is not vectorized after 8251925 and 8250607
...
Reviewed-by: chagedorn, vlivanov, thartmann
2020-12-03 17:02:04 +00:00
Tobias Hartmann
129c37700f
8257594: C2 compiled checkcast of non-null object triggers endless deoptimization/recompilation cycle
...
Reviewed-by: roland, vlivanov
2020-12-03 13:42:19 +00:00
Xin Liu
ce496cbda5
8257190: simplify PhaseIdealLoop constructors
...
Currently, C2 has 3 private constructors of PhaseIdealLoop as follows. a-b are for verification. only c is for real loop optimizations.
a. PhaseIdealLoop( PhaseIterGVN &igvn)
b. PhaseIdealLoop(PhaseIterGVN &igvn, const PhaseIdealLoop *verify_me)
c. PhaseIdealLoop(PhaseIterGVN &igvn, LoopOptsMode mode)
I propose 3 changes to simplify them.
1. add assertion in the constructor c. C2 shouldn't use mode = LoopOptsVerify for it.
2. merge a and b into one constructor.
3. make the merged verification ctor only for debug builds.
Reviewed-by: thartmann, kvn
2020-12-01 23:50:53 +00:00
Patric Hedlin
e3d0f27031
8257231: assert(!is_mcall || (call_returns[block->_pre_order] <= (uint) current_offset))
...
Reviewed-by: shade, chagedorn
2020-12-01 14:16:41 +00:00
Claes Redestad
2966d0d334
8257223: C2: Optimize RegMask::is_bound
...
Reviewed-by: kvn, neliasso
2020-12-01 13:18:32 +00:00
Christian Hagedorn
aa2d36f6de
8256807: C2: Not marking stores correctly as mismatched in string opts
...
Reviewed-by: vlivanov, roland, thartmann
2020-12-01 10:11:39 +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
353e791a18
8257398: Enhance debug output in Type::check_symmetrical
...
Reviewed-by: vlivanov, chagedorn
2020-12-01 07:02:48 +00:00
Ioi Lam
f48737c7b3
8256254: Convert vmIntrinsics::ID to enum class
...
Reviewed-by: redestad, kvn
2020-12-01 05:35:29 +00:00
Per Liden
e3abe51a31
8257418: C2: Rename barrier data member in MemNode and LoadStoreNode
...
Reviewed-by: vlivanov
2020-11-30 14:15:43 +00:00
Vladimir Ivanov
337d7bce03
8257165: C2: Improve box elimination for vector masks and shuffles
...
Reviewed-by: kvn, thartmann
2020-11-30 10:36:38 +00:00
Vladimir Ivanov
4e55d0f31e
8257057: C2: Improve safepoint processing during vector scalarization pass
...
Reviewed-by: kvn, thartmann
2020-11-30 10:30:47 +00:00
Claes Redestad
9bcd2695c3
8257221: C2: RegMask::is_bound_set split set handling broken since JDK-8221404
...
Reviewed-by: kvn, neliasso
2020-11-30 08:18:32 +00:00
Vladimir Kozlov
816e8f83b8
8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo
...
Reviewed-by: pliden, vlivanov, rkennke, eosterlund, shade
2020-11-29 20:27:01 +00:00
Aleksey Shipilev
9a468d8599
8256757: Incorrect MachCallRuntimeNode::ret_addr_offset() for CallLeafNoFP on x86_32
...
Reviewed-by: jiefu, kvn
2020-11-27 06:47:30 +00:00
Claes Redestad
2d30a10138
8257069: C2: Clarify and sanity test RegMask/RegMaskIterator
...
Reviewed-by: jvernee, kvn
2020-11-26 13:42:55 +00:00
Nils Eliasson
cfb175dfdf
8256508: Improve CompileCommand flag
...
Reviewed-by: redestad, kvn
2020-11-25 14:20:35 +00:00
Christian Hagedorn
7aed9b65d0
8256016: Dacapo24H.java failed with "assert(false) failed: unscheduable graph"
...
Reviewed-by: kvn, vlivanov
2020-11-25 14:00:40 +00:00
Jatin Bhateja
0d91f0a1df
8252848: Optimize small primitive arrayCopy operations through partial inlining using AVX-512 masked instructions
...
Reviewed-by: neliasso, kvn
2020-11-25 06:08:19 +00:00
Tobias Hartmann
1c4c99eae2
8256823: C2 compilation fails with "assert(isShiftCount(imm8 >> 1)) failed: illegal shift count"
...
Reviewed-by: vlivanov, kvn, chagedorn
2020-11-24 16:52:13 +00:00
Claes Redestad
fa3cfcd0cd
8256883: C2: Add a RegMask iterator
...
Reviewed-by: kvn, pliden, eosterlund
2020-11-24 14:35:51 +00:00
Claes Redestad
f55ae9595e
8256858: C2: Devirtualize PhaseIterGVN-specific methods
...
Reviewed-by: kvn, thartmann
2020-11-24 14:33:47 +00:00
Maurizio Cimadamore
0fb31dbf3a
8254231: Implementation of Foreign Linker API (Incubator)
...
Reviewed-by: coleenp, ihse, dholmes, vlivanov
2020-11-23 11:00:38 +00:00
Claes Redestad
b450e7c1c5
8256827: C2: Avoid reallocations by pre-sizing lists in post_allocate_copy_removal
...
Reviewed-by: kvn, thartmann
2020-11-23 10:18:40 +00:00