X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-llvm-cpp.h;h=53ecc02de1a0a48e30a11562628e83d96541007c;hb=HEAD;hp=06858713f4eaa99ab63cacd0d6449007fb203876;hpb=8c32f9c042d4e05acf8d712dcb9f00b8362da55f;p=mono.git diff --git a/mono/mini/mini-llvm-cpp.h b/mono/mini/mini-llvm-cpp.h index 06858713f4e..53ecc02de1a 100644 --- a/mono/mini/mini-llvm-cpp.h +++ b/mono/mini/mini-llvm-cpp.h @@ -1,5 +1,6 @@ -/* - * mini-llvm-cpp.h: LLVM backend +/** + * \file + * LLVM backend * * Authors: * Zoltan Varga (vargaz@gmail.com) @@ -34,6 +35,17 @@ typedef enum { LLVM_ATOMICRMW_OP_ADD = 1, } AtomicRMWOp; +typedef enum { + LLVM_ATTR_NO_UNWIND, + LLVM_ATTR_NO_INLINE, + LLVM_ATTR_OPTIMIZE_FOR_SIZE, + LLVM_ATTR_IN_REG, + LLVM_ATTR_STRUCT_RET, + LLVM_ATTR_NO_ALIAS, + LLVM_ATTR_BY_VAL, + LLVM_ATTR_UW_TABLE +} AttrKind; + void mono_llvm_dump_value (LLVMValueRef value); @@ -44,9 +56,13 @@ mono_llvm_build_alloca (LLVMBuilderRef builder, LLVMTypeRef Ty, LLVMValueRef mono_llvm_build_load (LLVMBuilderRef builder, LLVMValueRef PointerVal, - const char *Name, gboolean is_volatile, BarrierKind barrier); + const char *Name, gboolean is_volatile); LLVMValueRef +mono_llvm_build_atomic_load (LLVMBuilderRef builder, LLVMValueRef PointerVal, + const char *Name, gboolean is_volatile, int alignment, BarrierKind barrier); + +LLVMValueRef mono_llvm_build_aligned_load (LLVMBuilderRef builder, LLVMValueRef PointerVal, const char *Name, gboolean is_volatile, int alignment); @@ -85,6 +101,18 @@ mono_llvm_set_preserveall_cc (LLVMValueRef func); void mono_llvm_set_call_preserveall_cc (LLVMValueRef call); +void +mono_llvm_set_call_notail (LLVMValueRef call); + +void +mono_llvm_add_func_attr (LLVMValueRef func, AttrKind kind); + +void +mono_llvm_add_param_attr (LLVMValueRef param, AttrKind kind); + +void +mono_llvm_add_instr_attr (LLVMValueRef val, int index, AttrKind kind); + _Unwind_Reason_Code mono_debug_personality (int a, _Unwind_Action b, uint64_t c, struct _Unwind_Exception *d, struct _Unwind_Context *e); @@ -96,7 +124,7 @@ void* mono_llvm_create_di_builder (LLVMModuleRef module); void* -mono_llvm_di_create_function (void *di_builder, void *cu, const char *name, const char *mangled_name, const char *dir, const char *file, int line); +mono_llvm_di_create_function (void *di_builder, void *cu, LLVMValueRef func, const char *name, const char *mangled_name, const char *dir, const char *file, int line); void* mono_llvm_di_create_compile_unit (void *di_builder, const char *cu_name, const char *dir, const char *producer);