• Peter Wortmann's avatar
    Tick scopes · 5fecd767
    Peter Wortmann authored
    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)
    5fecd767
StgCmmForeign.hs 19.5 KB