Search in sources :

Example 6 with Graph

use of org.graalvm.compiler.graph.Graph in project graal by oracle.

the class NodeMapTest method before.

@Before
public void before() {
    // Need to initialize HotSpotGraalRuntime before any Node class is initialized.
    Graal.getRuntime();
    OptionValues options = getOptions();
    graph = new Graph(options, getDebug(options));
    for (int i = 0; i < nodes.length; i++) {
        nodes[i] = graph.add(new TestNode());
    }
    map = new NodeMap<>(graph);
    for (int i = 0; i < nodes.length; i += 2) {
        map.set(nodes[i], i);
    }
}
Also used : Graph(org.graalvm.compiler.graph.Graph) OptionValues(org.graalvm.compiler.options.OptionValues) Before(org.junit.Before)

Example 7 with Graph

use of org.graalvm.compiler.graph.Graph in project graal by oracle.

the class NodeUsagesTests method testReplaceAtUsagesWithPredicateAll.

@Test
public void testReplaceAtUsagesWithPredicateAll() {
    OptionValues options = getOptions();
    Graph graph = new Graph(options, getDebug(options));
    Def def0 = graph.add(new Def());
    Def def1 = graph.add(new Def());
    Use use0 = graph.add(new Use(def0, null, null));
    Use use1 = graph.add(new Use(null, def0, null));
    Use use2 = graph.add(new Use(null, null, def0));
    assertEquals(3, def0.getUsageCount());
    assertThat(def0.usages(), contains(use0));
    assertThat(def0.usages(), contains(use1));
    assertThat(def0.usages(), contains(use2));
    assertThat(def0.usages(), isNotEmpty());
    assertThat(def1.usages(), isEmpty());
    def0.replaceAtMatchingUsages(def1, u -> true);
    assertThat(def0.usages(), isEmpty());
    assertEquals(3, def1.getUsageCount());
    assertThat(def1.usages(), contains(use0));
    assertThat(def1.usages(), contains(use1));
    assertThat(def1.usages(), contains(use2));
    assertThat(def1.usages(), isNotEmpty());
}
Also used : Graph(org.graalvm.compiler.graph.Graph) OptionValues(org.graalvm.compiler.options.OptionValues) Test(org.junit.Test)

Example 8 with Graph

use of org.graalvm.compiler.graph.Graph in project graal by oracle.

the class NodeUsagesTests method testReplaceAtUsages.

@Test
public void testReplaceAtUsages() {
    OptionValues options = getOptions();
    Graph graph = new Graph(options, getDebug(options));
    Def def0 = graph.add(new Def());
    Def def1 = graph.add(new Def());
    Use use0 = graph.add(new Use(def0, null, null));
    Use use1 = graph.add(new Use(null, def0, null));
    Use use2 = graph.add(new Use(null, null, def0));
    assertEquals(3, def0.getUsageCount());
    assertThat(def0.usages(), contains(use0));
    assertThat(def0.usages(), contains(use1));
    assertThat(def0.usages(), contains(use2));
    assertThat(def0.usages(), isNotEmpty());
    assertThat(def1.usages(), isEmpty());
    def0.replaceAtUsages(def1);
    assertThat(def0.usages(), isEmpty());
    assertEquals(3, def1.getUsageCount());
    assertThat(def1.usages(), contains(use0));
    assertThat(def1.usages(), contains(use1));
    assertThat(def1.usages(), contains(use2));
    assertThat(def1.usages(), isNotEmpty());
}
Also used : Graph(org.graalvm.compiler.graph.Graph) OptionValues(org.graalvm.compiler.options.OptionValues) Test(org.junit.Test)

Example 9 with Graph

use of org.graalvm.compiler.graph.Graph in project graal by oracle.

the class NodeUsagesTests method testReplaceAtUsagesWithPredicate02.

