diff --git a/.gitignore b/.gitignore index 8a93b78f..3b2181a0 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ cabal.project.local output/ *.ibc *.agdai +.output diff --git a/grin/src/Pipeline/Optimizations.hs b/grin/src/Pipeline/Optimizations.hs index 128bfbff..188eafda 100644 --- a/grin/src/Pipeline/Optimizations.hs +++ b/grin/src/Pipeline/Optimizations.hs @@ -39,7 +39,7 @@ import Transformations.Optimising.SimpleDeadParameterElimination (simpleDeadPara import Transformations.Optimising.CSE (commonSubExpressionElimination) import Transformations.Optimising.CaseCopyPropagation (caseCopyPropagation) import Transformations.Optimising.GeneralizedUnboxing (generalizedUnboxing) -import Transformations.Optimising.ArityRaisingSimple (arityRaising) +import Transformations.Optimising.ArityRaising (arityRaising) import Transformations.Optimising.CaseHoisting (caseHoisting) import Transformations.Optimising.Inlining (lateInlining) import Transformations.Optimising.NonSharedElimination (nonSharedElimination) diff --git a/grin/src/Pipeline/Pipeline.hs b/grin/src/Pipeline/Pipeline.hs index cc245f63..81037012 100644 --- a/grin/src/Pipeline/Pipeline.hs +++ b/grin/src/Pipeline/Pipeline.hs @@ -126,7 +126,7 @@ transformation n = \case CaseCopyPropagation -> noEffectMap $ noTypeEnv caseCopyPropagation CaseHoisting -> noEffectMap caseHoisting GeneralizedUnboxing -> noEffectMap generalizedUnboxing - ArityRaising -> noEffectMap (arityRaising n) + ArityRaising -> noEffectMap arityRaising LateInlining -> noEffectMap lateInlining UnitPropagation -> noEffectMap unitPropagation @@ -346,6 +346,7 @@ saveTransformationInfo name content = do outputDir <- view poOutputDir let fname = printf "%03d.%s" n name liftIO $ do + createDirectoryIfMissing True outputDir writeFile (outputDir fname) $ show $ plain $ pretty content saveTypeEnv :: PipelineM () diff --git a/grin/test/Samples/ArityFullRemoveSpec.hs b/grin/test/Samples/ArityFullRemoveSpec.hs index 48d1118a..394c8318 100644 --- a/grin/test/Samples/ArityFullRemoveSpec.hs +++ b/grin/test/Samples/ArityFullRemoveSpec.hs @@ -14,7 +14,7 @@ runTests = hspec spec spec :: Spec spec = do -- TODO: Reenable before merge - xit "multi indirection - full remove" $ do + it "multi indirection - full remove" $ do let before = [prog| grinMain = p2 <- store (CInt 1) @@ -57,9 +57,12 @@ spec = do [ Pass [HPT CompileToAbstractProgram, HPT RunAbstractProgramPure] , T ArityRaising , T CopyPropagation + , Pass [HPT CompileToAbstractProgram, HPT RunAbstractProgramPure] , T SimpleDeadVariableElimination + , Pass [HPT CompileToAbstractProgram, HPT RunAbstractProgramPure] , T ArityRaising , T CopyPropagation + , Pass [HPT CompileToAbstractProgram, HPT RunAbstractProgramPure] , T SimpleDeadVariableElimination ] (pipelineInfo, transformed) <- pipeline defaultOpts Nothing before ppln