[GHC] #11163: New exhaustiveness checker breaks T5642

#11163: New exhaustiveness checker breaks T5642 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.2 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): | Wiki Page: -------------------------------------+------------------------------------- The new exhaustiveness checker drastically increases compile time of the `T5642` testcase. From the profile it appears that a great deal of time is being spent evaluating `Check.mkPmId.occname`, {{{ COST CENTRE MODULE %time %alloc mkPmId.occname Check 73.7 16.9 mkOneConFull Check 3.4 10.2 deSugar HscMain 2.8 14.8 mkOneConFull.arguments Check 2.5 5.5 pmTraverse Check 1.6 0.8 mkOneConFull.subst1 Check 1.5 5.9 wrapK.go Check 1.5 5.9 cMatcher Check 1.2 2.7 canEvVar TcCanonical 1.0 3.4 }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11163 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11163: New exhaustiveness checker breaks T5642 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: gkaracha Type: bug | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.2 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): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * owner: => gkaracha -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11163#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11163: New exhaustiveness checker breaks T5642
-------------------------------------+-------------------------------------
Reporter: bgamari | Owner: gkaracha
Type: bug | Status: new
Priority: high | Milestone: 8.0.1
Component: Compiler | Version: 7.10.2
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):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by Ben Gamari

#11163: New exhaustiveness checker breaks T5642 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: gkaracha Type: bug | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.2 Resolution: | Keywords: pattern | checker Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * keywords: => pattern checker -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11163#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11163: New exhaustiveness checker breaks T5642 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: gkaracha Type: bug | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.2 Resolution: | Keywords: pattern | checker, PatternMatchWarnings Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * keywords: pattern checker => pattern checker, PatternMatchWarnings -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11163#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11163: New exhaustiveness checker breaks T5642 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: gkaracha Type: bug | Status: new Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.2 Resolution: | Keywords: pattern | checker, PatternMatchWarnings Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by gkaracha): After merging Phab:D1795, I checked again the situation with T5642: With the old pattern match checker the deviation (for bytes allocated) for #5642 was 196.8%. With the current HEAD it is 222.3%, yet this increase is not only due to the new checker. Disabling coverage checking for the test gives deviation 212.0%, which means that only 10.3% is due to the new checker. Concerning this 10.3%, the module uses the generics library and function `to :: Rep a x -> a` has 100 clauses, all with nested patterns. Most importantly, `Rep` is a type family, which means that the new checker goes the extra mile to ensure they are all well-typed. Hence, this 10.3% is quite reasonable (the old pattern match checker was --in most cases-- faster because it did not take into account types). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11163#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11163: New exhaustiveness checker breaks T5642 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: gkaracha Type: bug | Status: closed Priority: high | Milestone: 8.0.1 Component: Compiler | Version: 7.10.2 Resolution: fixed | Keywords: pattern | checker, PatternMatchWarnings Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by gkaracha): * status: new => closed * resolution: => fixed -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11163#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC