[llvm-commits] [RFC] Patch 1/3 for the native code compiler of Erlang

Yiannis Tsiouris gtsiour at softlab.ntua.gr
Wed May 2 10:36:44 PDT 2012


The following patch (rebased on svn r155997) implements the High
Performance Erlang (HiPE) calling convention and is the first of a total
of three patches that allow the use of LLVM as a backend for the native
code compiler of Erlang, a concurrent functional language.

0001:
| Implemented a new calling convention (cc 11) for HiPE similar to GHC's
| cc 10. In detail:
| * Inserted new symbol "cc 11" (CallingConv::HiPE).
| * Created cc and retcc for both 32 and 64 bit.
| * HiPE cc defines no calleE-save registers.
| * HiPE cc supports tail call optimization.

0002:
| Hack fix for GR32_TC registers.
| Add EBX, EDI to GR32_TC register class to handle a "ran out of
| registers during register allocation" in case of tailcall existence
| because in EAX, ECX, EDX are all argument registers in HiPE CC.


Best regards,
Yiannis Tsiouris (as part of the ErLLVM team)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Implemented-HiPE-Calling-Convention-1-2.patch
Type: text/x-diff
Size: 8302 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120502/e5e4e9cd/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Implemented-HiPE-Calling-Convention-2-2.patch
Type: text/x-diff
Size: 689 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120502/e5e4e9cd/attachment-0001.patch>


More information about the llvm-commits mailing list