@@ -87,7 +87,7 @@ protected void run(StructuredGraph graph, CoreProviders context) {
87
87
if (node instanceof DynamicDeoptimizeNode ) {
88
88
throw new GraalError ("%s must be disabled to use this phase" , DynamicDeoptimizeNode .class .getSimpleName ());
89
89
}
90
- if (node instanceof DeoptimizeNode deopt ) {
90
+ if (node instanceof DeoptimizeNode deopt && deopt . getAction () != DeoptimizationAction . None ) {
91
91
if (deopt .getSpeculation ().equals (NO_SPECULATION )) {
92
92
SpeculationLog .Speculation speculation = createSpeculation (graph , signature , deopt );
93
93
deopt .setSpeculation (speculation );
@@ -97,12 +97,14 @@ protected void run(StructuredGraph graph, CoreProviders context) {
97
97
JavaConstant spec = implicitNullCheck .getDeoptSpeculation ();
98
98
SpeculationLog .Speculation speculation = spec != null ? context .getMetaAccess ().decodeSpeculation (spec , speculationLog ) : NO_SPECULATION ;
99
99
if (speculation .equals (NO_SPECULATION )) {
100
- spec = context .getMetaAccess ().encodeSpeculation (createSpeculation (graph , signature , implicitNullCheck ));
101
100
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 );
104
107
}
105
- implicitNullCheck .setImplicitDeoptimization (actionAndReason , spec );
106
108
}
107
109
}
108
110
}
0 commit comments