RFR: 8263352: assert(use == polladr) failed: the use should be a safepoint polling

Vladimir Kozlov kvn at openjdk.java.net
Thu Mar 18 18:23:39 UTC 2021


On Thu, 18 Mar 2021 02:26:05 GMT, Wang Huang <whuang at openjdk.org> wrote:

> The main reason of this failure has been shown in JDK-8263352.
> * JDK-8260637 makes a CastPP unpinned, so it can be pull out of inner loop
> * JDK-8247307 assert use == polladr and makes it crash here.
> * I think we can only `intrinsify_fill` the array when it is *really* safe here, so I fix this bug by `return` other cases.
> In this patch, I will give a small test case called `Test8263352.java` to reproduct this failure.
> Thanks to @vnkozlov , who found this failure for the first time (to me).
> Thanks to  @nsjian,who found the case which can reproduct this failure everytime.
> Thanks to @pfustc, who changed notes with us.

I have question for @rwestrel who did strip mining. Looking on nodes I see:
 1247  CountedLoop  ===  1247  1246  794  [[ 1247  788  741  738  781  1242 ]] inner stride: 1  strip mined !orig=[1237],[731] !jvms: ComponentSampleModel::<init> @ bci:147 (line 162)
 1242  CountedLoopEnd  ===  1247  1241  [[ 1243  794 ]] [lt] P=0.646827, C=6564.000000 !orig=[793] !jvms: ComponentSampleModel::<init> @ bci:144 (line 161)
 1243  IfFalse  ===  1242  [[ 1248 ]] #0 !orig=795 !jvms: ComponentSampleModel::<init> @ bci:144 (line 161)

 788  LoadP  ===  1247  659  787  [[ 1248 ]]  @rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test) !jvms: ComponentSampleModel::<init> @ bci:158 (line 161)
 1248  SafePoint  ===  1243  1  784  1  1  788  10  1  1  1  1  1  1  782  [[ 1244 ]]  SafePoint  !orig=783 !jvms: ComponentSampleModel::<init> @ bci:158 (line 161)
So why Poll's LoadP node's control edge  is not the same as SafePoint's control edge? Why it points to inner loop head?
If we adjust LoadP's control edge to the same node as Safepoint (exit from inner loop), we would not need this special case in match_fill_loop().

-------------

PR: https://git.openjdk.java.net/jdk/pull/3061


More information about the hotspot-compiler-dev mailing list