Changes between Version 9 and Version 10 of Commentary/Compiler/StrictnessAnalysis/KirstenNotes


Ignore:
Timestamp:
Nov 6, 2006 4:50:01 PM (7 years ago)
Author:
kirsten
Comment:

ticky notes

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/StrictnessAnalysis/KirstenNotes

    v9 v10  
    2222}}} 
    2323(where {{{lazyF}}} is lazy in {{{p}}}, and {{{strictF}}} is strict in {{{a}}} and {{{b}}}). {{{p}}} is used both with demand {{{L}}} (in the call to {{{lazyF}}} and with demand {{{S(SS)}}} (in the call to {{{strictF}}}). This means it's perfectly same to strictly evaluate {{{p}}}, so when we both together the two demands, we should get {{{S(SS)}}}. On the other hand, if a function is ''called'' once with one argument and once with two, we don't want to treat it as a function that's always called with two arguments; we're only interested in functions that are ''always'' called with ''n'' arguments for a given ''n''. Hence, both should behave the same way as lub for call demands. 
     24 
     25= Ticky = 
     26 
     27The following code inserts extra fields into closures when ticky is enabled (and so had to be commented out): 
     28{{{ 
     29staticTickyHdr :: [CmmLit] 
     30-- The ticky header words in a static closure 
     31-- Was SET_STATIC_TICKY_HDR 
     32staticTickyHdr =  
     33  | not opt_DoTickyProfiling = [] 
     34  | otherwise                = [zeroCLit] 
     35}}} 
     36in [[GhcFile(compiler/codeGen/CgTicky.hs)]]. 
     37 
     38Other relevant functions: {{{emitTickyCounter}}} in [[GhcFile(compiler/codeGen/CgTicky.hs)]] (called by {{{closureCodeBody}}} in [[GhcFile(compiler/codeGen/CgClosure.lhs)]]).