Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/alloc/simple/LinearScanAllocator.java @ 4295:1e3ecb08767d
Output of lifetime intervals for new register allocator
author | Christian Wimmer <Christian.Wimmer@Oracle.com> |
---|---|
date | Wed, 18 Jan 2012 15:04:03 -0800 |
parents | 48cbd78fa964 |
children | df5547057954 c66ddad845a4 |
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/alloc/simple/LinearScanAllocator.java Wed Jan 18 18:21:52 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/alloc/simple/LinearScanAllocator.java Wed Jan 18 15:04:03 2012 -0800 @@ -52,7 +52,7 @@ this.lir = lir; this.frameMap = frameMap; - this.dataFlow = new DataFlowAnalysis(context, lir, frameMap.registerConfig); + this.dataFlow = new DataFlowAnalysis(lir, frameMap.registerConfig); this.blockBeginLocations = new LocationMap[lir.linearScanOrder().size()]; this.blockEndLocations = new LocationMap[lir.linearScanOrder().size()]; this.moveResolver = new MoveResolverImpl(frameMap); @@ -159,16 +159,17 @@ assert LIRVerifier.verify(true, lir, frameMap); dataFlow.execute(); + IntervalPrinter.printBeforeAllocation("Before register allocation", context, lir, frameMap.registerConfig, dataFlow); + allocate(); - context.observable.fireCompilationEvent("After linear scan allocation", lir); + IntervalPrinter.printAfterAllocation("After linear scan allocation", context, lir, frameMap.registerConfig, dataFlow, blockEndLocations); ResolveDataFlow resolveDataFlow = new ResolveDataFlowImpl(lir, moveResolver, dataFlow); resolveDataFlow.execute(); - frameMap.finish(); - context.observable.fireCompilationEvent("After resolve data flow", lir); + IntervalPrinter.printAfterAllocation("After resolve data flow", context, lir, frameMap.registerConfig, dataFlow, blockEndLocations); assert RegisterVerifier.verify(lir, frameMap); AssignRegisters assignRegisters = new AssignRegistersImpl(lir, frameMap);