
#14251: LLVM Code Gen messes up registers -------------------------------------+------------------------------------- Reporter: angerman | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.6.1 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): Wiki Page: | -------------------------------------+------------------------------------- Comment (by awson): AFAIUI, the most recent takes on this problem are: 1. https://phabricator.haskell.org/D4003 by @angerman 2. https://gist.github.com/kavon/566fc6c21ff51803538884b79dc1d841 by @kavon (referred from the former) My understanding is that "1" doesn't quite work (generates wrong code for handwritten `cmm`). Also my understanding is that "2" should work (haven't tested it), but isn't so much aesthetically pleasant, since all padding arguments are of `FloatReg` type regardless of which type they are at the call-site. A year has passed since. Neither these two approaches, no other suggested in the email thread started from https://mail.haskell.org/pipermail/ghc- devs/2017-September/014700.html, were elaborated further. I wonder then what are chances of e.g. "2" to be upstreamed if properly polished? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14251#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler