From d37b2cfec1cfcbc3b6cfcedc88a9c6775312f8eb Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 18 Apr 2019 23:24:56 +0200 Subject: Lower to isa WIP --- Compiler.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'Compiler.hs') diff --git a/Compiler.hs b/Compiler.hs index 2e3b80b..8c32236 100644 --- a/Compiler.hs +++ b/Compiler.hs @@ -6,7 +6,6 @@ import Control.Monad.State.Strict import Data.List import qualified Data.Map.Strict as Map import qualified Data.Set as Set -import Debug.Trace import AST import Intermediate @@ -160,7 +159,10 @@ compileProgram (Program values) = runCM $ do switchBlock bnext addIns (RNone, IDiscard ref) setTerm IExit - ([firstbb], otherbbs) <- liftM (partition ((== bstart) . bbId) . Map.elems) (gets csBlocks) + (bbs, otherbbs) <- liftM (partition ((== bstart) . bbId) . Map.elems) (gets csBlocks) + let firstbb = case bbs of + [bb] -> bb + _ -> error "Multiple bb's with the same ID!" funcs <- gets csFunctions datas <- gets csDatas return (IRProgram (firstbb : otherbbs) funcs datas) -- cgit v1.2.3-70-g09d2