[commit: ghc] master: Make cost centre symbol names deterministic. (d8e47a2)

git at git.haskell.org git at git.haskell.org
Fri Mar 2 19:11:54 UTC 2018


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/d8e47a2ea89dbce647b06132ec10c39a2de67437/ghc

>---------------------------------------------------------------

commit d8e47a2ea89dbce647b06132ec10c39a2de67437
Author: Shea Levy <shea at shealevy.com>
Date:   Fri Mar 2 12:59:06 2018 -0500

    Make cost centre symbol names deterministic.
    
    Previously, non-CAF cost centre symbol names contained a unique,
    leading to non-deterministic object files which, among other issues,
    can lead to an inconsistency causing linking failure when using cached
    builds sourced from multiple machines, such as with nix. Now, each
    cost centre symbol is annotated with the type of cost centre it
    is (CAF, expression annotation, declaration annotation, or HPC) and,
    when a single module has multiple cost centres with the same name and
    type, a 0-based index.
    
    Reviewers: bgamari, simonmar
    
    Reviewed By: bgamari
    
    Subscribers: niteria, simonmar, RyanGlScott, osa1, rwbarton, thomie, carter
    
    GHC Trac Issues: #4012, #12935
    
    Differential Revision: https://phabricator.haskell.org/D4388


>---------------------------------------------------------------

d8e47a2ea89dbce647b06132ec10c39a2de67437
 compiler/deSugar/Coverage.hs          |  21 +++---
 compiler/deSugar/DsExpr.hs            |   5 +-
 compiler/deSugar/DsMonad.hs           |  14 ++--
 compiler/ghc.cabal.in                 |   1 +
 compiler/profiling/CostCentre.hs      | 131 +++++++++++++++++++++-------------
 compiler/profiling/CostCentreState.hs |  36 ++++++++++
 compiler/stgSyn/CoreToStg.hs          |   2 +-
 compiler/typecheck/TcBinds.hs         |  16 +++--
 compiler/typecheck/TcRnMonad.hs       |  29 +++++++-
 compiler/typecheck/TcRnTypes.hs       |   8 ++-
 10 files changed, 188 insertions(+), 75 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 d8e47a2ea89dbce647b06132ec10c39a2de67437


More information about the ghc-commits mailing list