
#13536: Program which terminates instantly in GHC 8.0.2 runs for minutes with 8.2.1 -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.2.1 Component: Compiler | Version: 8.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by rwbarton): Before I forget, there's another opportunity here because of the special form of `sat_s5Dp` after CSE, namely optimizing it to {{{ sat_s5Dp = eta_s5Di }}} We already do this at the Core level and I imagine it wouldn't be hard to do here also. I don't know whether this pattern arises frequently in practice. But consider for example {{{#!hs newtype T a = MkT a f (x, y) = (MkT x, y) }}} (Without the `MkT` the Core simplifier can turn this into `f z@(_, _) = z`, which turns into much simpler code.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13536#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler