
Change "movl $0,%eax" to "xorq %rax,%rax" (or maybe "movb $0,%al",
#10062: Codegen on sequential FFI calls is not very good -------------------------------------+------------------------------------- Reporter: chadaustin | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.3 (CodeGen) | Keywords: Resolution: | Architecture: Operating System: Unknown/Multiple | Unknown/Multiple Type of failure: Runtime | Test Case: performance bug | Blocking: Blocked By: | Differential Revisions: Related Tickets: | -------------------------------------+------------------------------------- Comment (by rwbarton): though I don't know whether a smaller instruction is more important than breaking the data dependency on rax) This one is already implemented in GHC 7.10. (xor %eax,%eax is the Officially Correct instruction to use: it is the smallest instruction to clear a register and it has special processor support to break dependency chains, even though it looks like it doesn't). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10062#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler