GraalIR Virtual nodes
Juan Fumero
juan.fumero at ed.ac.uk
Wed Apr 13 13:43:35 UTC 2016
Hi Gilles,
great, it is now much clearer.
Thanks
Juan
On Tue, 2016-04-12 at 14:17 +0200, Gilles Duboscq wrote:
> These nodes represent scalar replaced arrays and objects or their
> content [1, 2].
>
> All the VirtualState nodes (including FrameState and
> VirtualObjectState) are "floating".
> They are not sub-classes of FloatingNode because so far FloatingNode
> is reserved for floating nodes that return a value. Also,
> VirtualState node tend to need to be treated differently than other
> floating node.
>
> The VirtualObjectNodes (including VirtualArray and VirtualBoxing) are
> also floating and represent the scalar replaced objects and are
> typically only reachable through VirtualState nodes.
> They are not sub-classes of FloatingNode because they don't represent
> any value that is accessible during execution, are only used as part
> of the deoptimization metadata (VirtualState).
>
> Gilles
>
> [1] http://ssw.jku.at/Research/Papers/Stadler14PhD/
> [2] http://www.ssw.uni-linz.ac.at/Research/Papers/Stadler14/Stadler20
> 14-CGO-PEA.pdf
>
> On 12/04/16 13:06, Juan Fumero wrote:
> >
> > Hi all,
> > I am working with FastR and I am analyzing the GraalIR after
> > the
> > Partial Evaluation. I have a question concerning virtual nodes in
> > the
> > Graal IR. What do they represent? Are they considered as
> > FloatingNodes?
> >
> > For instance, for a simple R expression:
> >
> > <code>
> > f <- function(x) x * 2.0;
> > </code>
> >
> > I see nodes such as VirtualArray, VirtualObjectState or
> > VirtualBoxing.
> >
> > Thanks
> > Juan
> >
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
More information about the graal-dev
mailing list