From f9d28028b5d3210637132c93a156275b474ad319 Mon Sep 17 00:00:00 2001 From: Samuel Hammersberg Date: Fri, 28 Apr 2023 14:24:44 +0200 Subject: [PATCH] The GC argument is now passed to the compiler and codegen. --- src/Codegen/Codegen.hs | 4 ++-- src/Compiler.hs | 4 ++-- src/Main.hs | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Codegen/Codegen.hs b/src/Codegen/Codegen.hs index e3343d7..60135a7 100644 --- a/src/Codegen/Codegen.hs +++ b/src/Codegen/Codegen.hs @@ -18,8 +18,8 @@ import TypeChecker.TypeCheckerIr (Ident (..)) An easy way to actually "compile" this output is to Simply pipe it to LLI -} -generateCode :: MIR.Program -> Err String -generateCode (MIR.Program scs) = do +generateCode :: MIR.Program -> Bool -> Err String +generateCode (MIR.Program scs) addGc = do let tree = filter (not . detectPrelude) (sortBy lowData scs) let codegen = initCodeGenerator tree llvmIrToString . instructions <$> execStateT (compileScs tree) codegen diff --git a/src/Compiler.hs b/src/Compiler.hs index 43c9c5e..12f36b0 100644 --- a/src/Compiler.hs +++ b/src/Compiler.hs @@ -29,5 +29,5 @@ compileClang = , "-" ] -compile :: String -> IO String -compile s = optimize s >>= compileClang +compile :: String -> Bool -> IO String +compile s addGc = optimize s >>= compileClang diff --git a/src/Main.hs b/src/Main.hs index 316024d..c870d8b 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -137,7 +137,7 @@ main' opts s = log monomorphized printToErr "\n -- Compiler --" - generatedCode <- fromErr $ generateCode monomorphized + generatedCode <- fromErr $ generateCode monomorphized (gc opts) check <- doesPathExist "output" when check (removeDirectoryRecursive "output") @@ -146,7 +146,7 @@ main' opts s = writeFile "output/llvm.ll" generatedCode debugDotViz - compile generatedCode + compile generatedCode (gc opts) printToErr "Compilation done!" printToErr "\n-- Program output --" print =<< spawnWait "./output/hello_world"