@@ -87,7 +87,7 @@ protected void run(StructuredGraph graph, CoreProviders context) {
8787 if (node instanceof DynamicDeoptimizeNode ) {
8888 throw new GraalError ("%s must be disabled to use this phase" , DynamicDeoptimizeNode .class .getSimpleName ());
8989 }
90- if (node instanceof DeoptimizeNode deopt ) {
90+ if (node instanceof DeoptimizeNode deopt && deopt . getAction () != DeoptimizationAction . None ) {
9191 if (deopt .getSpeculation ().equals (NO_SPECULATION )) {
9292 SpeculationLog .Speculation speculation = createSpeculation (graph , signature , deopt );
9393 deopt .setSpeculation (speculation );
@@ -97,12 +97,14 @@ protected void run(StructuredGraph graph, CoreProviders context) {
9797 JavaConstant spec = implicitNullCheck .getDeoptSpeculation ();
9898 SpeculationLog .Speculation speculation = spec != null ? context .getMetaAccess ().decodeSpeculation (spec , speculationLog ) : NO_SPECULATION ;
9999 if (speculation .equals (NO_SPECULATION )) {
100- spec = context .getMetaAccess ().encodeSpeculation (createSpeculation (graph , signature , implicitNullCheck ));
101100 JavaConstant actionAndReason = implicitNullCheck .getDeoptReasonAndAction ();
102- if (actionAndReason == null ) {
103- actionAndReason = context .getMetaAccess ().encodeDeoptActionAndReason (DeoptimizationAction .InvalidateRecompile , DeoptimizationReason .NullCheckException , 0 );
101+ if (actionAndReason == null || context .getMetaAccess ().decodeDeoptAction (actionAndReason ) != DeoptimizationAction .None ) {
102+ spec = context .getMetaAccess ().encodeSpeculation (createSpeculation (graph , signature , implicitNullCheck ));
103+ if (actionAndReason == null ) {
104+ actionAndReason = context .getMetaAccess ().encodeDeoptActionAndReason (DeoptimizationAction .InvalidateRecompile , DeoptimizationReason .NullCheckException , 0 );
105+ }
106+ implicitNullCheck .setImplicitDeoptimization (actionAndReason , spec );
104107 }
105- implicitNullCheck .setImplicitDeoptimization (actionAndReason , spec );
106108 }
107109 }
108110 }
0 commit comments