[commit: ghc] wip/T10137: CmmSwitch: T783 regresses a lot (1495ed5)
git at git.haskell.org
git at git.haskell.org
Thu Mar 19 15:50:50 UTC 2015
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/T10137
Link : http://ghc.haskell.org/trac/ghc/changeset/1495ed521601affcd6e2a7a2bf9d579dc6b6486f/ghc
>---------------------------------------------------------------
commit 1495ed521601affcd6e2a7a2bf9d579dc6b6486f
Author: Joachim Breitner <mail at joachim-breitner.de>
Date: Thu Mar 19 16:45:46 2015 +0100
CmmSwitch: T783 regresses a lot
but it is the only one exhibiting that. The cause is the changed order
of branches in an if-then-else tree, which makes the hoople data flow
analysis traverse the blocks in a suboptimal order. Reverting that gets
rid of this regression, but has a consistent, if only very small
(+0.2%), negative effect on runtime. So I conclude that this test is an
extreme outlier and no reason to change the code.
>---------------------------------------------------------------
1495ed521601affcd6e2a7a2bf9d579dc6b6486f
testsuite/tests/perf/compiler/all.T | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T
index a874866..d20d676 100644
--- a/testsuite/tests/perf/compiler/all.T
+++ b/testsuite/tests/perf/compiler/all.T
@@ -390,7 +390,7 @@ test('T783',
# 2014-09-03: 223377364 (Windows) better specialisation, raft of core-to-core optimisations
# 2014-12-22: 235002220 (Windows) not sure why
- (wordsize(64), 441932632, 10)]),
+ (wordsize(64), 719814352, 10)]),
# prev: 349263216 (amd64/Linux)
# 07/08/2012: 384479856 (amd64/Linux)
# 29/08/2012: 436927840 (amd64/Linux)
@@ -405,6 +405,10 @@ test('T783',
# (general round of updates)
# 2014-08-29: 441932632 (amd64/Linux)
# (better specialisation, raft of core-to-core optimisations)
+ # 2014-08-29: 719814352 (amd64/Linux)
+ # (changed order of cmm block causes analyses to allocate much more,
+ # but the changed order is slighly better in terms of runtime, and
+ # this test seems to be an extreme outlier.)
extra_hc_opts('-static')
],
compile,[''])
More information about the ghc-commits
mailing list