Re: [GHC] #5615: ghc produces poor code for `div` with constant powers of 2.

#5615: ghc produces poor code for `div` with constant powers of 2. -------------------------------------+------------------------------------- Reporter: Lennart | Owner: daniel.is.fischer Type: bug | Status: new Priority: normal | Milestone: 7.10.1 Component: Compiler | Version: 7.4.1-rc1 Resolution: | Keywords: Operating System: | Architecture: x86 Unknown/Multiple | Difficulty: Unknown Type of failure: | Blocked By: None/Unknown | Related Tickets: Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by dfeuer): Replying to [comment:17 thomie]: Here's an updated link to [http://research.microsoft.com/pubs/151917 /divmodnote-letter.pdf Daan Leijen's paper]. Euclidean div/mod, along with other benefits, works much better than Haskell div/mod with the idea I've been playing with of implementing `div`-like things and `mod`-like things using `divMod`-like things. In particular, CSE can do some really nifty stuff with either `quotRem` or `divModEuclidean`, but it has no hope with `divMod` (at least as it's currently implemented) in the general case, because the latter has complicated code that gets all torn up before it gets to CSE. I don't know if there's a way to fix that. It does work out if one or both of the operands is known and there's sufficient inlining. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/5615#comment:19 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC