changeset 15538:9398d53c15b4

Add BaselineControlFlowGraph.compute() factory.
author Josef Eisl <josef.eisl@jku.at>
date Mon, 28 Apr 2014 16:48:36 +0200
parents 8117e9cadb48
children c2f4d7dd944d
files graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineBytecodeParser.java graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineControlFlowGraph.java
diffstat 2 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineBytecodeParser.java	Thu Apr 24 14:00:07 2014 +0200
+++ b/graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineBytecodeParser.java	Mon Apr 28 16:48:36 2014 +0200
@@ -120,7 +120,7 @@
             // add loops ? how do we add looks when we haven't parsed the bytecode?
 
             // create the control flow graph
-            BaselineControlFlowGraph cfg = new BaselineControlFlowGraph(blockMap);
+            BaselineControlFlowGraph cfg = BaselineControlFlowGraph.compute(blockMap);
 
             // create the LIR
             List<? extends AbstractBlock<?>> linearScanOrder = ComputeBlockOrder.computeLinearScanOrder(blockMap.blocks.size(), blockMap.startBlock);
--- a/graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineControlFlowGraph.java	Thu Apr 24 14:00:07 2014 +0200
+++ b/graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineControlFlowGraph.java	Mon Apr 28 16:48:36 2014 +0200
@@ -35,10 +35,15 @@
     private Collection<Loop<BciBlock>> loops;
     private BitSet visited;
 
-    public BaselineControlFlowGraph(BciBlockMapping blockMap) {
+    public static BaselineControlFlowGraph compute(BciBlockMapping blockMap) {
+        BaselineControlFlowGraph cfg = new BaselineControlFlowGraph(blockMap);
+        cfg.computeLoopInformation();
+        return cfg;
+    }
+
+    private BaselineControlFlowGraph(BciBlockMapping blockMap) {
         blocks = blockMap.blocks;
         loops = new ArrayList<>();
-        computeLoopInformation();
     }
 
     public List<BciBlock> getBlocks() {