diff options
Diffstat (limited to 'hadrian/src')
-rw-r--r-- | hadrian/src/Flavour.hs | 6 | ||||
-rw-r--r-- | hadrian/src/Settings/Flavours/Llvm.hs | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/hadrian/src/Flavour.hs b/hadrian/src/Flavour.hs index 06f72a06eb..6c68df21ff 100644 --- a/hadrian/src/Flavour.hs +++ b/hadrian/src/Flavour.hs @@ -8,6 +8,7 @@ module Flavour , splitSections, splitSectionsIf , enableThreadSanitizer , enableDebugInfo, enableTickyGhc + , viaLlvmBackend ) where import Expression @@ -84,6 +85,7 @@ flavourTransformers = M.fromList , "ticky_ghc" =: enableTickyGhc , "split_sections" =: splitSections , "thread_sanitizer" =: enableThreadSanitizer + , "llvm" =: viaLlvmBackend ] where (=:) = (,) @@ -191,3 +193,7 @@ enableThreadSanitizer = addArgs $ mconcat , builder (Cabal Flags) ? arg "thread-sanitizer" , builder RunTest ? arg "--config=have_thread_sanitizer=True" ] + +-- | Use the LLVM backend in stages 1 and later. +viaLlvmBackend :: Flavour -> Flavour +viaLlvmBackend = addArgs $ notStage0 ? builder Ghc ? arg "-fllvm" diff --git a/hadrian/src/Settings/Flavours/Llvm.hs b/hadrian/src/Settings/Flavours/Llvm.hs index ddf07a248d..3882e73f45 100644 --- a/hadrian/src/Settings/Flavours/Llvm.hs +++ b/hadrian/src/Settings/Flavours/Llvm.hs @@ -5,7 +5,6 @@ module Settings.Flavours.Llvm ( quickLlvmFlavour, ) where -import Expression import Flavour import Settings.Flavours.Benchmark @@ -22,8 +21,5 @@ quickLlvmFlavour = mkLlvmFlavour quickFlavour -- | Turn a flavour into an LLVM flavour mkLlvmFlavour :: Flavour -> Flavour -mkLlvmFlavour flav = flav - { name = name flav ++ "-llvm" - , args = mconcat [ args flav - , builder Ghc ? arg "-fllvm" ] - } +mkLlvmFlavour flav = viaLlvmBackend $ flav + { name = name flav ++ "-llvm" } |