X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fmini-llvm-cpp.h;h=53ecc02de1a0a48e30a11562628e83d96541007c;hb=917eb0586cd0f7419d5ce0662525efb2ed1ced12;hp=064c587ce54d5773cf59881f420947ea1d302d81;hpb=5aa397ecb7a5b88698b3c22eaf7b3f1ad78bc2c9;p=mono.git diff --git a/mono/mini/mini-llvm-cpp.h b/mono/mini/mini-llvm-cpp.h index 064c587ce54..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); @@ -89,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); @@ -100,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);