[llvm-dev] HiPE calling convention

Matthias Braun via llvm-dev llvm-dev at lists.llvm.org
Fri Sep 29 10:42:36 PDT 2017

> On Sep 29, 2017, at 4:12 AM, denisgolovan via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> Hi all
> I saw presentation http://www.softlab.ntua.gr/~gtsiour/files/erllvm_pres-20111107.pdf
> and I have couple question to the HiPE calling convention. I am trying to enable HiPE call for Rust compiler.
> That presentation mentioned that:
> Virtual registers with “special” use, pinned to hardware registers
> (unallocatable).
> VM Register             AMD64 Register
> Native stack pointer  %nsp
> Heap pointer             %r15
> Process pointer         %rbp
Calling conventions should be just that: conventions on how to perfrom calls, I hope we don't have code in LLVM that changes which registers are reserved based on the calling convention.

I assume they used a modified version of LLVM that also reserved those registers, at least I don't see any code in X86RegisterInfo::getReservedRegs() that would result in a heap or process pointer thing getting reserved.

- Matthias

More information about the llvm-dev mailing list