4.18. Flag reference

This section is a quick-reference for GHC's command-line flags. For each flag, we also list its static/dynamic status (see Section 4.2, “Static, Dynamic, and Mode options”), and the flag's opposite (if available).

4.18.1. Help and verbosity options

Section 4.5, “Help and verbosity options”

FlagDescriptionStatic/DynamicReverse
-?helpmode-
-helphelpmode-
-ndo a dry rundynamic-
-vverbose mode (equivalent to -v3)dynamic-
-vnset verbosity leveldynamic-
-Vdisplay GHC versionmode-
––supported-languagesdisplay the supported language extensionsmode-
––infodisplay information about the compilermode-
––versiondisplay GHC versionmode-
––numeric-versiondisplay GHC version (numeric only)mode-
––print-libdirdisplay GHC library directorymode-
-ferror-spansoutput full span in error messagesstatic-
-HsizeSet the minimum heap size to sizestatic-
-Rghc-timingSummarise timing stats for GHC (same as +RTS -tstderr)static-

4.18.2. Which phases to run

Section 4.4.3, “Batch compiler mode”

FlagDescriptionStatic/DynamicReverse
-EStop after preprocessing (.hspp file)mode-
-CStop after generating C (.hc file)mode-
-SStop after generating assembly (.s file)mode-
-cDo not linkdynamic-
-x suffixOverride default behaviour for source filesstatic-

4.18.3. Alternative modes of operation

Section 4.4, “Modes of operation”

FlagDescriptionStatic/DynamicReverse
--interactiveInteractive mode - normally used by just running ghci; see Chapter 2, Using GHCi for details.mode-
--makeBuild a multi-module Haskell program, automatically figuring out dependencies. Likely to be much easier, and faster, than using make; see Section 4.4.1, “Using ghc ––make for details..mode-
-e exprEvaluate expr; see Section 4.4.2, “Expression evaluation mode” for details.mode-
-MGenerate dependency information suitable for use in a Makefile; see Section 4.6.11, “Dependency generation” for details.mode-

4.18.4. Redirecting output

Section 4.6.4, “Redirecting the compilation output(s)”

FlagDescriptionStatic/DynamicReverse
-hcsuf suffixset the suffix to use for intermediate C filesdynamic-
-hidir dirset directory for interface filesdynamic-
-hisuf suffixset the suffix to use for interface filesdynamic-
-o filenameset output filenamedynamic-
-odir dirset directory for object filesdynamic-
-ohi filenameset the filename in which to put the interfacedynamic 
-osuf suffixset the output file suffixdynamic-
-stubdir dirredirect FFi stub filesdynamic-
-outputdir dirset output directorydynamic-

4.18.5. Keeping intermediate files

Section 4.6.5, “Keeping Intermediate Files”

FlagDescriptionStatic/DynamicReverse
-keep-hc-file or -keep-hc-filesretain intermediate .hc filesdynamic-
-keep-s-file or -keep-s-filesretain intermediate .s filesdynamic-
-keep-raw-s-file or -keep-raw-s-filesretain intermediate .raw_s filesdynamic-
-keep-tmp-filesretain all intermediate temporary filesdynamic-

4.18.6. Temporary files

Section 4.6.6, “Redirecting temporary files”

FlagDescriptionStatic/DynamicReverse
-tmpdirset the directory for temporary filesdynamic-

4.18.7. Finding imports

Section 4.6.3, “The search path”

FlagDescriptionStatic/DynamicReverse
-idir1:dir2:...add dir, dir2, etc. to import pathstatic/:set-
-iEmpty the import directory liststatic/:set-

4.18.8. Interface file options

Section 4.6.7, “Other options related to interface files”

FlagDescriptionStatic/DynamicReverse
-ddump-hiDump the new interface to stdoutdynamic-
-ddump-hi-diffsShow the differences vs. the old interfacedynamic-
-ddump-minimal-importsDump a minimal set of importsdynamic-
--show-iface fileSee Section 4.4, “Modes of operation”.  

