[LLVMdev] [PATCH] New calling convention for use by GHC

David Terei davidterei at gmail.com
Tue Mar 2 17:33:06 PST 2010


Hi all,

As previously mentioned on this list the Haskell compiler GHC has a new 
LLVM based back-end. The back-end needs a new calling convention to 
efficiently use LLVM and that is what this patch does, just for X86 at 
the moment.

Breakdown:

1) Need actual calling convention

    Touches:
      - include/llvm/CallingConv.h
      - lib/Target/X86/X86CallingConv.td

2) Handling new calling convention (including allowing it to be used in 
tail call optimisation).

  Touches:
      - lib/Target/X86/X86ISelLowering.cpp
      - lib/Target/X86/X86FastISel.cpp

3) New calling convention needs different callee save register list.

  Touches:
      - lib/Target/X86/X86RegisterInfo.cpp

The GHC developers would love to get this included in LLVM so that we 
don't need to carry around our own version of LLVM. If this patch isn't 
something that you would want to include in LLVM can you suggest an 
alternative way to do this that you would consider including?

Cheers,
David
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: llvm-ghc-callconv.patch
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100303/5ef61ebc/attachment.ksh>


More information about the llvm-dev mailing list