[GHC] #11597: Optimize cmpTypeX
#11597: Optimize cmpTypeX -------------------------------------+------------------------------------- Reporter: goldfire | Owner: goldfire Type: task | Status: new Priority: highest | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Simon and I observed that we could skip the kind-check in `cmpTypeX` if the type has no casts, which is the vastly common case. I will collect this information while checking the type and omit the kind check if possible. Putting on "highest" priority basically because this is so easy to do. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11597> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#11597: Optimize cmpTypeX -------------------------------------+------------------------------------- Reporter: goldfire | Owner: goldfire Type: task | Status: new Priority: highest | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 Resolution: | Keywords: 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 simonpj): Also see Bartosz's data in #11371, comment 43. Data here: {{{ 346492 piResultTys Levity -> * 308771 piResultTys * -> * -> * 147177 piResultTys * -> * 18410 piResultTys * -> * -> * -> * 10407 piResultTys * 142 piResultTys * -> # 70 piResultTys Levity 66 piResultTys * -> Constraint 24 piResultTys (* -> *) -> Constraint }}} (Relevance: `piResultTys` is called by `typeKind`, which is called by `cmpTypeX`.) -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11597#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#11597: Optimize cmpTypeX -------------------------------------+------------------------------------- Reporter: goldfire | Owner: goldfire Type: task | Status: new Priority: highest | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 Resolution: | Keywords: 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 Ben Gamari <ben@…>): In [changeset:"073e20ebda73309173b6b6e3ea10164e8808cc79/ghc" 073e20e/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="073e20ebda73309173b6b6e3ea10164e8808cc79" cmpTypeX: Avoid kind comparison when possible This comparison is only necessary when the types being compared contain casts. Otherwise the structural equality of the types implies that their kinds are equal. Test Plan: Validate Reviewers: goldfire, austin, simonpj Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1944 GHC Trac Issues: #11597 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11597#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#11597: Optimize cmpTypeX -------------------------------------+------------------------------------- Reporter: goldfire | Owner: goldfire Type: task | Status: merge Priority: highest | Milestone: 8.0.1 Component: Compiler | Version: 7.10.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 Rev(s): Phab:D1944 Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * status: new => merge * failure: None/Unknown => Compile-time performance bug * differential: => Phab:D1944 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11597#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#11597: Optimize cmpTypeX -------------------------------------+------------------------------------- Reporter: goldfire | Owner: goldfire Type: task | Status: closed Priority: highest | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1944 Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * status: merge => closed * resolution: => fixed Comment: Merged as 6f7baa0eb995b6cef8b9ae4ad0845f76a229bd3b. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11597#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC