X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FDriverPhases.hs;h=1532c2fed8f523a932dfb08b3571274d7c0147a2;hb=412040168f72d73acfb25b991c0c757a817a4aba;hp=398da79b79c1725b9be46aa54d14ca090e0480bd;hpb=49a8e5c021009430d373d6224b29004c7d18c408;p=ghc-hetmet.git diff --git a/compiler/main/DriverPhases.hs b/compiler/main/DriverPhases.hs index 398da79..1532c2f 100644 --- a/compiler/main/DriverPhases.hs +++ b/compiler/main/DriverPhases.hs @@ -80,9 +80,9 @@ data Phase | SplitMangle -- after mangler if splitting | SplitAs | As - | LlvmAs -- LLVM assembly to bitcode file - | LlvmOpt -- Run LLVM opt tool over llvm assembly - | LlvmLlc -- LLVM bitcode to native assembly + | LlvmOpt -- Run LLVM opt tool over llvm assembly + | LlvmLlc -- LLVM bitcode to native assembly + | LlvmMangle -- Fix up TNTC by processing assembly produced by LLVM | CmmCpp -- pre-process Cmm source | Cmm -- parse & compile Cmm code @@ -112,9 +112,9 @@ eqPhase Mangle Mangle = True eqPhase SplitMangle SplitMangle = True eqPhase SplitAs SplitAs = True eqPhase As As = True -eqPhase LlvmAs LlvmAs = True eqPhase LlvmOpt LlvmOpt = True eqPhase LlvmLlc LlvmLlc = True +eqPhase LlvmMangle LlvmMangle = True eqPhase CmmCpp CmmCpp = True eqPhase Cmm Cmm = True eqPhase StopLn StopLn = True @@ -139,9 +139,13 @@ nextPhase HCc = Mangle nextPhase Mangle = SplitMangle nextPhase SplitMangle = As nextPhase As = SplitAs -nextPhase LlvmAs = LlvmOpt -nextPhase LlvmOpt = LlvmLlc -nextPhase LlvmLlc = As +nextPhase LlvmOpt = LlvmLlc +#if darwin_TARGET_OS +nextPhase LlvmLlc = LlvmMangle +#else +nextPhase LlvmLlc = As +#endif +nextPhase LlvmMangle = As nextPhase SplitAs = StopLn nextPhase Ccpp = As nextPhase Cc = As @@ -169,9 +173,9 @@ startPhase "raw_s" = Mangle startPhase "split_s" = SplitMangle startPhase "s" = As startPhase "S" = As -startPhase "ll" = LlvmAs -startPhase "bc" = LlvmOpt -startPhase "opt_bc" = LlvmLlc +startPhase "ll" = LlvmOpt +startPhase "bc" = LlvmLlc +startPhase "lm_s" = LlvmMangle startPhase "o" = StopLn startPhase "cmm" = CmmCpp startPhase "cmmcpp" = Cmm @@ -196,9 +200,9 @@ phaseInputExt Cc = "c" phaseInputExt Mangle = "raw_s" phaseInputExt SplitMangle = "split_s" -- not really generated phaseInputExt As = "s" -phaseInputExt LlvmAs = "ll" -phaseInputExt LlvmOpt = "bc" -phaseInputExt LlvmLlc = "opt_bc" +phaseInputExt LlvmOpt = "ll" +phaseInputExt LlvmLlc = "bc" +phaseInputExt LlvmMangle = "lm_s" phaseInputExt SplitAs = "split_s" -- not really generated phaseInputExt CmmCpp = "cmm" phaseInputExt Cmm = "cmmcpp" @@ -210,7 +214,7 @@ haskellish_src_suffixes, haskellish_suffixes, cish_suffixes, haskellish_src_suffixes = haskellish_user_src_suffixes ++ [ "hspp", "hscpp", "hcr", "cmm" ] haskellish_suffixes = haskellish_src_suffixes ++ ["hc", "raw_s"] -cish_suffixes = [ "c", "cpp", "C", "cc", "cxx", "s", "S", "ll", "bc", "opt_bc" ] +cish_suffixes = [ "c", "cpp", "C", "cc", "cxx", "s", "S", "ll", "bc" ] extcoreish_suffixes = [ "hcr" ] -- Will not be deleted as temp files: haskellish_user_src_suffixes = [ "hs", "lhs", "hs-boot", "lhs-boot" ]