[GHC] #5623: GHC 7.2.1 Performance Regression: Vector
GHC
cvs-ghc at haskell.org
Wed May 9 18:56:33 CEST 2012
#5623: GHC 7.2.1 Performance Regression: Vector
---------------------------------+------------------------------------------
Reporter: dterei | Owner: simonpj
Type: bug | Status: new
Priority: high | Milestone: 7.4.2
Component: Compiler | Version: 7.3
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: Runtime performance bug
Difficulty: | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by simonpj@…):
commit 2112f43c466935818a371c53c706608cfa069d01
{{{
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Wed May 9 11:06:44 2012 +0100
Be a little less aggressive about inlining (fixes Trac #5623)
When inlining, we are making a copy of the expression, so we have to
be careful about duplicating work. Previously we were using
exprIsCheap for that, but it is willing to duplicate a cheap primop --
and that is terribly bad if it happens inside some inner array loop
(Trac #5623). So now we use a new function exprIsWorkFree. Even
then there is some wiggle room:
see Note [exprIsWorkFree] in CoreUtils
This commit does make wheel-sieve1 allocate a lot more, but we decided
that's just tough; it's more important for inlining to be robust
about not duplicating work.
compiler/coreSyn/CoreSyn.lhs | 12 ++++----
compiler/coreSyn/CoreUnfold.lhs | 60
++++++++++++++++++------------------
compiler/coreSyn/CoreUtils.lhs | 64
++++++++++++++++++++++++++++++++++++++-
compiler/coreSyn/PprCore.lhs | 4 +-
4 files changed, 101 insertions(+), 39 deletions(-)
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5623#comment:13>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list