NullPointerException in HotSpotRuntime:lower when using Snippets
mick.jordan at oracle.com
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