RFR(S): 8192992: Test8007294.java failed: attempted to spill a non-spillable item
Tobias Hartmann
tobias.hartmann at oracle.com
Mon Mar 5 16:00:26 UTC 2018
Hi Nils,
looks reasonable to me. Please add the "noreg-hard" label to the bug.
Best regards,
Tobias
On 05.03.2018 16:50, Nils Eliasson wrote:
> Hi,
>
> This patch is a workaround for a scheduling problem encountered in some rare circumstances. Instead
> of hitting the assert we retry the compilation without subsuming loads.
>
> To quote Tobias:
>
> "The crash happens because a testN_mem_reg0 (CmpN(LoadN(mem), NULL)) is scheduled in a different
> block than its jmpCon user and the register allocator tries to spill the flag register. The problem
> is that PhaseCFG::schedule_late() detects an anti-dependency for the testN_mem_reg0 on a bottom
> memory Phi and therefore raises the LCA to the early block (see PhaseCFG::insert_anti_dependences())
> which is "far away" from its jmpCon user. "
>
> Thanks to Roland who suggested the workaround.
>
> https://bugs.openjdk.java.net/browse/JDK-8192992
>
> http://cr.openjdk.java.net/~neliasso/8192992/webrev.01/
>
> Regards,
>
> Nils
>
More information about the hotspot-compiler-dev
mailing list