[commit: ghc] master: Tick scopes (5fecd76)
git at git.haskell.org
git at git.haskell.org
Tue Dec 16 21:02:23 UTC 2014
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/5fecd767309f318e0ec6797667ca6442a54ea451/ghc
>---------------------------------------------------------------
commit 5fecd767309f318e0ec6797667ca6442a54ea451
Author: Peter Wortmann <scpmw at leeds.ac.uk>
Date: Sat Dec 6 17:11:42 2014 +0100
Tick scopes
This patch solves the scoping problem of CmmTick nodes: If we just put
CmmTicks into blocks we have no idea what exactly they are meant to
cover. Here we introduce tick scopes, which allow us to create
sub-scopes and merged scopes easily.
Notes:
* Given that the code often passes Cmm around "head-less", we have to
make sure that its intended scope does not get lost. To keep the amount
of passing-around to a minimum we define a CmmAGraphScoped type synonym
here that just bundles the scope with a portion of Cmm to be assembled
later.
* We introduce new scopes at somewhat random places, aligning with
getCode calls. This works surprisingly well, but we might have to
add new scopes into the mix later on if we find things too be too
coarse-grained.
(From Phabricator D169)
>---------------------------------------------------------------
5fecd767309f318e0ec6797667ca6442a54ea451
compiler/cmm/CmmCommonBlockElim.hs | 19 +++--
compiler/cmm/CmmContFlowOpt.hs | 12 ++-
compiler/cmm/CmmLayoutStack.hs | 25 +++---
compiler/cmm/CmmNode.hs | 135 ++++++++++++++++++++++++++++++--
compiler/cmm/CmmParse.y | 6 +-
compiler/cmm/CmmProcPoint.hs | 4 +-
compiler/cmm/CmmUtils.hs | 10 +--
compiler/cmm/MkGraph.hs | 60 +++++++-------
compiler/cmm/PprC.hs | 6 +-
compiler/cmm/PprCmm.hs | 4 +-
compiler/codeGen/StgCmmBind.hs | 4 +-
compiler/codeGen/StgCmmExpr.hs | 20 ++---
compiler/codeGen/StgCmmExtCode.hs | 14 +++-
compiler/codeGen/StgCmmForeign.hs | 3 +-
compiler/codeGen/StgCmmHeap.hs | 8 +-
compiler/codeGen/StgCmmLayout.hs | 14 ++--
compiler/codeGen/StgCmmMonad.hs | 88 ++++++++++++++++-----
compiler/codeGen/StgCmmUtils.hs | 50 ++++++------
compiler/llvmGen/LlvmCodeGen/CodeGen.hs | 3 +-
compiler/nativeGen/PPC/CodeGen.hs | 3 +-
compiler/nativeGen/SPARC/CodeGen.hs | 3 +-
compiler/nativeGen/X86/CodeGen.hs | 3 +-
22 files changed, 349 insertions(+), 145 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 5fecd767309f318e0ec6797667ca6442a54ea451
More information about the ghc-commits
mailing list