
#7596: Opportunity to improve CSE ---------------------------------+------------------------------------------ Reporter: simonpj | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.1 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ In `nofib/spectral/mandel2`, the function `check_perim` calls `point_colour` on various arguments. After inlining `point_colour` there is the opportunity to CSE among the sub-expressions the inlinings create. In GHC 7.6, the join point didn't have a "one-shot" flag, so the full laziness pass floated these sub-expressions out, and they got CSEd. As part of Ilya's new demand analyser changes, we get the "one-shot" flag right, so don't MFE those sub-expressions, so they aren't CSEd. As a result, allocation on `mandel2` increases slightly (4.2%). The solution is, I think, to do something a bit like like `CorePrep` before CSE. At the moment if we have {{{ case f (I# y) of { (a,b) -> case g (I# y) of { (p,q) -> ... }} }}} we stuipdly don't CSE that `(I# y)` even though it is manifestly sharable. Somehow we should. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7596 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#7596: Opportunity to improve CSE
---------------------------------+------------------------------------------
Reporter: simonpj | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.6.1
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by simonpj@…):
commit 0831a12ea2fc73c33652eeec1adc79fa19700578
{{{
Author: Simon Peyton Jones

#7596: Opportunity to improve CSE ---------------------------------+------------------------------------------ Reporter: simonpj | Owner: simonpj Type: bug | Status: new Priority: normal | Milestone: 7.8.1 Component: Compiler | Version: 7.6.1 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Changes (by igloo): * owner: => simonpj * milestone: => 7.8.1 -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7596#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC