summaryrefslogtreecommitdiff
path: root/llvm-passes
Commit message (Collapse)AuthorAgeFilesLines
* llvmGen: Add lower-expect to the -O0 optimisation setBen Gamari2020-01-201-1/+1
| | | | @kavon says that this will improve block layout for stack checks.
* Revert "Multiple fixes / improvements for LLVM backend"Ben Gamari2018-11-071-1/+1
| | | | This reverts commit adcb5fb47c0942671d409b940d8884daa9359ca4.
* Multiple fixes / improvements for LLVM backendKavon Farvardin2018-10-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* Extract hard-coded LLVM opt flags into a fileKavon Farvardin2018-05-301-0/+5
To resolve ticket #11295, I think it makes sense to stop hard-coding the pass sequences used by GHC when compiling with LLVM into the compiler itself. This patchset introduces a companion to the existing `llvm-targets` file called `llvm-passes`. The passes file is a simple association list that holds the default LLVM `opt` pass sequence used by GHC. This allows end users to easily save their favorite optimization flags when compiling with LLVM. The main benefit for ticket #11295 is that when adding a custom pass sequence, it tends to be an extremely long string that would be unsightly in the code. This is essentially part 1 of 2 for ticket #11295. Test Plan: ./validate Reviewers: bgamari, angerman Reviewed By: angerman Subscribers: rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4695