[GHC] #11233: Improve optimisation of pattern synonym matching

#11233: Improve optimisation of pattern synonym matching -------------------------------------+------------------------------------- Reporter: mpickering | Owner: Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Keywords: newcomer, | Operating System: Unknown/Multiple PatternSynonyms | Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: #11224 Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Currently GHC does a very poor job of optimising pattern matches which include pattern synonyms. It would be good to modify `sameGroup` in `compiler/deSugar/Match.hs` to be a lot smarter about when it is safe to group two pattern matches together. Grouping was originally disabled as it is a bit trickier than originally thought. See #11224 for details. The rule was originally to group two pattern matches together `PgSyn p1` and `PgSyn p2` when `p1 == p2`. This rule wasn't safe when `p1` had a polymorphic return type and thus could have a different type on each branch even though syntactically identical. A good solution to this ticket would come up with a smarter rule about when it is and isn't safe to group two together in the same spirit as the more complicated rules for view patterns. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11233 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11233: Improve optimisation of pattern synonym matching -------------------------------------+------------------------------------- Reporter: mpickering | Owner: Type: task | Status: closed Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Resolution: fixed | Keywords: newcomer, | PatternSynonyms Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #11224 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by mpickering): * status: new => closed * resolution: => fixed -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11233#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC