Properly track live registers when saving the CCCS.
authorGeoffrey Mainland <mainland@apeiron.net>
Thu, 28 Jan 2016 14:58:37 +0000 (09:58 -0500)
committerBen Gamari <ben@smart-cactus.org>
Tue, 2 Feb 2016 22:57:29 +0000 (23:57 +0100)
commit31c11d06e3a9d3f362e585e2c65d59a331623b2b
tree589e3f3e57124cd24e3318cc9fdbc154307b637e
parent28ee6ca5ba18b3e451f0377d77c7e1ef1cfb136a
Properly track live registers when saving the CCCS.

Summary:
When saving the CCCS, we now correctly track the set of live registers and pass
them to the jump_SAVE_CCCS macro. This is now a variadic macro, but variadic
macros are supported by GCC since 3.0 and by all versions of clang, so this
should not be a problem.

Test Plan:
./validate with the following build options:

```
BuildFlavour = quick-llvm
SRC_HC_OPTS_STAGE1 = -fllvm-fill-undef-with-garbage
```

Reviewers: bgamari, simonmar, austin, rwbarton, simonpj

Subscribers: thomie

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

GHC Trac Issues: #11487

(cherry picked from commit 6544f8de1ed575378f14b82a2eaa06cab58b2d65)
rts/AutoApply.h
utils/genapply/Main.hs