Fix a profiling bug
authorSimon Marlow <marlowsd@gmail.com>
Wed, 28 Jan 2015 11:25:52 +0000 (11:25 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 4 Feb 2015 08:17:17 +0000 (08:17 +0000)
commitdaed18c35cda114d8a5303bcb645195e1fd397e3
tree85d3b4160e122f33ed5aefc5e44945ab18a226a7
parent92c93544939199f6ef758e1658149a971d4437c9
Fix a profiling bug

Summary:
We were erroneously discarding SCCs on function-typed variables.
These can affect the call stack, so we have to retain them.  The bug
was introduced during the recent SourceNote refactoring.

This is an alternative to the fix proposed in D616.  I also added the
scc005 test from that diff, which works with this change.

While I was here, I also fixed up the other profiling tests, marking a
few as expect_broken_for(10037) where the opt/unopt output differs in
non-fatal ways.

Test Plan: profiling tests

Reviewers: scpmw, ezyang, austin

Subscribers: thomie

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

GHC Trac Issues: #10007
compiler/coreSyn/CoreUtils.hs
testsuite/tests/profiling/should_run/T2552.prof.sample
testsuite/tests/profiling/should_run/all.T
testsuite/tests/profiling/should_run/ioprof.prof.sample
testsuite/tests/profiling/should_run/prof-doc-fib.prof.sample
testsuite/tests/profiling/should_run/scc005.hs [new file with mode: 0644]
testsuite/tests/profiling/should_run/scc005.prof.sample [new file with mode: 0644]