[commit: ghc] ghc-8.6: Multiple fixes / improvements for LLVM backend (73273be)
git at git.haskell.org
git at git.haskell.org
Fri Oct 5 22:49:21 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : ghc-8.6
Link : http://ghc.haskell.org/trac/ghc/changeset/73273be476a8cc6c13368660b042b3b0614fd928/ghc
>---------------------------------------------------------------
commit 73273be476a8cc6c13368660b042b3b0614fd928
Author: Kavon Farvardin <kavon at farvard.in>
Date: Thu Oct 4 13:44:55 2018 -0400
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
(cherry picked from commit adcb5fb47c0942671d409b940d8884daa9359ca4)
>---------------------------------------------------------------
73273be476a8cc6c13368660b042b3b0614fd928
compiler/llvmGen/Llvm/Types.hs | 2 +-
compiler/llvmGen/LlvmCodeGen/Base.hs | 62 +++++++++++++++++++++++++++-----
compiler/llvmGen/LlvmCodeGen/CodeGen.hs | 60 ++++++-------------------------
llvm-passes | 2 +-
testsuite/tests/codeGen/should_run/all.T | 3 +-
5 files changed, 67 insertions(+), 62 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 73273be476a8cc6c13368660b042b3b0614fd928
More information about the ghc-commits
mailing list