diff options
author | Kavon Farvardin <kavon@farvard.in> | 2018-10-04 13:44:55 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-10-04 22:27:54 -0400 |
commit | adcb5fb47c0942671d409b940d8884daa9359ca4 (patch) | |
tree | 4d4591d46c195de5e92b0f8b57375883ade89b92 /llvm-passes | |
parent | 07083fc44ebf3f0510ae1d71ae5c9c88c87ae1d8 (diff) | |
download | haskell-adcb5fb47c0942671d409b940d8884daa9359ca4.tar.gz |
Multiple fixes / improvements for LLVM backend
- 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
Diffstat (limited to 'llvm-passes')
-rw-r--r-- | llvm-passes | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm-passes b/llvm-passes index 5183c9f2ab..14eb62d87c 100644 --- a/llvm-passes +++ b/llvm-passes @@ -1,5 +1,5 @@ [ -(0, "-mem2reg -globalopt"), +(0, "-mem2reg -globalopt -lower-expect"), (1, "-O1 -globalopt"), (2, "-O2") ] |