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