Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into da/lower
Browse files Browse the repository at this point in the history
  • Loading branch information
ansalond committed Oct 17, 2019
2 parents 3e21864 + 0c17081 commit 7fa3751
Show file tree
Hide file tree
Showing 1,329 changed files with 29,510 additions and 10,769 deletions.
3 changes: 0 additions & 3 deletions ci.hocon
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,6 @@ include "compiler/ci_includes/gate_tasks.hocon"
# ------------------ SVM ----------------------
include "substratevm/ci_includes/gate.hocon"

# Maven deploy dry-run
include "substratevm/ci_includes/deploy.hocon"

# Publish Javadoc
include "ci_includes/publish-javadoc.hocon"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@
/**
* Denotes a method whose body is used by a compiler as the substitute (or intrinsification) of
* another method. The exact mechanism used to do the substitution is compiler dependent but every
* compiler should require substitute methods to be annotated with {@link MethodSubstitution}. In
* addition, a compiler is recommended to implement {@link MethodSubstitutionRegistry} to advertise
* the mechanism by which it supports registration of method substitutes.
* compiler should require substitute methods to be annotated with {@link MethodSubstitution}.
*
* A compiler may support partial intrinsification where only a part of a method is implemented by
* the compiler. The unsupported path is expressed by a call to either the original or substitute
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ private void processMethod(final String snippet) {
graph = parseEager(snippet, AllowAssumptions.NO);
HighTierContext context = getDefaultHighTierContext();
createInliningPhase().apply(graph, context);
new PartialEscapePhase(false, new CanonicalizerPhase(), graph.getOptions()).apply(graph, context);
new PartialEscapePhase(false, createCanonicalizerPhase(), graph.getOptions()).apply(graph, context);
}

private void compareGraphs(final String snippet, final String referenceSnippet) {
Expand All @@ -323,7 +323,7 @@ private void compareGraphs(final String snippet, final String referenceSnippet)
private void compareGraphs(final String snippet, final String referenceSnippet, final boolean loopPeeling, final boolean excludeVirtual) {
graph = parseEager(snippet, AllowAssumptions.NO);
HighTierContext context = getDefaultHighTierContext();
CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer = this.createCanonicalizerPhase();
canonicalizer.apply(graph, context);
createInliningPhase().apply(graph, context);
if (loopPeeling) {
Expand All @@ -339,7 +339,7 @@ private void compareGraphs(final String snippet, final String referenceSnippet,
StructuredGraph referenceGraph = parseEager(referenceSnippet, AllowAssumptions.YES);
createInliningPhase().apply(referenceGraph, context);
new DeadCodeEliminationPhase().apply(referenceGraph);
new CanonicalizerPhase().apply(referenceGraph, context);
this.createCanonicalizerPhase().apply(referenceGraph, context);

assertEquals(referenceGraph, graph, excludeVirtual, true);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,13 @@
import org.graalvm.compiler.nodes.ValueNode;
import org.graalvm.compiler.nodes.calc.ConditionalNode;
import org.graalvm.compiler.nodes.calc.IntegerTestNode;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
import org.junit.Test;

public class CompareCanonicalizerTest extends GraalCompilerTest {

private StructuredGraph getCanonicalizedGraph(String name) {
StructuredGraph graph = parseEager(name, AllowAssumptions.YES);
new CanonicalizerPhase().apply(graph, getProviders());
createCanonicalizerPhase().apply(graph, getProviders());
return graph;
}

Expand All @@ -55,7 +54,7 @@ public void testCanonicalComparison() {
StructuredGraph graph = parseEager("canonicalCompare" + i, AllowAssumptions.NO);
assertEquals(referenceGraph, graph);
}
new CanonicalizerPhase().apply(referenceGraph, getProviders());
createCanonicalizerPhase().apply(referenceGraph, getProviders());
for (int i = 1; i < 4; i++) {
StructuredGraph graph = getCanonicalizedGraph("canonicalCompare" + i);
assertEquals(referenceGraph, graph);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@

import org.graalvm.compiler.nodes.StructuredGraph;
import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
import org.junit.Test;

public class CompareCanonicalizerTest2 extends GraalCompilerTest {
Expand All @@ -35,7 +34,7 @@ public class CompareCanonicalizerTest2 extends GraalCompilerTest {

private StructuredGraph getCanonicalizedGraph(String name) {
StructuredGraph graph = getRegularGraph(name);
new CanonicalizerPhase().apply(graph, getProviders());
createCanonicalizerPhase().apply(graph, getProviders());
return graph;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ public static void referenceSnippet7(int a) {
protected void assertCanonicallyEqual(String snippet, String reference) {
StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
CoreProviders context = getProviders();
CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer = this.createCanonicalizerPhase();

canonicalizer.apply(graph, context);
new GuardLoweringPhase().apply(graph, new MidTierContext(getProviders(), getTargetProvider(), OptimisticOptimizations.ALL, graph.getProfilingInfo()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ private StructuredGraph prepareGraph(String snippet) {
StructuredGraph graph = parseEager(snippet, AllowAssumptions.NO);
HighTierContext context = getDefaultHighTierContext();
new ConditionalEliminationPhase(false).apply(graph, context);
CanonicalizerPhase c = new CanonicalizerPhase();
CanonicalizerPhase c = createCanonicalizerPhase();
c.apply(graph, context);
new ConditionalEliminationPhase(false).apply(graph, context);
c.apply(graph, context);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
import org.graalvm.compiler.nodes.spi.CoreProviders;
import org.graalvm.compiler.nodes.spi.LoweringTool;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
import org.graalvm.compiler.phases.common.ConditionalEliminationPhase;
import org.graalvm.compiler.phases.common.LoweringPhase;
import org.junit.Assert;
Expand Down Expand Up @@ -95,7 +94,7 @@ public void test2() {
private void test(String snippet, int guardCount) {
StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
CoreProviders context = getProviders();
new LoweringPhase(new CanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
new LoweringPhase(createCanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
new ConditionalEliminationPhase(true).apply(graph, context);
Assert.assertEquals(guardCount, graph.getNodes().filter(GuardNode.class).count());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public static void test1Snippet(Object[] args) {
@Test
public void test1() {
StructuredGraph graph = parseEager("test1Snippet", AllowAssumptions.YES);
CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer = createCanonicalizerPhase();
CoreProviders context = getProviders();

/* Convert the LoadIndexNode to ReadNode with floating guards. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ public class ConditionalEliminationTest15 extends ConditionalEliminationTestBase
private void checkNodeCount(String methodName, Class<? extends Node> nodeClass, int count) {
StructuredGraph graph = parseEager(methodName, AllowAssumptions.YES);

CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer = this.createCanonicalizerPhase();
CoreProviders context = getProviders();

new LoweringPhase(new CanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
new LoweringPhase(this.createCanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
canonicalizer.apply(graph, context);

// Merge arr.length reads.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.graalvm.compiler.nodes.ParameterNode;
import org.graalvm.compiler.nodes.PiNode;
import org.graalvm.compiler.nodes.StructuredGraph;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
import org.junit.Before;
import org.junit.Test;

Expand Down Expand Up @@ -69,7 +68,7 @@ protected void checkHighTierGraph(StructuredGraph graph) {
break;
}
}
new CanonicalizerPhase().apply(graph, getDefaultHighTierContext());
this.createCanonicalizerPhase().apply(graph, getDefaultHighTierContext());
}
super.checkHighTierGraph(graph);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ public static int testRedundantComparesSnippet(int[] array) {
@Test
public void testRedundantCompares() {
StructuredGraph graph = parseEager("testRedundantComparesSnippet", AllowAssumptions.YES);
CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer = createCanonicalizerPhase();
CoreProviders context = getProviders();

new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
Expand All @@ -132,7 +132,7 @@ public static String testInstanceOfCheckCastSnippet(Object e) {
public void testInstanceOfCheckCastLowered() {
StructuredGraph graph = parseEager("testInstanceOfCheckCastSnippet", AllowAssumptions.YES);

CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer = createCanonicalizerPhase();
CoreProviders context = getProviders();

new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
Expand All @@ -146,7 +146,7 @@ public void testInstanceOfCheckCastLowered() {
private void checkInstanceOfCount(String methodName, int count) {
StructuredGraph graph = parseEager(methodName, AllowAssumptions.YES);

CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer = this.createCanonicalizerPhase();
CoreProviders context = getProviders();

canonicalizer.apply(graph, context);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ protected void testConditionalElimination(String snippet, String referenceSnippe
DebugContext debug = graph.getDebug();
debug.dump(DebugContext.BASIC_LEVEL, graph, "Graph");
CoreProviders context = getProviders();
CanonicalizerPhase canonicalizer1 = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer1 = createCanonicalizerPhase();
CanonicalizerPhase canonicalizer = createCanonicalizerPhase();
try (DebugContext.Scope scope = debug.scope("ConditionalEliminationTest", graph)) {
prepareGraph(graph, canonicalizer1, context, applyLowering);
new IterativeConditionalEliminationPhase(canonicalizer, true).apply(graph, context);
Expand Down Expand Up @@ -106,10 +106,10 @@ protected void prepareGraph(StructuredGraph graph, CanonicalizerPhase canonicali
public void testProxies(String snippet, int expectedProxiesCreated) {
StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
CoreProviders context = getProviders();
CanonicalizerPhase canonicalizer1 = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer1 = createCanonicalizerPhase();
canonicalizer1.disableSimplification();
canonicalizer1.apply(graph, context);
CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
CanonicalizerPhase canonicalizer = createCanonicalizerPhase();
new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
canonicalizer.apply(graph, context);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import org.graalvm.compiler.nodes.calc.AndNode;
import org.graalvm.compiler.nodes.calc.NotNode;
import org.graalvm.compiler.nodes.calc.OrNode;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
import org.junit.Assert;
import org.junit.Test;

Expand All @@ -46,7 +45,7 @@ public static int and(int a, int b) {
@Test
public void testAnd() {
StructuredGraph g = parseEager("and", AllowAssumptions.NO, getInitialOptions());
new CanonicalizerPhase().apply(g, getDefaultHighTierContext());
createCanonicalizerPhase().apply(g, getDefaultHighTierContext());
Assert.assertEquals(1, g.getNodes().filter(OrNode.class).count());
Assert.assertEquals(1, g.getNodes().filter(NotNode.class).count());

Expand All @@ -59,7 +58,7 @@ public void testAnd() {
@Test
public void testOr() {
StructuredGraph g = parseEager("or", AllowAssumptions.NO, getInitialOptions());
new CanonicalizerPhase().apply(g, getDefaultHighTierContext());
createCanonicalizerPhase().apply(g, getDefaultHighTierContext());
Assert.assertEquals(1, g.getNodes().filter(AndNode.class).count());
Assert.assertEquals(1, g.getNodes().filter(NotNode.class).count());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import org.graalvm.compiler.debug.DebugDumpScope;
import org.graalvm.compiler.nodes.StructuredGraph;
import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
import org.graalvm.compiler.phases.tiers.HighTierContext;
import org.junit.Test;

Expand Down Expand Up @@ -85,7 +84,7 @@ private void test(final String snippet) {
StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
HighTierContext context = getDefaultHighTierContext();
createInliningPhase().apply(graph, context);
new CanonicalizerPhase().apply(graph, context);
createCanonicalizerPhase().apply(graph, context);
debug.dump(DebugContext.BASIC_LEVEL, graph, "Graph");
StructuredGraph referenceGraph = parseEager(REFERENCE_SNIPPET, AllowAssumptions.YES);
debug.dump(DebugContext.BASIC_LEVEL, referenceGraph, "ReferenceGraph");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
import org.graalvm.compiler.nodes.java.RegisterFinalizerNode;
import org.graalvm.compiler.options.OptionValues;
import org.graalvm.compiler.phases.OptimisticOptimizations;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
import org.graalvm.compiler.phases.tiers.HighTierContext;
import org.junit.Assert;
import org.junit.Test;
Expand Down Expand Up @@ -80,7 +79,7 @@ private StructuredGraph parseAndProcess(Class<?> cl, AllowAssumptions allowAssum
new GraphBuilderPhase.Instance(getProviders(), conf, OptimisticOptimizations.ALL, null).apply(graph);
HighTierContext context = new HighTierContext(getProviders(), getDefaultGraphBuilderSuite(), OptimisticOptimizations.ALL);
createInliningPhase().apply(graph, context);
new CanonicalizerPhase().apply(graph, context);
createCanonicalizerPhase().apply(graph, context);
return graph;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import org.graalvm.compiler.nodes.memory.FloatingReadNode;
import org.graalvm.compiler.nodes.spi.CoreProviders;
import org.graalvm.compiler.nodes.spi.LoweringTool;
import org.graalvm.compiler.phases.common.CanonicalizerPhase;
import org.graalvm.compiler.phases.common.FloatingReadPhase;
import org.graalvm.compiler.phases.common.LoweringPhase;
import org.junit.Assert;
Expand Down Expand Up @@ -68,7 +67,7 @@ private void test(final String snippet) {

StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
CoreProviders context = getProviders();
new LoweringPhase(new CanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
new LoweringPhase(createCanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
new FloatingReadPhase().apply(graph);

ReturnNode returnNode = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,7 @@ protected LoweringProvider getLowerer() {
}

protected final BasePhase<HighTierContext> createInliningPhase() {
return createInliningPhase(new CanonicalizerPhase());
return createInliningPhase(this.createCanonicalizerPhase());
}

protected BasePhase<HighTierContext> createInliningPhase(CanonicalizerPhase canonicalizer) {
Expand Down Expand Up @@ -1515,4 +1515,8 @@ protected static boolean iterationCount(double i, boolean cond) {
protected boolean isArchitecture(String name) {
return name.equals(backend.getTarget().arch.getName());
}

protected CanonicalizerPhase createCanonicalizerPhase() {
return CanonicalizerPhase.create();
}
}
Loading

0 comments on commit 7fa3751

Please sign in to comment.