4.18.9. Recompilation checking

Section 4.6.8, “The recompilation checker”

FlagDescriptionStatic/DynamicReverse
-fforce-recompTurn off recompilation checking; implied by any -ddump-X optiondynamic-fno-force-recomp

4.18.10. Interactive-mode options

Section 2.9, “The .ghci file”

FlagDescriptionStatic/DynamicReverse
-ignore-dot-ghciDisable reading of .ghci filesstatic-
-read-dot-ghciEnable reading of .ghci filesstatic-
-fbreak-on-exceptionBreak on any exception throwndynamic-fno-break-on-exception
-fbreak-on-errorBreak on uncaught exceptions and errorsdynamic-fno-break-on-error
-fprint-evld-with-showEnable usage of Show instances in :printdynamic-fno-print-evld-with-show
-fprint-bind-resultTurn on printing of binding results in GHCidynamic-fno-print-bind-result
-fno-print-bind-contentsTurn off printing of binding contents in GHCidynamic-
-fno-implicit-import-qualifiedTurn off implicit qualified import of everything in GHCidynamic-

4.18.11. Packages

Section 4.8, “ Packages ”

FlagDescriptionStatic/DynamicReverse
-package-name PCompile to be part of package Pdynamic-
-package PExpose package Pstatic/:set-
-hide-all-packagesHide all packages by defaultstatic-
-hide-package nameHide package Pstatic/:set-
-ignore-package nameIgnore package Pstatic/:set-
-package-conf fileLoad more packages from filestatic-
-no-user-package-confDon't load the user's package config file.static-
-no-auto-link-packagesDon't automatically link in the haskell98 package.dynamic-

4.18.12. Language options

