Changes between Version 1 and Version 2 of Commentary/Compiler/Backends/LLVM/Mangler


Ignore:
Timestamp:
Mar 14, 2013 3:32:51 PM (13 months ago)
Author:
gmainland
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Compiler/Backends/LLVM/Mangler

    v1 v2  
    1313== Stack Alignment == 
    1414 
    15 TODO 
     15LLVM requires that the C stack be properly aligned for spills. One Win32 the stack is 4-byte aligned, which is not enough for SSE spills, and even on x64 platforms the stack is only 16-byte aligned, which is not enough for AVX spills. When the stack is not properly aligned for spills, LLVM generates prologue/epilogue code that fiddles with the base pointer, which GHC uses as its stack pointer, and disables tail call optimization. Both are very bad. Therefore we currently tell LLVM to always assume the stack is properly aligned and then rewrite all aligned SSE/AVX move instructions to their unaligned counterparts inside the mangler. 
    1616 
    1717== SIMD / AVX ==