summaryrefslogtreecommitdiff
path: root/llvm-passes
diff options
context:
space:
mode:
authorKavon Farvardin <kavon@farvard.in>2018-10-04 13:44:55 -0400
committerBen Gamari <ben@smart-cactus.org>2018-10-04 22:27:54 -0400
commitadcb5fb47c0942671d409b940d8884daa9359ca4 (patch)
tree4d4591d46c195de5e92b0f8b57375883ade89b92 /llvm-passes
parent07083fc44ebf3f0510ae1d71ae5c9c88c87ae1d8 (diff)
downloadhaskell-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-passes2
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")
]