Language options can be enabled either by a command-line option -Xblah, or by a {-# LANGUAGE blah #-} pragma in the file itself. See Section 7.1, “Language options”

FlagDescriptionStatic/DynamicReverse
-fglasgow-extsEnable most language extensionsdynamic-fno-glasgow-exts
-XOverlappingInstancesEnable overlapping instancesdynamic-XNoOverlappingInstances
-XIncoherentInstancesEnable incoherent instances. Implies -XOverlappingInstances dynamic-XNoIncoherentInstances
-XUndecidableInstancesEnable undecidable instancesdynamic-XNoUndecidableInstances
-fcontext-stack=Nnset the limit for context reduction. Default is 20.dynamic 
-XArrowsEnable arrow notation extensiondynamic-XNoArrows
-XDisambiguateRecordFieldsEnable record field disambiguationdynamic-XNoDisambiguateRecordFields
-XForeignFunctionInterfaceEnable foreign function interface (implied by -fglasgow-exts)dynamic-XNoForeignFunctionInterface
-XGenericsEnable generic classesdynamic-XNoGenerics
-XImplicitParamsEnable Implicit Parameters. Implied by -fglasgow-exts.dynamic-XNoImplicitParams
-firrefutable-tuplesMake tuple pattern matching irrefutabledynamic-fno-irrefutable-tuples
-XNoImplicitPreludeDon't implicitly import Preludedynamic-XImplicitPrelude
-XNoMonomorphismRestrictionDisable the monomorphism restrictiondynamic-XMonomorphismRrestriction
-XNoNPlusKPatternsDisable support for n+k patternsdynamic-XNPlusKPatterns
-XNoMonoPatBindsMake pattern bindings polymorphicdynamic-XMonoPatBinds
-XRelaxedPolyRecRelaxed checking for mutually-recursive polymorphic functionsdynamic-XNoRelaxedPolyRec
-XExtendedDefaultRulesUse GHCi's extended default rules in a normal moduledynamic-XNoExtendedDefaultRules
-XOverloadedStringsEnable overloaded string literals. dynamic-XNoOverloadedStrings
-XGADTsEnable generalised algebraic data types. dynamic-XNoGADTs
-XTypeFamiliesEnable type families.dynamic-XNoTypeFamilies
-XScopedTypeVariablesEnable lexically-scoped type variables. Implied by -fglasgow-exts.dynamic-XNoScopedTypeVariables
-XMonoLocalBindsEnable do not generalise local bindings. dynamic-XNoMonoLocalBinds
-XTemplateHaskellEnable Template Haskell. No longer implied by -fglasgow-exts.dynamic-XNoTemplateHaskell
-XQuasiQuotesEnable quasiquotation.dynamic-XNoQuasiQuotes
-XBangPatternsEnable bang patterns.dynamic-XNoBangPatterns
-XCPPEnable the C preprocessor.dynamic-XNoCPP
-XPatternGuardsEnable pattern guards.dynamic-XNoPatternGuards
-XViewPatternsEnable view patterns.dynamic-XNoViewPatterns
-XUnicodeSyntaxEnable unicode syntax.dynamic-XNoUnicodeSyntax
-XMagicHashAllow "#" as a postfix modifier on identifiers.dynamic-XNoMagicHash
-XNewQualifiedOperatorsEnable new qualified operator syntaxdynamic-XNoNewQualifiedOperators
-XExplicitForALlEnable explicit universal quantification. Implied by -XScopedTypeVariables, -XLiberalTypeSynonyms, -XRank2Types, -XRankNTypes, -XPolymorphicComponents, -XExistentialQuantification dynamic-XNoExplicitForAll
-XPolymorphicComponentsEnable polymorphic components for data constructors.dynamic-XNoPolymorphicComponents
-XRank2TypesEnable rank-2 types.dynamic-XNoRank2Types
-XRankNTypesEnable rank-N types.dynamic-XNoRankNTypes
-XImpredicativeTypesEnable impredicative types.dynamic-XNoImpredicativeTypes
-XExistentialQuantificationEnable existential quantification.dynamic-XNoExistentialQuantification
-XKindSignaturesEnable kind signatures.dynamic-XNoKindSignatures
-XEmptyDataDeclsEnable empty data declarations.dynamic-XNoEmptyDataDecls
-XParallelListCompEnable parallel list comprehensions.dynamic-XNoParallelListComp
-XTransformListCompEnable generalised list comprehensions.dynamic-XNoTransformListComp
-XUnliftedFFITypesEnable unlifted FFI types.dynamic-XNoUnliftedFFITypes
-XLiberalTypeSynonymsEnable liberalised type synonyms.dynamic-XNoLiberalTypeSynonyms
-XTypeOperatorsEnable type operators.dynamic-XNoTypeOperators
-XRecursiveDoEnable recursive do (mdo) notation.dynamic-XNoRecursiveDo
-XPArrEnable parallel arrays.dynamic-XNoPArr
-XRecordWildCardsEnable record wildcards.dynamic-XNoRecordWildCards
-XNamedFieldPunsEnable record puns.dynamic-XNoNamedFieldPuns
-XDisambiguateRecordFieldsEnable record field disambiguation. dynamic-XNoDisambiguateRecordFields
-XUnboxedTuplesEnable unboxed tuples.dynamic-XNoUnboxedTuples
-XStandaloneDerivingEnable standalone deriving.dynamic-XNoStandaloneDeriving
-XDeriveDataTypeableEnable deriving for the Data and Typeable classes.dynamic-XNoDeriveDataTypeable
-XGeneralizedNewtypeDerivingEnable newtype deriving.dynamic-XNoGeneralizedNewtypeDeriving
-XTypeSynonymInstancesEnable type synonyms in instance heads.dynamic-XNoTypeSynonymInstances
-XFlexibleContextsEnable flexible contexts.dynamic-XNoFlexibleContexts
-XFlexibleInstancesEnable flexible instances.dynamic-XNoFlexibleInstances
-XConstrainedClassMethodsEnable constrained class methods.dynamic-XNoConstrainedClassMethods
-XMultiParamTypeClassesEnable multi parameter type classes.dynamic-XNoMultiParamTypeClasses
-XFunctionalDependenciesEnable functional dependencies.dynamic-XNoFunctionalDependencies
-XPackageImportsEnable package-qualified imports.dynamic-XNoPackageImports

4.18.13. Warnings

Section 4.7, “Warnings and sanity-checking”

FlagDescriptionStatic/DynamicReverse
-Wenable normal warningsdynamic-w
-wdisable all warningsdynamic-
-Wallenable almost all warnings (details in Section 4.7, “Warnings and sanity-checking”)dynamic-w
-Werrormake warnings fataldynamic-Wwarn
-Wwarnmake warnings non-fataldynamic-Werror
-fwarn-unrecognised-pragmaswarn about uses of pragmas that GHC doesn't recognisedynamic-fno-warn-unrecognised-pragmas
-fwarn-warnings-deprecationswarn about uses of functions & types that have warnings or deprecated pragmasdynamic-fno-warn-warnings-deprecations
-fwarn-deprecated-flagswarn about uses of commandline flags that are deprecateddynamic-fno-warn-deprecated-flags
-fwarn-duplicate-exportswarn when an entity is exported multiple timesdynamic-fno-warn-duplicate-exports
-fwarn-hi-shadowingwarn when a .hi file in the current directory shadows a librarydynamic-fno-warn-hi-shadowing
-fwarn-implicit-preludewarn when the Prelude is implicitly importeddynamic-fno-warn-implicit-prelude
-fwarn-incomplete-patternswarn when a pattern match could faildynamic-fno-warn-incomplete-patterns
-fwarn-incomplete-record-updateswarn when a record update could faildynamic-fno-warn-incomplete-record-updates
-fwarn-missing-fieldswarn when fields of a record are uninitialiseddynamic-fno-warn-missing-fields
-fwarn-missing-methodswarn when class methods are undefineddynamic-fno-warn-missing-methods
-fwarn-missing-signatureswarn about top-level functions without signaturesdynamic-fno-warn-missing-signatures
-fwarn-name-shadowingwarn when names are shadoweddynamic-fno-warn-name-shadowing
-fwarn-orphanswarn when the module contains orphan instance declarations or rewrite rulesdynamic-fno-warn-orphans
-fwarn-overlapping-patternswarn about overlapping patternsdynamic-fno-warn-overlapping-patterns
-fwarn-simple-patternswarn about lambda-patterns that can faildynamic-fno-warn-simple-patterns
-fwarn-tabswarn if there are tabs in the source filedynamic-fno-warn-tabs
-fwarn-type-defaultswarn when defaulting happensdynamic-fno-warn-type-defaults
-fwarn-monomorphism-restrictionwarn when the Monomorphism Restriction is applieddynamic-fno-warn-monomorphism-restriction
-fwarn-unused-bindswarn about bindings that are unuseddynamic-fno-warn-unused-binds
-fwarn-unused-importswarn about unnecessary importsdynamic-fno-warn-unused-imports
-fwarn-unused-matcheswarn about variables in patterns that aren't useddynamic-fno-warn-unused-matches
-fwarn-unused-do-bindwarn about do bindings that appear to throw away values of types other than ()dynamic-fno-warn-unused-do-bind
-fwarn-wrong-do-bindwarn about do bindings that appear to throw away monadic values that you should have bound insteaddynamic-fno-warn-wrong-do-bind

4.18.14. Optimisation levels

Section 4.9, “Optimisation (code improvement)”

FlagDescriptionStatic/DynamicReverse
-OEnable default optimisation (level 1)dynamic-O0
-OnSet optimisation level ndynamic-O0

4.18.15. Individual optimisations

Section 4.9.2, “-f*: platform-independent flags”

FlagDescriptionStatic/DynamicReverse
-fcase-mergeEnable case-merging. Implied by -O.dynamic-fno-case-merge
-fdicts-strictMake dictionaries strictstatic-fno-dicts-strict
-fmethod-sharingShare specialisations of overloaded functions (default)dynamic-fno-method-sharing
-fdo-eta-reductionEnable eta-reduction. Implied by -O.dynamic-fno-do-eta-reduction
-fdo-lambda-eta-expansionEnable lambda eta-reductiondynamic-fno-do-lambda-eta-expansion
-fexcess-precisionEnable excess intermediate precisiondynamic-fno-excess-precision
-fignore-assertsIgnore assertions in the sourcedynamic-fno-ignore-asserts
-fignore-interface-pragmasIgnore pragmas in interface filesdynamic-fno-ignore-interface-pragmas
-fomit-interface-pragmasDon't generate interface pragmasdynamic-fno-omit-interface-pragmas
-fmax-worker-argsIf a worker has that many arguments, none will be unpacked anymore (default: 10)static-
-fsimplifier-phasesSet the number of phases for the simplifier (default 2). Ignored with -O0.dynamic-
-fmax-simplifier-iterationsSet the max iterations for the simplifierdynamic-
-fno-state-hackTurn off the "state hack" whereby any lambda with a real-world state token as argument is considered to be single-entry. Hence OK to inline things inside it.static-
-fcseTurn on common sub-expression elimination. Implied by -O.dynamic-fno-cse
-ffull-lazinessTurn on full laziness (floating bindings outwards). Implied by -O.dynamic-fno-full-laziness
-frewrite-rulesSwitch on all rewrite rules (including rules generated by automatic specialisation of overloaded functions). Implied by -O. dynamic-fno-rewrite-rules
-fstrictnessTurn on strictness analysis. Implied by -O.dynamic-fno-strictness
-fspec-constrTurn on the SpecConstr transformation. Implied by -O2.dynamic-fno-spec-constr
-fspec-constr-threshold=nSet the size threshold for the SpecConstr transformation to n (default: 200)static-fno-spec-constr-threshold
-fspec-constr-count=nSet to n (default: 3) the maximum number of specialisations that will be created for any one function by the SpecConstr transformationstatic-fno-spec-constr-count
-fliberate-caseTurn on the liberate-case transformation. Implied by -O2.dynamic-fno-liberate-case
-fstatic-argument-transformationTurn on the static argument transformation. Implied by -O2.dynamic-fno-static-argument-transformation
-fliberate-case-threshold=nSet the size threshold for the liberate-case transformation to n (default: 200)static-fno-liberate-case-threshold
-funbox-strict-fieldsFlatten strict constructor fieldsdynamic-fno-unbox-strict-fields
-funfolding-creation-thresholdTweak unfolding settingsstatic-fno-unfolding-creation-threshold
-funfolding-fun-discountTweak unfolding settingsstatic-fno-unfolding-fun-discount
-funfolding-keeness-factorTweak unfolding settingsstatic-fno-unfolding-keeness-factor
-funfolding-use-thresholdTweak unfolding settingsstatic-fno-unfolding-use-threshold
-fno-pre-inliningTurn off pre-inliningstatic-
-feager-blackholingTurn on eager blackholingdynamic-

4.18.16. Profiling options

Chapter 5, Profiling

FlagDescriptionStatic/DynamicReverse
-autoAuto-add _scc_s to all exported functionsdynamic-no-auto
-auto-allAuto-add _scc_s to all top-level functionsdynamic-no-auto-all
-caf-allAuto-add _scc_s to all CAFsdynamic-no-caf-all
-profTurn on profilingstatic-
-tickyTurn on ticky-ticky profilingstatic-

4.18.17. Program coverage options

Section 5.6, “Observing Code Coverage”

FlagDescriptionStatic/DynamicReverse
-fhpcTurn on Haskell program coverage instrumentationstatic-
-hpcdir dirDirectory to deposit .mix files during compilation (default is .hpc)dynamic-

4.18.18. Haskell pre-processor options

Section 4.10.4, “Options affecting a Haskell pre-processor”

FlagDescriptionStatic/DynamicReverse
-F Enable the use of a pre-processor (set with -pgmF) dynamic-

4.18.19. C pre-processor options

Section 4.10.3, “Options affecting the C pre-processor”

FlagDescriptionStatic/DynamicReverse
-cppRun the C pre-processor on Haskell source filesdynamic-
-Dsymbol[=value]Define a symbol in the C pre-processordynamic-Usymbol
-UsymbolUndefine a symbol in the C pre-processordynamic-
-IdirAdd dir to the directory search list for #include filesdynamic-

4.18.20. Code generation options

Section 4.10.5, “Options affecting code generation”

FlagDescriptionStatic/DynamicReverse
-fasmUse the native code generatordynamic-fvia-C
-fvia-CCompile via Cdynamic-fasm
-fno-codeOmit code generationdynamic-
-fbyte-codeGenerate byte-codedynamic-
-fobject-codeGenerate object codedynamic-

4.18.21. Linking options

Section 4.10.6, “Options affecting linking”

FlagDescriptionStatic/DynamicReverse
-sharedGenerate a shared library (as opposed to an executable)dynamic-
-fPICGenerate position-independent code (where available)static-
-dynamicUse dynamic Haskell libraries (if available)static-
-dynloadSelects one of a number of modes for finding shared libraries at runtime.static-
-framework nameOn Darwin/MacOS X only, link in the framework name. This option corresponds to the -framework option for Apple's Linker.dynamic-
-framework-path nameOn Darwin/MacOS X only, add dir to the list of directories searched for frameworks. This option corresponds to the -F option for Apple's Linker.dynamic-
-llibLink in library libdynamic-
-LdirAdd dir to the list of directories searched for librariesdynamic-
-main-isSet main module and functiondynamic-
--mk-dllDLL-creation mode (Windows only)dynamic-
-no-hs-mainDon't assume this program contains maindynamic-
-no-linkOmit linkingdynamic-
-split-objsSplit objects (for libraries)dynamic-
-staticUse static Haskell librariesstatic-
-threadedUse the threaded runtimestatic-
-debugUse the debugging runtimestatic-
-eventlogEnable runtime event tracingstatic-
-fno-gen-manifestDo not generate a manifest file (Windows only)dynamic-
-fno-embed-manifestDo not embed the manifest in the executable (Windows only)dynamic-
-fno-shared-implibDon't generate an import library for a DLL (Windows only)dynamic-

4.18.22. Replacing phases

Section 4.10.1, “Replacing the program for one or more phases”

FlagDescriptionStatic/DynamicReverse
-pgmL cmdUse cmd as the literate pre-processordynamic-
-pgmP cmdUse cmd as the C pre-processor (with -cpp only)dynamic-
-pgmc cmdUse cmd as the C compilerdynamic-
-pgmm cmdUse cmd as the manglerdynamic-
-pgms cmdUse cmd as the splitterdynamic-
-pgma cmdUse cmd as the assemblerdynamic-
-pgml cmdUse cmd as the linkerdynamic-
-pgmdll cmdUse cmd as the DLL generatordynamic-
-pgmF cmdUse cmd as the pre-processor (with -F only)dynamic-
-pgmwindres cmdUse cmd as the program for embedding manifests on Windows.dynamic-

4.18.23. Forcing options to particular phases

Section 4.10.2, “Forcing options to a particular phase”

FlagDescriptionStatic/DynamicReverse
-optL optionpass option to the literate pre-processordynamic-
-optP optionpass option to cpp (with -cpp only)dynamic-
-optF optionpass option to the custom pre-processordynamic-
-optc optionpass option to the C compilerdynamic-
-optm optionpass option to the manglerdynamic-
-opta optionpass option to the assemblerdynamic-
-optl optionpass option to the linkerdynamic-
-optdll optionpass option to the DLL generatordynamic-
-optwindres optionpass option to windres.dynamic-

4.18.24. Platform-specific options

Section 4.14, “Platform-specific Flags”

FlagDescriptionStatic/DynamicReverse
-monly-[432]-regs(x86 only) give some registers back to the C compilerdynamic-

4.18.25. External core file options

Section 4.16, “Generating and compiling External Core Files”

FlagDescriptionStatic/DynamicReverse
-fext-coreGenerate .hcr external Core filesdynamic-

4.18.26. Compiler debugging options

Section 4.17, “Debugging the compiler”

FlagDescriptionStatic/DynamicReverse
-dcore-lintTurn on internal sanity checkingdynamic-
-ddump-asmDump assemblydynamic-
-ddump-bcosDump interpreter byte codedynamic-
-ddump-cmmDump C-- outputdynamic-
-ddump-cpranalDump output from CPR analysisdynamic-
-ddump-cseDump CSE outputdynamic-
-ddump-derivDump deriving outputdynamic-
-ddump-dsDump desugarer outputdynamic-
-ddump-flatCDump “flat” Cdynamic-
-ddump-foreignDump foreign export stubsdynamic-
-ddump-hpcDump after instrumentation for program coveragedynamic-
-ddump-inliningsDump inlining infodynamic-
-ddump-occur-analDump occurrence analysis outputdynamic-
-ddump-opt-cmmDump the results of C-- to C-- optimising passesdynamic-
-ddump-parsedDump parse treedynamic-
-ddump-prepDump prepared coredynamic-
-ddump-rnDump renamer outputdynamic-
-ddump-rulesDump rulesdynamic-
-ddump-simplDump final simplifier outputdynamic-
-ddump-simpl-phasesDump output from each simplifier phasedynamic-
-ddump-simpl-iterationsDump output from each simplifier iterationdynamic-
-ddump-specDump specialiser outputdynamic-
-ddump-splicesDump TH spliced expressions, and what they evaluate todynamic-
-ddump-stgDump final STGdynamic-
-ddump-stranalDump strictness analyser outputdynamic-
-ddump-tcDump typechecker outputdynamic-
-ddump-typesDump type signaturesdynamic-
-ddump-worker-wrapperDump worker-wrapper outputdynamic-
-ddump-if-traceTrace interface filesdynamic-
-ddump-tc-traceTrace typecheckerdynamic-
-ddump-rn-traceTrace renamerdynamic-
-ddump-rn-statsRenamer statsdynamic-
-ddump-simpl-statsDump simplifier statsdynamic-
-dno-debug-outputSuppress unsolicited debugging outputstatic-
-dppr-debugTurn on debug printing (more verbose)static-
-dsuppress-uniquesSuppress the printing of uniques in debug output (easier to use diff.static-
-dppr-nopragsDon't output pragma info in dumpsstatic-
-dppr-user-lengthSet the depth for printing expressions in error msgsstatic-
-dsource-statsDump haskell source statsdynamic-
-dcmm-lintC-- pass sanity checkingdynamic-
-dstg-lintSTG pass sanity checkingdynamic-
-dstg-statsDump STG statsdynamic-
-dverbose-core2coreShow output from each core-to-core passdynamic-
-dverbose-stg2stgShow output from each STG-to-STG passdynamic-
-dshow-passesPrint out each pass name as it happensdynamic-
-dfaststring-statsShow statistics for fast string usage when finisheddynamic-

4.18.27. Misc compiler options

FlagDescriptionStatic/DynamicReverse
-fno-hi-version-checkDon't complain about .hi file mismatchesstatic-
-dno-black-holingTurn off black holing (probably doesn't work)static-
-fhistory-sizeSet simplification history sizestatic-
-funregisterisedUnregisterised compilation (use -unreg instead)static-
-fno-asm-manglingTurn off assembly mangling (use -unreg instead)dynamic-