diff options
author | Nicolas Frisby <nicolas.frisby@gmail.com> | 2013-04-04 22:20:27 +0100 |
---|---|---|
committer | Nicolas Frisby <nicolas.frisby@gmail.com> | 2013-04-11 12:15:04 +0100 |
commit | 155d943cbbe0ee8c3443bb76c74dff99355b55aa (patch) | |
tree | 8904ac20b60e7984dac752c3ac0f1842cd93a26f /compiler/codeGen | |
parent | 27cf625ab871f34434d9fe86cecf85a31f73f0e5 (diff) | |
download | haskell-155d943cbbe0ee8c3443bb76c74dff99355b55aa.tar.gz |
added ticky counters for heap and stack checks
Diffstat (limited to 'compiler/codeGen')
-rw-r--r-- | compiler/codeGen/StgCmmHeap.hs | 3 | ||||
-rw-r--r-- | compiler/codeGen/StgCmmTicky.hs | 9 |
2 files changed, 11 insertions, 1 deletions
diff --git a/compiler/codeGen/StgCmmHeap.hs b/compiler/codeGen/StgCmmHeap.hs index 50fcfdc812..0a817030e5 100644 --- a/compiler/codeGen/StgCmmHeap.hs +++ b/compiler/codeGen/StgCmmHeap.hs @@ -570,10 +570,11 @@ do_checks mb_stk_hwm checkYield mb_alloc_lit do_gc = do case mb_stk_hwm of Nothing -> return () - Just stk_hwm -> emit =<< mkCmmIfGoto (sp_oflo stk_hwm) gc_id + Just stk_hwm -> tickyStackCheck >> (emit =<< mkCmmIfGoto (sp_oflo stk_hwm) gc_id) if (isJust mb_alloc_lit) then do + tickyHeapCheck emitAssign hpReg bump_hp emit =<< mkCmmIfThen hp_oflo (alloc_n <*> mkBranch gc_id) else do diff --git a/compiler/codeGen/StgCmmTicky.hs b/compiler/codeGen/StgCmmTicky.hs index 09938a6704..6427138639 100644 --- a/compiler/codeGen/StgCmmTicky.hs +++ b/compiler/codeGen/StgCmmTicky.hs @@ -70,9 +70,12 @@ module StgCmmTicky ( tickyDynAlloc, tickyAllocHeap, + tickyAllocPrim, tickyAllocThunk, tickyAllocPAP, + tickyHeapCheck, + tickyStackCheck, tickyUnknownCall, tickyDirectCall, @@ -481,6 +484,12 @@ tickyAllocPAP _goods _slop = ifTicky $ do bumpTickyCounterByE (fsLit "ALLOC_PAP_gds") _goods bumpTickyCounterByE (fsLit "ALLOC_PAP_slp") _slop +tickyHeapCheck :: FCode () +tickyHeapCheck = ifTicky $ bumpTickyCounter (fsLit "HEAP_CHK_ctr") + +tickyStackCheck :: FCode () +tickyStackCheck = ifTicky $ bumpTickyCounter (fsLit "STK_CHK_ctr") + -- ----------------------------------------------------------------------------- -- Ticky utils |