Explicitly share some return continuations
authorSimon Marlow <marlowsd@gmail.com>
Tue, 31 Jul 2012 10:19:03 +0000 (11:19 +0100)
committerSimon Marlow <marlowsd@gmail.com>
Thu, 2 Aug 2012 10:56:02 +0000 (11:56 +0100)
commit6ede0067a91a0da7f682c3ea1d6df938616e983a
tree967a755612581b3d578f9879b56353a830cfa4bb
parentd2361423f23c3381b5a7f57c3f9e6c2448cdac80
Explicitly share some return continuations

Instead of relying on common-block-elimination to share return
continuations in the common case (case-alternative heap checks) we do
it explicitly.  This isn't hard to do, is more robust, and saves some
compilation time.  Full commentary in Note [sharing continuations].
12 files changed:
compiler/cmm/CmmPipeline.hs
compiler/cmm/MkGraph.hs
compiler/codeGen/StgCmm.hs
compiler/codeGen/StgCmmBind.hs
compiler/codeGen/StgCmmExpr.hs
compiler/codeGen/StgCmmForeign.hs
compiler/codeGen/StgCmmHeap.hs
compiler/codeGen/StgCmmLayout.hs
compiler/codeGen/StgCmmMonad.hs
compiler/codeGen/StgCmmPrim.hs
compiler/codeGen/StgCmmUtils.hs
compiler/main/DynFlags.hs