instrument the HIR by synthesizing code and inserting it

Thomas Wuerthinger thomas.wuerthinger at
Tue Feb 19 15:02:38 PST 2013

Sure, you can define your own subclasses of FloatingNode or FixedNode and add instances of those classes to the graph. You can also create instances of the existing classes. You can first add macro nodes to the graph and then later lower them by replacing them with multiple other nodes. See the method HotSpotRuntime.lower for examples of this. The most fancy way to lower is using snippets (we use this for example for the MonitorEnterNode instances). We will start building up gradually information about how to use the various Graal APIs at Until then, you can use the existing ways how we do graph transformations in the compiler as examples.

- thomas

On Feb 18, 2013, at 9:22 PM, lpxz <lpxz at> wrote:

> Another question,
> I am aware that graal can easily remove nodes and duplicate nodes in the graphical IR representation.
> I wonder if does graal provide the APIs for synthesizing new nodes and inserting them. For example, I want to insert the
> counter implementation to each control flow edge to profile the execution frequency of each CFG edge.
> Thanks a lot!
> Regards
> Peng

More information about the graal-dev mailing list