diff options
author | David Terei <davidterei@gmail.com> | 2011-11-22 12:30:52 -0800 |
---|---|---|
committer | David Terei <davidterei@gmail.com> | 2011-11-22 13:20:16 -0800 |
commit | 98091a84b20320eb639af91ac853f886dd27c60c (patch) | |
tree | 34a39a445e262ebb47d65a88e9da6f6425086274 | |
parent | af2b9ab54494dbafe21435654d1c044f760fef51 (diff) | |
download | haskell-98091a84b20320eb639af91ac853f886dd27c60c.tar.gz |
Add '-dno-llvm-mangler' flag for debugging purposes
-rw-r--r-- | compiler/main/DriverPipeline.hs | 10 | ||||
-rw-r--r-- | compiler/main/DynFlags.hs | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs index b378cfe673..9851ce1d75 100644 --- a/compiler/main/DriverPipeline.hs +++ b/compiler/main/DriverPipeline.hs @@ -1338,7 +1338,13 @@ runPhase LlvmLlc input_fn dflags | not opt_Static = "dynamic-no-pic" | otherwise = "static" - output_fn <- phaseOutputFilename LlvmMangle + -- hidden debugging flag '-dno-llvm-mangler' to skip mangling + let next_phase = case dopt Opt_NoLlvmMangler dflags of + False -> LlvmMangle + True | dopt Opt_SplitObjs dflags -> Splitter + True -> As + + output_fn <- phaseOutputFilename next_phase io $ SysTools.runLlvmLlc dflags ([ SysTools.Option (llvmOpts !! opt_lvl), @@ -1348,7 +1354,7 @@ runPhase LlvmLlc input_fn dflags ++ map SysTools.Option lc_opts ++ map SysTools.Option fpOpts) - return (LlvmMangle, output_fn) + return (next_phase, output_fn) where -- Bug in LLVM at O3 on OSX. llvmOpts = if platformOS (targetPlatform dflags) == OSDarwin diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index c6f886e0d3..4eb6dc9bcb 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -220,6 +220,7 @@ data DynFlag | Opt_DoStgLinting | Opt_DoCmmLinting | Opt_DoAsmLinting + | Opt_NoLlvmMangler | Opt_WarnIsError -- -Werror; makes warnings fatal @@ -1573,6 +1574,7 @@ dynamic_flags = [ , Flag "dshow-passes" (NoArg (do forceRecompile setVerbosity $ Just 2)) , Flag "dfaststring-stats" (NoArg (setDynFlag Opt_D_faststring_stats)) + , Flag "dno-llvm-mangler" (NoArg (setDynFlag Opt_NoLlvmMangler)) ------ Machine dependant (-m<blah>) stuff --------------------------- |