@Test
public void testReplaceAtUsagesWithPredicate02() {
    OptionValues options = getOptions();
    Graph graph = new Graph(options, getDebug(options));
    Def def0 = graph.add(new Def());
    Def def1 = graph.add(new Def());
    Use use0 = graph.add(new Use(def0, null, null));
    Use use1 = graph.add(new Use(null, def0, null));
    Use use2 = graph.add(new Use(null, null, def0));
    assertEquals(3, def0.getUsageCount());
    assertThat(def0.usages(), contains(use0));
    assertThat(def0.usages(), contains(use1));
    assertThat(def0.usages(), contains(use2));
    assertThat(def0.usages(), isNotEmpty());
    assertThat(def1.usages(), isEmpty());
    def0.replaceAtMatchingUsages(def1, u -> u != use1);
    assertEquals(1, def0.getUsageCount());
    assertThat(def0.usages(), contains(use1));
    assertThat(def0.usages(), isNotEmpty());
    assertEquals(2, def1.getUsageCount());
    assertThat(def1.usages(), contains(use0));
    assertThat(def1.usages(), contains(use2));
    assertThat(def1.usages(), isNotEmpty());
}
Also used : Graph(org.graalvm.compiler.graph.Graph) OptionValues(org.graalvm.compiler.options.OptionValues) Test(org.junit.Test)

Example 10 with Graph

use of org.graalvm.compiler.graph.Graph in project graal by oracle.

the class NodeUsagesTests method testReplaceAtUsagesWithPredicate023.

@Test
public void testReplaceAtUsagesWithPredicate023() {
    OptionValues options = getOptions();
    Graph graph = new Graph(options, getDebug(options));
    Def def0 = graph.add(new Def());
    Def def1 = graph.add(new Def());
    Use use0 = graph.add(new Use(def0, null, null));
    Use use1 = graph.add(new Use(null, def0, null));
    Use use2 = graph.add(new Use(null, null, def0));
    Use use3 = graph.add(new Use(null, null, def0));
    assertEquals(4, def0.getUsageCount());
    assertThat(def0.usages(), contains(use0));
    assertThat(def0.usages(), contains(use1));
    assertThat(def0.usages(), contains(use2));
    assertThat(def0.usages(), contains(use3));
    assertThat(def0.usages(), isNotEmpty());
    assertThat(def1.usages(), isEmpty());
    def0.replaceAtMatchingUsages(def1, u -> u != use1);
    assertEquals(1, def0.getUsageCount());
    assertThat(def0.usages(), contains(use1));
    assertThat(def0.usages(), isNotEmpty());
    assertEquals(3, def1.getUsageCount());
    assertThat(def1.usages(), contains(use0));
    assertThat(def1.usages(), contains(use2));
    assertThat(def1.usages(), contains(use3));
    assertThat(def1.usages(), isNotEmpty());
}
Also used : Graph(org.graalvm.compiler.graph.Graph) OptionValues(org.graalvm.compiler.options.OptionValues) Test(org.junit.Test)

Aggregations

Graph (org.graalvm.compiler.graph.Graph)33 Test (org.junit.Test)22 OptionValues (org.graalvm.compiler.options.OptionValues)21 StructuredGraph (org.graalvm.compiler.nodes.StructuredGraph)8 AbstractBeginNode (org.graalvm.compiler.nodes.AbstractBeginNode)3 AbstractMergeNode (org.graalvm.compiler.nodes.AbstractMergeNode)3 EndNode (org.graalvm.compiler.nodes.EndNode)3 FixedNode (org.graalvm.compiler.nodes.FixedNode)3 ValueNode (org.graalvm.compiler.nodes.ValueNode)3 DebugCloseable (org.graalvm.compiler.debug.DebugCloseable)2 DebugContext (org.graalvm.compiler.debug.DebugContext)2 DuplicationReplacement (org.graalvm.compiler.graph.Graph.DuplicationReplacement)2 Node (org.graalvm.compiler.graph.Node)2 LoopExitNode (org.graalvm.compiler.nodes.LoopExitNode)2 MergeNode (org.graalvm.compiler.nodes.MergeNode)2 Before (org.junit.Before)2 IOException (java.io.IOException)1 ArrayDeque (java.util.ArrayDeque)1 Collections (java.util.Collections)1 Deque (java.util.Deque)1