packages feed

linearscan-hoopl 0.10.2 → 0.11

raw patch · 2 files changed

+6/−10 lines, 2 files

Files

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