VirtualObjects at deoptimization points.

Deneau, Tom tom.deneau at amd.com
Mon Mar 31 23:07:08 UTC 2014


Gilles --

I noticed in one of our java8 lambda tests (not yet pushed to trunk) we had some object allocation that was eliminated by escape analysis.  But when we try to run this with the trunk now, we get


com.oracle.graal.graph.GraalInternalError: unimplemented

       at com.oracle.graal.graph.GraalInternalError.unimplemented(GraalInternalError.java:38)

       at com.oracle.graal.hotspot.hsail.HSAILHotSpotLIRGenerator.getNodeForValueFromFrame(HSAILHotSpotLIRGenerator.java:182)

       at com.oracle.graal.hotspot.hsail.HSAILHotSpotLIRGenerator.createFrameState(HSAILHotSpotLIRGenerator.java:149)

       at com.oracle.graal.hotspot.hsail.HSAILHotSpotLIRGenerator.createHostDeoptBranch(HSAILHotSpotLIRGenerator.java:140)



where the line 182 in getNodeForValueFromFrame has





        } else if (localValue instanceof VirtualObject) {

            throw GraalInternalError.unimplemented();

        }




What would we need to do to support VirtualObjects at our deoptimization infopoints?


(We also don't support stack slots yet, but I think I understand what is needed to support those).

-- Tom



More information about the graal-dev mailing list