
#9718: Avoid TidyPgm predicting what CorePrep will do -------------------------------------+------------------------------------- Reporter: simonpj | Owner: (none) Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.3 Resolution: | Keywords: CodeGen, CAFs Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonmar): @osa1 sorry I assumed too much background knowledge here. Let me fill in the blanks: `-fomit-interface-pragmas` is on by default with `-O0`, but off with `-O` and above. It is the flag that controls whether we emit optimisation info, including things like unfoldings, strictness signatures, arity, and CAF info into the interface file. When the flag is on, we only emit types and nothing else. It normally isn't used explicitly on the command line. Perhaps it should be documented, I'm not sure what our policy on documenting "internal" flags like this is currently. The relevance to `-fno-code` is this: * we were considering whether `-fno-code` affects the ABI or not, because if it affects the ABI, then it needs to be included in the flags we fingerprint in `FlagChecher` * Prior to your changes here, `-fno-code` does not affect the ABI, but now it does, because the CAF info may change if we use `-fno-code`. * But, this only applies if `-fomit-interface-pragmas` is off (which is also included in `FlagChecker` right now). * So, we must now include `-fno-code` in `FlagChecker` Make sense? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9718#comment:39 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler