Changes between Version 53 and Version 54 of Internships/JanStolarek


Ignore:
Timestamp:
Oct 8, 2013 10:19:26 AM (7 months ago)
Author:
jstolarek
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Internships/JanStolarek

    v53 v54  
    1 = Jan Stolarek's internship notes = 
    2  
    3 = Back-end notes = 
    4  
    5 == Some interesting tickets == 
    6   * #605 - Optimisation: strict enumerations 
    7   * #1498 - Optimisation: eliminate unnecessary heap check in recursive function.  
    8   * #1600 - Optimisation: CPR the results of IO 
    9   * #2289 - Needless reboxing of values when returning from a tight loop 
    10   * #2387 - Optimizer misses unboxing opportunity 
    11   * #2450 - Data.Complex.magnitude squares using ^(2 :: Int), which is slow 
    12   * #2731 - Avoid unnecessary evaluation when unpacking constructors 
    13   * #2823 - Another arity expansion bug 
    14   * #4470 - Loop optimization: identical counters 
    15   * #4937 - Remove indirections caused by sum types, such as Maybe 
    16   * #5567 - LLVM: Improve alias analysis / performance [wiki:BackEndNotes#Heapstackchecks BackEndNotes] page has some discussion of this. 
    17   * #7198 - New codegen more than doubles compile time of T3294 
    18   * #8048 - Register spilling produces ineffecient/highly contending code 
    19  
    20 == Notes on the wiki == 
    21   * [wiki:Commentary/Compiler/NewCodeGen/Cleanup] 
    22   * [wiki:Commentary/Compiler/NewCodeGenStupidity] 
    23   * [http://darcs.haskell.org/ghc/compiler/cmm/cmm-notes cmm-notes] 
    24  
    25 = Various stuff = 
    26 Tickets that I could potentially look into: 
    27  
    28   * #3070 - floor(0/0) should not be defined 
    29   * #3676 - realToFrac doesn't sanely convert between floating types 
    30   * #3744 - Comparisons against minBound/maxBound not optimised 
    31   * #4101 - Primitive constant unfolding 
    32   * #5615 - ghc produces poor code for `div` with constant powers of 2. 
    33   * #7858 - Fix definitions of abs/signum for !Floats/Doubles. 
    34  
    35 Some LLVM notes that may be useful: 
    36   - [wiki:Commentary/Compiler/Backends/LLVM/Alias LLVM Alias Notes] 
    37   - [http://blog.davidterei.com/2011/09/ghc-project-for-all.html David Terei's LLVM blog post] 
    38   - [http://blog.omega-prime.co.uk/?p=135 Max Bolingbroke's LLVM blog entry] 
    39   - [https://github.com/mlite/HsLlvm Implementation of various LLVM optimisations using Hoopl] - '''this seems very relevant'''