linearscan-hoopl 0.10.2 → 0.11
raw patch · 2 files changed
+6/−10 lines, 2 files
Files
- LinearScan/Hoopl.hs +5/−9
- linearscan-hoopl.cabal +1/−1
LinearScan/Hoopl.hs view
@@ -45,13 +45,12 @@ | NodeOC { getNodeOC :: n O C } blockInfo :: (NodeAlloc nv nr, NonLocal nv, NonLocal nr)- => (Label -> Env Int)- -> BlockInfo Env (Block nv C C) (Block nr C C)+ => BlockInfo Env (Block nv C C) (Block nr C C) (NodeV nv) (NodeV nr)-blockInfo getBlockId = BlockInfo- { blockId = getBlockId . entryLabel+blockInfo = BlockInfo+ { blockId = unsafeCoerce . entryLabel - , blockSuccessors = Prelude.mapM getBlockId . successors+ , blockSuccessors = unsafeCoerce . successors , splitCriticalEdge = \(BlockCC b m e) (BlockCC next _ _) -> do@@ -127,8 +126,5 @@ go n = evalStateT alloc ([n..], newSpillStack offset slotSize) where- alloc = allocate regs (blockInfo getBlockId) opInfo useVerifier $+ alloc = allocate regs blockInfo opInfo useVerifier $ postorder_dfs_from body entry- where- getBlockId :: Hoopl.Label -> Env Int- getBlockId = return . unsafeCoerce
linearscan-hoopl.cabal view
@@ -1,5 +1,5 @@ name: linearscan-hoopl-version: 0.10.2+version: 0.11 synopsis: Makes it easy to use the linearscan register allocator with Hoopl homepage: http://github.com/jwiegley/linearscan-hoopl license: BSD3