# HG changeset patch # User Thomas Wuerthinger # Date 1357828192 -3600 # Node ID 1003fde9b8827209262c1cfefc0fcb207ed3e42e # Parent 077a56735ce37d7486384157acad8fd063e03edb# Parent 6939a5af19d50f4a35a1a2a984cfd1bf0460d730 Merge. diff -r 077a56735ce3 -r 1003fde9b882 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Thu Jan 10 15:29:42 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Thu Jan 10 15:29:52 2013 +0100 @@ -428,6 +428,7 @@ originalFalseSuccessor.prepareDelete(); FixedNode next = merge.next(); + FrameState state = merge.stateAfter(); merge.setNext(null); setTrueSuccessor(null); setFalseSuccessor(null); @@ -438,6 +439,9 @@ merge.safeDelete(); trueEnd.safeDelete(); falseEnd.safeDelete(); + if (state != null) { + tool.removeIfUnused(state); + } tool.addToWorkList(next); } } diff -r 077a56735ce3 -r 1003fde9b882 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Thu Jan 10 15:29:42 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Thu Jan 10 15:29:52 2013 +0100 @@ -97,6 +97,8 @@ Map debugProperties = super.getDebugProperties(map); if (callTarget instanceof MethodCallTargetNode && methodCallTarget().targetMethod() != null) { debugProperties.put("targetMethod", methodCallTarget().targetMethod()); + } else if (callTarget instanceof AbstractCallTargetNode) { + debugProperties.put("targetMethod", ((AbstractCallTargetNode) callTarget).target()); } return debugProperties; } diff -r 077a56735ce3 -r 1003fde9b882 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/CanonicalizerTool.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/CanonicalizerTool.java Thu Jan 10 15:29:42 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/CanonicalizerTool.java Thu Jan 10 15:29:52 2013 +0100 @@ -24,10 +24,12 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; +import com.oracle.graal.graph.*; public interface CanonicalizerTool { TargetDescription target(); Assumptions assumptions(); MetaAccessProvider runtime(); + void removeIfUnused(Node node); } diff -r 077a56735ce3 -r 1003fde9b882 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Thu Jan 10 15:29:42 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Thu Jan 10 15:29:52 2013 +0100 @@ -341,5 +341,10 @@ public void addToWorkList(Node node) { nodeWorkSet.addAgain(node); } + + @Override + public void removeIfUnused(Node node) { + tryKillUnused(node); + } } } diff -r 077a56735ce3 -r 1003fde9b882 graal/com.oracle.truffle.codegen.processor/src/META-INF/services/javax.annotation.processing.Processor --- a/graal/com.oracle.truffle.codegen.processor/src/META-INF/services/javax.annotation.processing.Processor Thu Jan 10 15:29:42 2013 +0100 +++ b/graal/com.oracle.truffle.codegen.processor/src/META-INF/services/javax.annotation.processing.Processor Thu Jan 10 15:29:52 2013 +0100 @@ -1,1 +1,1 @@ -com.oracle.truffle.codegen.processor.TruffleProcessor \ No newline at end of file +com.oracle.truffle.codegen.processor.TruffleProcessor diff -r 077a56735ce3 -r 1003fde9b882 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Parser.frame --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Parser.frame Thu Jan 10 15:29:42 2013 +0100 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Parser.frame Thu Jan 10 15:29:52 2013 +0100 @@ -46,7 +46,7 @@ public final Scanner scanner; public final Errors errors; private final NodeFactory factory; - -->declarations + -->declarations public Parser(Scanner scanner, NodeFactory factory) { this.scanner = scanner; this.factory = factory; diff -r 077a56735ce3 -r 1003fde9b882 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Scanner.frame --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Scanner.frame Thu Jan 10 15:29:42 2013 +0100 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Scanner.frame Thu Jan 10 15:29:52 2013 +0100 @@ -403,7 +403,7 @@ NextCh(); } } - + -->comments void CheckLiteral() { @@ -418,7 +418,7 @@ Token NextToken() { while (ch == ' ' || -->scan1 - ) NextCh(); + ) NextCh(); -->scan2 int recKind = noSym; int recEnd = pos; diff -r 077a56735ce3 -r 1003fde9b882 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SimpleLanguage.atg --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SimpleLanguage.atg Thu Jan 10 15:29:42 2013 +0100 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SimpleLanguage.atg Thu Jan 10 15:29:52 2013 +0100 @@ -28,7 +28,7 @@ = Function { - Function + Function } . @@ -86,7 +86,7 @@ } ";" (. result = factory.createPrint(expressions); .) . - + ReturnStatement = "return" @@ -97,8 +97,8 @@ = ValueExpression [ - ("<" | ">" | "<=" | ">=" | "==" | "!=" ) (. String op = t.val; .) - ValueExpression (. result = factory.createBinary(op, result, right); .) + ("<" | ">" | "<=" | ">=" | "==" | "!=" ) (. String op = t.val; .) + ValueExpression (. result = factory.createBinary(op, result, right); .) ] .