
#14644: Improve cmm/assembly for pattern matches with two constants. -------------------------------------+------------------------------------- Reporter: AndreasK | Owner: AndreasK Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 (CodeGen) | Keywords: Codegen, CMM, Resolution: | Patterns, Pattern Matching Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D4294 Wiki Page: | -------------------------------------+------------------------------------- Comment (by AndreasK): Replying to [comment:6 simonpj]:
A 10% improvement is amazing.
Indeed! Nothing in nofib gets up to 10% but wheel-sieve1 comes close. * 17 programs are changed (contain that kind of case statement) * 15 Show no significant runtime difference. (It's fair to assume it's an improvement but not mensurable with the noise on my machine) * k-nucleotide improves by ~1.2% * wheel-sieve1 has the code in a inner loop. It improves by ~4.3% in mode=normal. Increasing the problem size makes the difference even bigger up to somewhere around 8-9%
If you commit this, please include a Note explaining the strategy, and
pointing to the ticket. Will do. **** The patch is up on phab. If someone can run this on an older intel (or even better amd) processor and check the result that would be great to make sure it's not just a pecularity of my i7-6700K. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14644#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler