Changes between Version 24 and Version 25 of Internships/JanStolarek


Ignore:
Timestamp:
Jul 12, 2013 8:32:58 AM (9 months ago)
Author:
jstolarek
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Internships/JanStolarek

    v24 v25  
    1010 
    1111Some points made by Austin Seipp: 
    12   - i took the time to implement a half-assed almost-working loopification pass a few months ago. the sinking pass by Simon is what really does a huge amount of the optimizations Kryzsztof's thesis attacked differently. but i think doing loopification could maybe lead to identifying things like loop invariant expressions. it can't bootstrap the compiler with it (JS: it = Austin's patch). i think whenever i tie the knot in the new graph, i don't abandon parts of the old CmmNode, which then causes dead labels to hang around 
     12  - i took the time to implement a half-assed almost-working loopification pass a few months ago. the sinking pass by Simon is what really does a huge amount of the optimizations Kryzsztof's thesis attacked differently. but i think doing loopification could maybe lead to identifying things like loop invariant expressions. it can't bootstrap the compiler with it (JS: it = Austin's patch). i think whenever i tie the knot in the new graph, i don't abandon parts of the old !CmmNode, which then causes dead labels to hang around 
    1313  - oh, yeah, and as i noted in the commit message, you have to be careful when ordering those optimizations around. this is obviously only a valid transform pre-CPS. also you have to run a block elimination passes, otherwise things can happen where work can get duplicated into empty blocks 
    1414  -  i think another problem is that the new codegen doesn't always discard empty basic blocks which pisses off the native code generator (see #7574 ) so we need a little refactoring to handle that correctly, too, by being able to do SCC passes from any particular node 
     
    3737= Various clean-up tasks = 
    3838== Cmm clean-up == 
    39   * CmmOpt.hs: remove commented loopification, move comment to CmmLoopify.hs 
    40   * remove unused CmmRewriteAssignments 
     39  * !CmmOpt.hs: remove commented loopification, move comment to !CmmLoopify.hs 
     40  * remove unused !CmmRewriteAssignments 
    4141  * `cmm/CmmLive.hs:106`. This function is not used (unless there is some auto-generated code that uses it, but I doubt it): 
    4242