NullPointerException in HotSpotRuntime:lower when using Snippets

Mick Jordan mick.jordan at
Mon Jul 15 12:12:27 PDT 2013

On 7/15/13 11:57 AM, Mick Jordan wrote:
> Graal/VMA evidently makes this easier as more of the original source 
> is available explicitly the graph. However, it is a fact that Graal 
> was not designed as an analysis framework, and is somewhat lossy - for 
> example the kind of loop is not kept and some transformations,e.g. 
> canonicalization of the various IF forms happen before you can get 
> control. Nevertheless, it is a much more robust framework and graphs 
> are much preferable to bytecode streams. DiSL could be implemented on 
> Graal, no doubt, perhaps with some small extensions. E.g., the 
> bytecode index is not routinely available for an arbitrary node.
I should clarify that some of the lossiness is due entirely to the 
source -> bytecode translation by the (javac) compiler (e.g. loops), and 
some is due to Graal's graph building itself (e.g. the IF bytecode 
forms). Graal recreates the loops by virtue of the LoopBegin/End nodes 
and if you look at GraphBuilderPhase, you can see this requires some work.


More information about the graal-dev mailing list