extend '-fmax-worker-args' limit to specialiser (Trac #11565)
authorSergei Trofimovich <slyfox@gentoo.org>
Fri, 2 Sep 2016 17:47:56 +0000 (18:47 +0100)
committerSergei Trofimovich <siarheit@google.com>
Fri, 2 Sep 2016 20:42:44 +0000 (21:42 +0100)
commitf93c363fab1ac8ce6f0b474f5967b0b097995827
tree8c8b7f5d9ff70ad614fa6b66897d69df8563c620
parent133a5cc6647a2ea5a63b8d81f9f357f89cb541ef
extend '-fmax-worker-args' limit to specialiser (Trac #11565)

It's a complementary change to
    a48de37dcca98e7d477040b0ed298bcd1b3ab303
    restore -fmax-worker-args handling (Trac #11565)

I don't have a small example but I've noticed another
discrepancy when was profiling GHC for performance

    cmmExprNative :: ReferenceKind -> CmmExpr -> CmmOptM CmmExpr

was specialised by 'spec_one' down to a function with arity 159.
As a result 'perf record' pointed at it as at slowest
function in whole ghc library.

I've extended -fmax-worker-args effect to 'spec_one'
as it does the same worker/wrapper split to push
arguments to the heap.

The change decreases heap usage on a synth.bash benchmark
(Trac #9221) from 67G down to 64G (-4%). Benchmark runtime
decreased from 14.5 s down to 14.s (-7%).

Signed-off-by: Sergei Trofimovich <siarheit@google.com>
Reviewers: ezyang, simonpj, austin, goldfire, bgamari

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D2507

GHC Trac Issues: #11565
compiler/specialise/SpecConstr.hs
compiler/stranal/WwLib.hs