diff options
| author | Nicolas Frisby <nicolas.frisby@gmail.com> | 2013-03-06 21:46:14 +0000 |
|---|---|---|
| committer | Nicolas Frisby <nicolas.frisby@gmail.com> | 2013-03-29 15:20:50 +0000 |
| commit | 460abd75c4f99d813ed226d2ff6aa592d62fafd4 (patch) | |
| tree | 9e602d6733d90c1b26fccb2509497454bf619766 /compiler/codeGen/StgCmmEnv.hs | |
| parent | c7d80c6524390551b64e9c1d651e1a03ed3c7617 (diff) | |
| download | haskell-460abd75c4f99d813ed226d2ff6aa592d62fafd4.tar.gz | |
ticky enhancements
* the new StgCmmArgRep module breaks a dependency cycle; I also
untabified it, but made no real changes
* updated the documentation in the wiki and change the user guide to
point there
* moved the allocation enters for ticky and CCS to after the heap check
* I left LDV where it was, which was before the heap check at least
once, since I have no idea what it is
* standardized all (active?) ticky alloc totals to bytes
* in order to avoid double counting StgCmmLayout.adjustHpBackwards
no longer bumps ALLOC_HEAP_ctr
* I resurrected the SLOW_CALL counters
* the new module StgCmmArgRep breaks cyclic dependency between
Layout and Ticky (which the SLOW_CALL counters cause)
* renamed them SLOW_CALL_fast_<pattern> and VERY_SLOW_CALL
* added ALLOC_RTS_ctr and _tot ticky counters
* eg allocation by Storage.c:allocate or a BUILD_PAP in stg_ap_*_info
* resurrected ticky counters for ALLOC_THK, ALLOC_PAP, and
ALLOC_PRIM
* added -ticky and -DTICKY_TICKY in ways.mk for debug ways
* added a ticky counter for total LNE entries
* new flags for ticky: -ticky-allocd -ticky-dyn-thunk -ticky-LNE
* all off by default
* -ticky-allocd: tracks allocation *of* closure in addition to
allocation *by* that closure
* -ticky-dyn-thunk tracks dynamic thunks as if they were functions
* -ticky-LNE tracks LNEs as if they were functions
* updated the ticky report format, including making the argument
categories (more?) accurate again
* the printed name for things in the report include the unique of
their ticky parent as well as if they are not top-level
Diffstat (limited to 'compiler/codeGen/StgCmmEnv.hs')
| -rw-r--r-- | compiler/codeGen/StgCmmEnv.hs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/codeGen/StgCmmEnv.hs b/compiler/codeGen/StgCmmEnv.hs index 42e4da0e1f..1fdb364b56 100644 --- a/compiler/codeGen/StgCmmEnv.hs +++ b/compiler/codeGen/StgCmmEnv.hs @@ -13,7 +13,7 @@ module StgCmmEnv ( litIdInfo, lneIdInfo, rhsIdInfo, mkRhsInit, idInfoToAmode, - NonVoid(..), isVoidId, nonVoidIds, + NonVoid(..), unsafe_stripNV, isVoidId, nonVoidIds, addBindC, addBindsC, @@ -55,6 +55,10 @@ import Outputable newtype NonVoid a = NonVoid a deriving (Eq, Show) +-- Use with care; if used inappropriately, it could break invariants. +unsafe_stripNV :: NonVoid a -> a +unsafe_stripNV (NonVoid a) = a + instance (Outputable a) => Outputable (NonVoid a) where ppr (NonVoid a) = ppr a |
