Search in sources :

Example 16 with Graph

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

the class NodeUsagesTests method testReplaceAtUsagesWithPredicate013.

@Test
public void testReplaceAtUsagesWithPredicate013() {
    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 != use2);
    assertEquals(1, def0.getUsageCount());
    assertThat(def0.usages(), contains(use2));
    assertThat(def0.usages(), isNotEmpty());
    assertEquals(3, def1.getUsageCount());
    assertThat(def1.usages(), contains(use0));
    assertThat(def1.usages(), contains(use1));
    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)

Example 17 with Graph

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

the class NodeUsagesTests method testReplaceAtUsagesWithPredicate1.

@Test
public void testReplaceAtUsagesWithPredicate1() {
    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, def1.getUsageCount());
    assertThat(def1.usages(), contains(use1));
    assertThat(def1.usages(), isNotEmpty());
    assertEquals(2, def0.getUsageCount());
    assertThat(def0.usages(), contains(use0));
    assertThat(def0.usages(), contains(use2));
    assertThat(def0.usages(), isNotEmpty());
}
Also used : Graph(org.graalvm.compiler.graph.Graph) OptionValues(org.graalvm.compiler.options.OptionValues) Test(org.junit.Test)

Example 18 with Graph

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

the class NodeUsagesTests method testReplaceAtUsagesWithPredicate12.

@Test
public void testReplaceAtUsagesWithPredicate12() {
    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 != use0);
    assertEquals(1, def0.getUsageCount());
    assertThat(def0.usages(), contains(use0));
    assertThat(def0.usages(), isNotEmpty());
    assertEquals(2, def1.getUsageCount());
    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 19 with Graph

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

the class NodeUsagesTests method testReplaceAtUsagesWithPredicate2.

@Test
public void testReplaceAtUsagesWithPredicate2() {
    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 == use2);
    assertEquals(1, def1.getUsageCount());
    assertThat(def1.usages(), contains(use2));
    assertThat(def1.usages(), isNotEmpty());
    assertEquals(2, def0.getUsageCount());
    assertThat(def0.usages(), contains(use0));
    assertThat(def0.usages(), contains(use1));
    assertThat(def0.usages(), isNotEmpty());
}
Also used : Graph(org.graalvm.compiler.graph.Graph) OptionValues(org.graalvm.compiler.options.OptionValues) Test(org.junit.Test)

Example 20 with Graph

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

the class NodeUsagesTests method testReplaceAtUsagesWithPredicate0.

@Test
public void testReplaceAtUsagesWithPredicate0() {
    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 == use0);
    assertEquals(1, def1.getUsageCount());
    assertThat(def1.usages(), contains(use0));
    assertThat(def1.usages(), isNotEmpty());
    assertEquals(2, def0.getUsageCount());
    assertThat(def0.usages(), contains(use1));
    assertThat(def0.usages(), contains(use2));
    assertThat(def0.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