[GHC] #4941: SpecConstr generates functions that do not use their arguments
GHC
cvs-ghc at haskell.org
Thu Mar 21 11:46:30 CET 2013
#4941: SpecConstr generates functions that do not use their arguments
---------------------------------+------------------------------------------
Reporter: simonpj | Owner:
Type: task | Status: new
Priority: normal | Milestone: _|_
Component: Compiler | Version: 7.0.1
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: Runtime performance bug
Difficulty: | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by nfrisby):
Replying to [comment:20 nfrisby]:
> I'm investigating nucleic2 at the moment; it's changing something
currently not specifically tracked by ticky, so I'm resurrecting more
counters. There's nothing obvious to me in the STG, at least.
It's actually pretty clear in the STG. A let at the entry to
$w$wvar_most_distant_atom with 12 free Float# vars gets inlined into
numerous thunks, at least 24 (25?) of which are allocated all at once. In
the CMM `Hp = Hp + 1376` becomes `Hp = Hp + 3576`. Some arithmetic with
these numbers just about covers the reported ticky difference for
$w$wvar_most_distant_atom.
Needs more inspection (distinct from this ticket... sorry), though this
seems a bit of a corner case: arity=40 and the involved state type uses
record types with numerous non-strict fields of type Float. I'll record it
with the ticket I'm soon making for the late demand analysis pass.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4941#comment:21>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list