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


Ignore:
Timestamp:
Nov 6, 2006 4:50:01 PM (9 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)]]).