llir-opt
0.0.1
Low-Level Post-Link Optimiser for OCaml and C
core
calling_conv.h
1
// This file if part of the llir-opt project.
2
// Licensing information can be found in the LICENSE file.
3
// (C) 2018 Nandor Licker. All rights reserved.
4
5
#pragma once
6
7
#include <cstdint>
8
9
#include <llvm/Support/raw_ostream.h>
10
11
12
16
enum class
CallingConv : uint8_t {
17
// Generic C calling convention.
18
C,
19
// Generic OCaml calling convention.
20
CAML,
21
// OCaml allocator call.
22
CAML_ALLOC,
23
// OCaml gc trampoline.
24
CAML_GC,
25
// Setjmp convention.
26
SETJMP,
27
// Xen hypervisor call.
28
XEN,
29
// Interrupt handler.
30
INTR,
31
// Multiboot entry.
32
MULTIBOOT,
33
// Windows.
34
WIN64,
35
};
36
40
llvm::raw_ostream &operator<<(llvm::raw_ostream &os, CallingConv conv);
41
45
bool
IsCamlCall(CallingConv conv);
Generated by
1.8.17