summaryrefslogtreecommitdiff
path: root/llvm-passes
Commit message (Collapse)AuthorAgeFilesLines
* Bump supported LLVM range from 10 through 15 to 11 through 16Matthew Pickering2023-02-011-3/+3
| | | | | | | | | | | | | | LLVM 15 turns on the new pass manager by default, which we have yet to migrate to so for new we pass the `-enable-new-pm-0` flag in our llvm-passes flag. LLVM 11 was the first version to support the `-enable-new-pm` flag so we bump the lowest supported version to 11. Our CI jobs are using LLVM 12 so they should continue to work despite this bump to the lower bound. Fixes #21936
* 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