-
Bug
-
Resolution: Fixed
-
P3
-
18, 19
-
b20
I've attached a JMH benchmark based on a slightly modified version of the pre-
Benchmark (negativeStart) Mode Cnt Score Error Units
LoopLocals.loopsWithScopedLocal true avgt 2 2828.665 ns/op
LoopLocals.loopsWithScopedLocal false avgt 2 1164.918 ns/op
LoopLocals.loopsWithSharedLocal true avgt 2 5355.671 ns/op
LoopLocals.loopsWithSharedLocal false avgt 2 1164.860 ns/op
The interesting case is when we're spending most of the time in the second loop (negativeStart = true). When not splitting the locals this variant is about half as fast.
I expect that C2 should be able to act as if the variables were local to each individual scope in general here. I've tried simplifying the benchmark, e.g., by removing the byte[] allocations, but then the issue disappears.
- relates to
-
JDK-8279833 Loop optimization issue in String.encodeUTF8_UTF16
-
- Resolved
-
-
JDK-8319793 C2 compilation fails with "Bad graph detected in build_loop_late" after JDK-8279888
-
- Resolved
-
-
JDK-8281565 Regression 5-7% in SPECjvm2008-Compress-G1 on x64 Linux and Mac in 19-b8
-
- Closed
-
-
JDK-8286451 C2: assert(nb == 1) failed: only when the head is not shared
-
- Resolved
-
-
JDK-8293978 Duplicate simple loop back-edge will crash the vm
-
- Resolved
-
-
JDK-8281565 Regression 5-7% in SPECjvm2008-Compress-G1 on x64 Linux and Mac in 19-b8
-
- Closed
-
(1 relates to, 2 links to)