[GHC] #8033: add AVX register support to llvm calling convention
GHC
ghc-devs at haskell.org
Tue Jul 9 20:44:22 CEST 2013
#8033: add AVX register support to llvm calling convention
-------------------------------------+------------------------------------
Reporter: carter | Owner: carter
Type: task | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.7
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Difficulty: Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets:
-------------------------------------+------------------------------------
Comment (by gmainland):
I have way to much on my plate at the moment to do anything other than
answer questions, although I am happy to do that.
The hasSSE1 test is vacuously true on x86_64. So it doesn't affect code
correctness, but it is confusing.
I was wrong about needing the test at all on x32. We could make GHC pass
Floats and Double on the stack when SSE is off, pass Floats in registers
when -msse is set, and pass both Floats and Doubles (an vectors) in
registers when -msse2 is set. The test wouldn't be necessary, because if
-msse2 isn't set, GHC will simply pass Doubles on the stack and LLVM will
never see a function call with a double-precision argument.
I'm not concerned with 32-bit performance at this point. Do you have an
application that requires these changes for performance reasons? If you
do, I still don't think it's worth making changes to the 32-bit LLVM
calling conventions until we can utilize them in GHC. Simply changing the
GHC calling convention in LLVM isn't enough, even when using the LLVM
back-end.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8033#comment:23>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list