[GHC] #14251: LLVM Code Gen messes up registers
GHC
ghc-devs at haskell.org
Fri Oct 5 03:35:12 UTC 2018
#14251: LLVM Code Gen messes up registers
-------------------------------------+-------------------------------------
Reporter: angerman | Owner: kavon
Type: bug | Status: patch
Priority: highest | Milestone: 8.6.2
Component: Compiler (LLVM) | Version: 8.3
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Incorrect result | Unknown/Multiple
at runtime | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D5190
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by Ben Gamari <ben@…>):
In [changeset:"adcb5fb47c0942671d409b940d8884daa9359ca4/ghc"
adcb5fb4/ghc]:
{{{
#!CommitTicketReference repository="ghc"
revision="adcb5fb47c0942671d409b940d8884daa9359ca4"
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
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14251#comment:18>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list