summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorNicolas Frisby <nicolas.frisby@gmail.com>2013-04-04 22:20:27 +0100
committerNicolas Frisby <nicolas.frisby@gmail.com>2013-04-11 12:15:04 +0100
commit155d943cbbe0ee8c3443bb76c74dff99355b55aa (patch)
tree8904ac20b60e7984dac752c3ac0f1842cd93a26f /compiler/codeGen
parent27cf625ab871f34434d9fe86cecf85a31f73f0e5 (diff)
downloadhaskell-155d943cbbe0ee8c3443bb76c74dff99355b55aa.tar.gz
added ticky counters for heap and stack checks
Diffstat (limited to 'compiler/codeGen')
-rw-r--r--compiler/codeGen/StgCmmHeap.hs3
-rw-r--r--compiler/codeGen/StgCmmTicky.hs9
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