#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 <[email protected]>
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
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs