OpenJDK / graal / graal-jvmci-8
changeset 2953:445233cd91df
added GraalOptions.TestGraphDuplication, fixed graph duplication
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Wed, 15 Jun 2011 11:21:53 +0200 |
parents | ec86f14be4cf |
children | 859dbeadc042 |
files | graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/graph/IR.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/If.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/Local.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/lir/FrameMap.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/DeadCodeEliminationPhase.java graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Node.java |
diffstat | 7 files changed, 13 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java Wed Jun 15 09:50:02 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java Wed Jun 15 11:21:53 2011 +0200 @@ -57,6 +57,8 @@ public static boolean BailoutOnException = ____; public static boolean DeoptALot = ____; + public static boolean TestGraphDuplication = ____; + /** * See {@link Filter#Filter(String, Object)}. */ @@ -105,7 +107,7 @@ // Code generator settings public static boolean GenLIR = true; public static boolean GenCode = true; - public static boolean UseBranchPrediction = ____; + public static boolean UseBranchPrediction = true; public static boolean UseConstDirectCall = ____;
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/graph/IR.java Wed Jun 15 09:50:02 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/graph/IR.java Wed Jun 15 11:21:53 2011 +0200 @@ -70,7 +70,12 @@ public void build() { new GraphBuilderPhase(compilation, compilation.method, false, false).apply(compilation.graph); printGraph("After GraphBuilding", compilation.graph); - //new DuplicationPhase().apply(compilation.graph); + + if (GraalOptions.TestGraphDuplication) { + new DuplicationPhase().apply(compilation.graph); + printGraph("After Duplication", compilation.graph); + } + new DeadCodeEliminationPhase().apply(compilation.graph); printGraph("After DeadCodeElimination", compilation.graph);
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/If.java Wed Jun 15 09:50:02 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/If.java Wed Jun 15 11:21:53 2011 +0200 @@ -109,7 +109,7 @@ @Override public String shortName() { - return "If " + compare().condition.operator; + return "If " + (compare() == null ? "?" : compare().condition.operator); } @Override
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/Local.java Wed Jun 15 09:50:02 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/Local.java Wed Jun 15 11:21:53 2011 +0200 @@ -115,7 +115,7 @@ @Override public Node copy(Graph into) { - Local x = new Local(kind, index, start(), into); + Local x = new Local(kind, index, null, into); x.setDeclaredType(declaredType()); return x; }
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/lir/FrameMap.java Wed Jun 15 09:50:02 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/lir/FrameMap.java Wed Jun 15 11:21:53 2011 +0200 @@ -74,10 +74,6 @@ * </pre> * Note that the size {@link Bytecodes#ALLOCA ALLOCA} blocks and {@code monitor}s in the frame may be greater * than the size of a {@linkplain CiTarget#spillSlotSize spill slot}. - * - * @author Thomas Wuerthinger - * @author Ben L. Titzer - * @author Doug Simon */ public final class FrameMap {
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/DeadCodeEliminationPhase.java Wed Jun 15 09:50:02 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/DeadCodeEliminationPhase.java Wed Jun 15 11:21:53 2011 +0200 @@ -100,6 +100,7 @@ for (Node node : graph.getNodes()) { if (node != Node.Null && !flood.isMarked(node) && isCFG(node)) { if (node instanceof LoopEnd) { + assert ((LoopEnd) node).loopBegin() != null : "node " + node; brokenLoops.add(((LoopEnd) node).loopBegin()); } // iterate backwards so that the predecessor indexes in removePhiPredecessor are correct
--- a/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Node.java Wed Jun 15 09:50:02 2011 +0200 +++ b/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Node.java Wed Jun 15 11:21:53 2011 +0200 @@ -126,6 +126,7 @@ usages.clear(); predecessors.clear(); predecessorsIndex.clear(); + delete(); } public void delete() {