
#7450: Regression in optimisation time of functions with many patterns (6.12 to 7.4)? -------------------------------------+------------------------------------- Reporter: iustin | Owner: Type: bug | Status: new Priority: normal | Milestone: 7.12.1 Component: Compiler | Version: 7.6.1 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): Ben, good work. I think you said that the culprit is `consDictBind`. Here are some ideas: * `snocDictBinds is only ever called with a singleton argument. Nuke it in favour of `snocDictBind`. * The calls to `snocDictBind` in `specBind` have just called `flattenDictBinds` which stupidly throws away all the free varaible information cached in the `DictBind`. Better to keep it! To achieve that * `snocDictBind` should take a `DictBind` not a `CoreBind` * `flattenDictBinds` should return a `DictBind` not a `CoreBind`. This is the place we are discarding the free var info. Instead, keep it! Does that make sense? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7450#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler