[GHC] #9718: Avoid TidyPgm predicting what CorePrep will do
GHC
ghc-devs at haskell.org
Mon Dec 10 09:50:34 UTC 2018
#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
More information about the ghc-tickets
mailing list