
#9370: unfolding info as seen when building a module depends on flags in a previously-compiled module -------------------------------------+------------------------------------- Reporter: carter | Owner: Type: bug | Status: new Priority: high | Milestone: 7.12.1 Component: Compiler | Version: 7.8.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by simonpj): Just to add: I think Reid's comment:14 is spot on. The solution, I believe, is this: * Always read in unfoldings, etc, including with `-O`. (Possible exception: one-shot mode.) * Check the `-fignore-interface-pragmas` flag when considering inlining a function. So an `Id` would always contain its inlining; but at the ''usage sites'' we'd decide whether or not to use it. An extra test at every inlining, but there are already a lot of tests at inlining sites! This would be a good, small, contained project for someone. Volunteers? If it's mission-critical for anyone, please yell. Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9370#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler