jdk-24/test
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
..
failure_handler 8255964: Add all details to jstack log in jtreg timeout handler 2020-11-13 09:40:06 +00:00
hotspot 8255763: C2: OSR miscompilation caused by invalid memory instruction placement 2020-12-21 13:04:24 +00:00
jaxp 8255918: XMLStreamFilterImpl constructor consumes XMLStreamException 2020-12-10 03:40:01 +00:00
jdk 8258007: Add instrumentation to NativeLibraryTest 2020-12-19 00:17:02 +00:00
jtreg-ext/requires 8257020: [JVMCI] enable a JVMCICompiler to specify which GCs it supports 2020-12-03 13:42:50 +00:00
langtools 8258002: Update "type" terminology in generated docs 2020-12-18 18:34:25 +00:00
lib 8258007: Add instrumentation to NativeLibraryTest 2020-12-19 00:17:02 +00:00
lib-test 8255394: jdk/test/lib/hexdump/ASN1FormatterTest.java fails with ---illegal-access=deny 2020-10-27 18:17:57 +00:00
make 8257547: Handle multiple prereqs on the same line in deps files 2020-12-03 21:41:37 +00:00
micro/org/openjdk/bench 8258242: Type profile pollution occurs when memory segments of different kinds are used 2020-12-15 13:50:40 +00:00