Remove unused LiveVars and SRT fields of StgCase
authorÖmer Sinan Ağacan <omeragacan@gmail.com>
Mon, 8 Feb 2016 21:18:23 +0000 (16:18 -0500)
committerÖmer Sinan Ağacan <omeragacan@gmail.com>
Mon, 8 Feb 2016 21:19:28 +0000 (16:19 -0500)
commit023fc92f6f98a8bd003ce20083d3682aec865cb5
treeb08895d5e7575cfc29fa0a13e37df4445b93f6bc
parent489a9a3beeeae3d150761ef863b4757eba0b02d9
Remove unused LiveVars and SRT fields of StgCase

We also need to update `stgBindHasCafRefs` assertion with this change,
as we no longer have the pre-computed SRT, LiveVars etc. We rename it to
`topStgBindHasCafRefs` and implement it like this:

A non-updatable top-level binding may refer to a CAF by referring to a
top-level definition with CAFs. A top-level definition may have CAFs if
it's updatable. At this point (because this is done after TidyPgm)
top-level Ids (whether imported or defined in this module) are
GlobalIds, so the top-levelness test is easy. (see also comments in the
code)

Reviewers: bgamari, simonpj, austin

Reviewed By: simonpj

Subscribers: thomie

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

GHC Trac Issues: #11550
compiler/codeGen/StgCmm.hs
compiler/codeGen/StgCmmBind.hs
compiler/codeGen/StgCmmExpr.hs
compiler/main/HscMain.hs
compiler/profiling/SCCfinal.hs
compiler/simplStg/StgStats.hs
compiler/simplStg/UnariseStg.hs
compiler/stgSyn/CoreToStg.hs
compiler/stgSyn/StgLint.hs
compiler/stgSyn/StgSyn.hs