Changes between Version 46 and Version 47 of Internships/JanStolarek


Ignore:
Timestamp:
Aug 30, 2013 9:54:03 AM (8 months ago)
Author:
jstolarek
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Internships/JanStolarek

    v46 v47  
    2424  * I need to remember to cerfully choose at which optimization levels my Cmm passes are enabled 
    2525  * Here's an interesting bit from `CoreToStg.lhs`: "a dead variable's stack slot (if it has one): should be stubbed to avoid space leaks" 
    26  
    27 == Let-no-escape notes == 
    28   * Code generation for let-no-escape: `cgLneBinds` in `codeGen/StgCmmExpr.hs` 
    29   * Heap checking in let-no-escape: see `Note [Heap checks]` in `codeGen/StgCmmHeap.hs` 
    30   * From `codeGen/StgCmmMonad.hs`: 
    31 {{{ 
    32 data CgLoc 
    33   = CmmLoc CmmExpr        -- A stable CmmExpr; that is, one not mentioning 
    34                         -- Hp, so that it remains valid across calls 
    35  
    36   | LneLoc BlockId [LocalReg]             -- A join point 
    37         -- A join point (= let-no-escape) should only. 
    38         -- be tail-called, and in a saturated way. 
    39         -- To tail-call it, assign to these locals,. 
    40         -- and branch to the block id 
    41 }}} 
    42   * Simon Marlow says: "[let-no-escape] catches  more cases than just join points.  Any function or variable binding that does not escape is turned into let-no-escape." 
    4326 
    4427== Some interesting tickets ==