• Kavon Farvardin's avatar
    Multiple fixes / improvements for LLVM backend · 73273be4
    Kavon Farvardin authored
    - Fix for #13904 -- stop "trashing" callee-saved registers, since it is
      not actually doing anything useful.
    
    - Fix for #14251 -- fixes the calling convention for functions passing
      raw SSE-register values by adding padding as needed to get the values
      in the right registers. This problem cropped up when some args were
      unused an dropped from the live list.
    
    - Fixed a typo in 'readnone' attribute
    
    - Added 'lower-expect' pass to level 0 LLVM optimization passes to
      improve block layout in LLVM for stack checks, etc.
    
    Test Plan: `make test WAYS=optllvm` and `make test WAYS=llvm`
    
    Reviewers: bgamari, simonmar, angerman
    
    Reviewed By: angerman
    
    Subscribers: rwbarton, carter
    
    GHC Trac Issues: #13904, #14251
    
    Differential Revision: https://phabricator.haskell.org/D5190
    
    (cherry picked from commit adcb5fb4)
    73273be4
llvm-passes 80 Bytes