
#10491: Regression, simplifier explosion with Accelerate, cannot compile, increasing tick factor is not a workaround -------------------------------------+------------------------------------- Reporter: robertce | Owner: Type: bug | Status: new Priority: highest | Milestone: 7.10.2 Component: Compiler | Version: 7.10.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): I looked at this a bit too, but I'm now in an all-day meeting. One idea. I think that 95% of the pain comes from cross-module specialisation, dramatically exacerbated by the silent superclasses thing. If I'm right, a much quicker fix would be `-fno-specialise`. A less draconian fix would be an extra flag `-fno-cross-module- specialise`, which turns `Specialise.specImports` into a no-op. GHC never ''used'' to do cross-module specialisation. Maybe we should even disable it by-default in 7.10? Anyway implementing such a flag would take only a minute or two, and would be a Good Thing anyway. Moving HEAD's fix for silent userclasses is a pretty complicated solution. Ben, suggestions: * See if `-fno-specialise` solves the problem * Add the flag and see if that too solves the problem * Add some stats gathering in `Specialise` that reports how many imported functions are specialised, at how many different types, and how big the specialised code is. The idea is so we can more easily see when there's a specialisation blow-up. * If so we can switch off cross-module specialisation by default (although I'd prefer it to be on in 7.12) Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10491#comment:23 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler