Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/bindings/ocaml/debuginfo/debuginfo_ocaml.c
Show First 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | case i_DIFlagIndirectVirtualBase: | ||||
return LLVMDIFlagIndirectVirtualBase; | return LLVMDIFlagIndirectVirtualBase; | ||||
case i_DIFlagAccessibility: | case i_DIFlagAccessibility: | ||||
return LLVMDIFlagAccessibility; | return LLVMDIFlagAccessibility; | ||||
case i_DIFlagPtrToMemberRep: | case i_DIFlagPtrToMemberRep: | ||||
return LLVMDIFlagPtrToMemberRep; | return LLVMDIFlagPtrToMemberRep; | ||||
} | } | ||||
} | } | ||||
/* unit -> int */ | |||||
value llvm_debug_metadata_version(value Unit) { | value llvm_debug_metadata_version(value Unit) { | ||||
return Val_int(LLVMDebugMetadataVersion()); | return Val_int(LLVMDebugMetadataVersion()); | ||||
} | } | ||||
value llvm_get_module_debug_metadata_version(LLVMModuleRef Module) { | /* llmodule -> int */ | ||||
return Val_int(LLVMGetModuleDebugMetadataVersion(Module)); | value llvm_get_module_debug_metadata_version(value Module) { | ||||
return Val_int(LLVMGetModuleDebugMetadataVersion(Module_val(Module))); | |||||
} | } | ||||
#define DIFlags_val(v) (*(LLVMDIFlags *)(Data_custom_val(v))) | #define DIFlags_val(v) (*(LLVMDIFlags *)(Data_custom_val(v))) | ||||
static struct custom_operations diflags_ops = { | static struct custom_operations diflags_ops = { | ||||
(char *)"DebugInfo.lldiflags", custom_finalize_default, | (char *)"DebugInfo.lldiflags", custom_finalize_default, | ||||
custom_compare_default, custom_hash_default, | custom_compare_default, custom_hash_default, | ||||
custom_serialize_default, custom_deserialize_default, | custom_serialize_default, custom_deserialize_default, | ||||
custom_compare_ext_default}; | custom_compare_ext_default}; | ||||
static value alloc_diflags(LLVMDIFlags Flags) { | static value alloc_diflags(LLVMDIFlags Flags) { | ||||
value V = alloc_custom(&diflags_ops, sizeof(LLVMDIFlags), 0, 1); | value V = caml_alloc_custom(&diflags_ops, sizeof(LLVMDIFlags), 0, 1); | ||||
DIFlags_val(V) = Flags; | DIFlags_val(V) = Flags; | ||||
return V; | return V; | ||||
} | } | ||||
LLVMDIFlags llvm_diflags_get(value i_Flag) { | LLVMDIFlags llvm_diflags_get(value i_Flag) { | ||||
LLVMDIFlags Flags = map_DIFlag(Int_val(i_Flag)); | LLVMDIFlags Flags = map_DIFlag(Int_val(i_Flag)); | ||||
return alloc_diflags(Flags); | return alloc_diflags(Flags); | ||||
} | } | ||||
Show All 17 Lines | |||||
static struct custom_operations dibuilder_ops = { | static struct custom_operations dibuilder_ops = { | ||||
(char *)"DebugInfo.lldibuilder", llvm_finalize_dibuilder, | (char *)"DebugInfo.lldibuilder", llvm_finalize_dibuilder, | ||||
custom_compare_default, custom_hash_default, | custom_compare_default, custom_hash_default, | ||||
custom_serialize_default, custom_deserialize_default, | custom_serialize_default, custom_deserialize_default, | ||||
custom_compare_ext_default}; | custom_compare_ext_default}; | ||||
static value alloc_dibuilder(LLVMDIBuilderRef B) { | static value alloc_dibuilder(LLVMDIBuilderRef B) { | ||||
value V = alloc_custom(&dibuilder_ops, sizeof(LLVMDIBuilderRef), 0, 1); | value V = caml_alloc_custom(&dibuilder_ops, sizeof(LLVMDIBuilderRef), 0, 1); | ||||
DIBuilder_val(V) = B; | DIBuilder_val(V) = B; | ||||
return V; | return V; | ||||
} | } | ||||
/* llmodule -> lldibuilder */ | /* llmodule -> lldibuilder */ | ||||
value llvm_dibuilder(LLVMModuleRef M) { | value llvm_dibuilder(value M) { | ||||
return alloc_dibuilder(LLVMCreateDIBuilder(M)); | return alloc_dibuilder(LLVMCreateDIBuilder(Module_val(M))); | ||||
} | } | ||||
value llvm_dibuild_finalize(value Builder) { | value llvm_dibuild_finalize(value Builder) { | ||||
LLVMDIBuilderFinalize(DIBuilder_val(Builder)); | LLVMDIBuilderFinalize(DIBuilder_val(Builder)); | ||||
return Val_unit; | return Val_unit; | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_compile_unit_native( | value llvm_dibuild_create_compile_unit_native( | ||||
value Builder, value Lang, LLVMMetadataRef FileRef, value Producer, | value Builder, value Lang, value FileRef, value Producer, value IsOptimized, | ||||
value IsOptimized, value Flags, value RuntimeVer, value SplitName, | value Flags, value RuntimeVer, value SplitName, value Kind, value DWOId, | ||||
value Kind, value DWOId, value SplitDebugInline, | value SplitDebugInline, value DebugInfoForProfiling, value SysRoot, | ||||
value DebugInfoForProfiling, value SysRoot, value SDK) { | value SDK) { | ||||
return LLVMDIBuilderCreateCompileUnit( | return to_val(LLVMDIBuilderCreateCompileUnit( | ||||
DIBuilder_val(Builder), Int_val(Lang), FileRef, String_val(Producer), | DIBuilder_val(Builder), Int_val(Lang), Metadata_val(FileRef), | ||||
caml_string_length(Producer), Bool_val(IsOptimized), String_val(Flags), | String_val(Producer), caml_string_length(Producer), Bool_val(IsOptimized), | ||||
caml_string_length(Flags), Int_val(RuntimeVer), String_val(SplitName), | String_val(Flags), caml_string_length(Flags), Int_val(RuntimeVer), | ||||
caml_string_length(SplitName), Int_val(Kind), Int_val(DWOId), | String_val(SplitName), caml_string_length(SplitName), Int_val(Kind), | ||||
Bool_val(SplitDebugInline), Bool_val(DebugInfoForProfiling), | Int_val(DWOId), Bool_val(SplitDebugInline), | ||||
String_val(SysRoot), caml_string_length(SysRoot), String_val(SDK), | Bool_val(DebugInfoForProfiling), String_val(SysRoot), | ||||
caml_string_length(SDK)); | caml_string_length(SysRoot), String_val(SDK), caml_string_length(SDK))); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_compile_unit_bytecode(value *argv, | value llvm_dibuild_create_compile_unit_bytecode(value *argv, int argn) { | ||||
int argn) { | |||||
return llvm_dibuild_create_compile_unit_native( | return llvm_dibuild_create_compile_unit_native( | ||||
argv[0], // Builder | argv[0], // Builder | ||||
argv[1], // Lang | argv[1], // Lang | ||||
(LLVMMetadataRef)argv[2], // FileRef | argv[2], // FileRef | ||||
argv[3], // Producer | argv[3], // Producer | ||||
argv[4], // IsOptimized | argv[4], // IsOptimized | ||||
argv[5], // Flags | argv[5], // Flags | ||||
argv[6], // RuntimeVer | argv[6], // RuntimeVer | ||||
argv[7], // SplitName | argv[7], // SplitName | ||||
argv[8], // Kind | argv[8], // Kind | ||||
argv[9], // DWOId | argv[9], // DWOId | ||||
argv[10], // SplitDebugInline | argv[10], // SplitDebugInline | ||||
argv[11], // DebugInfoForProfiling | argv[11], // DebugInfoForProfiling | ||||
argv[12], // SysRoot | argv[12], // SysRoot | ||||
argv[13] // SDK | argv[13] // SDK | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_file(value Builder, value Filename, | value llvm_dibuild_create_file(value Builder, value Filename, value Directory) { | ||||
value Directory) { | return to_val(LLVMDIBuilderCreateFile( | ||||
return LLVMDIBuilderCreateFile(DIBuilder_val(Builder), String_val(Filename), | DIBuilder_val(Builder), String_val(Filename), | ||||
caml_string_length(Filename), | caml_string_length(Filename), String_val(Directory), | ||||
String_val(Directory), | caml_string_length(Directory))); | ||||
caml_string_length(Directory)); | |||||
} | } | ||||
LLVMMetadataRef | value llvm_dibuild_create_module_native(value Builder, value ParentScope, | ||||
llvm_dibuild_create_module_native(value Builder, LLVMMetadataRef ParentScope, | |||||
value Name, value ConfigMacros, | value Name, value ConfigMacros, | ||||
value IncludePath, value SysRoot) { | value IncludePath, value SysRoot) { | ||||
return LLVMDIBuilderCreateModule( | return to_val(LLVMDIBuilderCreateModule( | ||||
DIBuilder_val(Builder), ParentScope, String_val(Name), | DIBuilder_val(Builder), Metadata_val(ParentScope), String_val(Name), | ||||
caml_string_length(Name), String_val(ConfigMacros), | caml_string_length(Name), String_val(ConfigMacros), | ||||
caml_string_length(ConfigMacros), String_val(IncludePath), | caml_string_length(ConfigMacros), String_val(IncludePath), | ||||
caml_string_length(IncludePath), String_val(SysRoot), | caml_string_length(IncludePath), String_val(SysRoot), | ||||
caml_string_length(SysRoot)); | caml_string_length(SysRoot))); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_module_bytecode(value *argv, int argn) { | value llvm_dibuild_create_module_bytecode(value *argv, int argn) { | ||||
return llvm_dibuild_create_module_native( | return llvm_dibuild_create_module_native(argv[0], // Builder | ||||
argv[0], // Builder | argv[1], // ParentScope | ||||
(LLVMMetadataRef)argv[1], // ParentScope | |||||
argv[2], // Name | argv[2], // Name | ||||
argv[3], // ConfigMacros | argv[3], // ConfigMacros | ||||
argv[4], // IncludePath | argv[4], // IncludePath | ||||
argv[5] // SysRoot | argv[5] // SysRoot | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_namespace(value Builder, | value llvm_dibuild_create_namespace(value Builder, value ParentScope, | ||||
LLVMMetadataRef ParentScope, | |||||
value Name, value ExportSymbols) { | value Name, value ExportSymbols) { | ||||
return LLVMDIBuilderCreateNameSpace( | return to_val(LLVMDIBuilderCreateNameSpace( | ||||
DIBuilder_val(Builder), ParentScope, String_val(Name), | DIBuilder_val(Builder), Metadata_val(ParentScope), String_val(Name), | ||||
caml_string_length(Name), Bool_val(ExportSymbols)); | caml_string_length(Name), Bool_val(ExportSymbols))); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_function_native( | value llvm_dibuild_create_function_native(value Builder, value Scope, | ||||
value Builder, LLVMMetadataRef Scope, value Name, value LinkageName, | value Name, value LinkageName, | ||||
LLVMMetadataRef File, value LineNo, LLVMMetadataRef Ty, value IsLocalToUnit, | value File, value LineNo, value Ty, | ||||
value IsDefinition, value ScopeLine, value Flags, value IsOptimized) { | value IsLocalToUnit, | ||||
return LLVMDIBuilderCreateFunction( | value IsDefinition, value ScopeLine, | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | value Flags, value IsOptimized) { | ||||
String_val(LinkageName), caml_string_length(LinkageName), File, | return to_val(LLVMDIBuilderCreateFunction( | ||||
Int_val(LineNo), Ty, Bool_val(IsLocalToUnit), Bool_val(IsDefinition), | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
Int_val(ScopeLine), DIFlags_val(Flags), Bool_val(IsOptimized)); | caml_string_length(Name), String_val(LinkageName), | ||||
caml_string_length(LinkageName), Metadata_val(File), Int_val(LineNo), | |||||
Metadata_val(Ty), Bool_val(IsLocalToUnit), Bool_val(IsDefinition), | |||||
Int_val(ScopeLine), DIFlags_val(Flags), Bool_val(IsOptimized))); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_function_bytecode(value *argv, int argn) { | value llvm_dibuild_create_function_bytecode(value *argv, int argn) { | ||||
return llvm_dibuild_create_function_native(argv[0], // Builder, | return llvm_dibuild_create_function_native(argv[0], // Builder, | ||||
(LLVMMetadataRef)argv[1], // Scope | argv[1], // Scope | ||||
argv[2], // Name | argv[2], // Name | ||||
argv[3], // LinkageName | argv[3], // LinkageName | ||||
(LLVMMetadataRef)argv[4], // File | argv[4], // File | ||||
argv[5], // LineNo | argv[5], // LineNo | ||||
(LLVMMetadataRef)argv[6], // Ty | argv[6], // Ty | ||||
argv[7], // IsLocalUnit | argv[7], // IsLocalUnit | ||||
argv[8], // IsDefinition | argv[8], // IsDefinition | ||||
argv[9], // ScopeLine | argv[9], // ScopeLine | ||||
argv[10], // Flags | argv[10], // Flags | ||||
argv[11] // IsOptimized | argv[11] // IsOptimized | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_lexical_block(value Builder, | value llvm_dibuild_create_lexical_block(value Builder, value Scope, value File, | ||||
LLVMMetadataRef Scope, | |||||
LLVMMetadataRef File, | |||||
value Line, value Column) { | value Line, value Column) { | ||||
return LLVMDIBuilderCreateLexicalBlock(DIBuilder_val(Builder), Scope, File, | return to_val(LLVMDIBuilderCreateLexicalBlock( | ||||
Int_val(Line), Int_val(Column)); | DIBuilder_val(Builder), Metadata_val(Scope), Metadata_val(File), | ||||
Int_val(Line), Int_val(Column))); | |||||
} | } | ||||
LLVMMetadataRef llvm_metadata_null() { return (LLVMMetadataRef)NULL; } | value llvm_metadata_null(value Unit) { return to_val(NULL); } | ||||
LLVMMetadataRef llvm_dibuild_create_debug_location(LLVMContextRef Ctx, | value llvm_dibuild_create_debug_location(value Ctx, value Line, value Column, | ||||
value Line, value Column, | value Scope, value InlinedAt) { | ||||
LLVMMetadataRef Scope, | return to_val(LLVMDIBuilderCreateDebugLocation( | ||||
LLVMMetadataRef InlinedAt) { | Context_val(Ctx), Int_val(Line), Int_val(Column), Metadata_val(Scope), | ||||
return LLVMDIBuilderCreateDebugLocation(Ctx, Int_val(Line), Int_val(Column), | Metadata_val(InlinedAt))); | ||||
Scope, InlinedAt); | |||||
} | } | ||||
value llvm_di_location_get_line(LLVMMetadataRef Location) { | value llvm_di_location_get_line(value Location) { | ||||
return Val_int(LLVMDILocationGetLine(Location)); | return Val_int(LLVMDILocationGetLine(Metadata_val(Location))); | ||||
} | } | ||||
value llvm_di_location_get_column(LLVMMetadataRef Location) { | value llvm_di_location_get_column(value Location) { | ||||
return Val_int(LLVMDILocationGetColumn(Location)); | return Val_int(LLVMDILocationGetColumn(Metadata_val(Location))); | ||||
} | } | ||||
LLVMMetadataRef llvm_di_location_get_scope(LLVMMetadataRef Location) { | value llvm_di_location_get_scope(value Location) { | ||||
return LLVMDILocationGetScope(Location); | return to_val(LLVMDILocationGetScope(Metadata_val(Location))); | ||||
} | } | ||||
value llvm_di_location_get_inlined_at(LLVMMetadataRef Location) { | value llvm_di_location_get_inlined_at(value Location) { | ||||
return (ptr_to_option(LLVMDILocationGetInlinedAt(Location))); | return ptr_to_option(LLVMDILocationGetInlinedAt(Metadata_val(Location))); | ||||
} | } | ||||
value llvm_di_scope_get_file(LLVMMetadataRef Scope) { | value llvm_di_scope_get_file(value Scope) { | ||||
return (ptr_to_option(LLVMDIScopeGetFile(Scope))); | return ptr_to_option(LLVMDIScopeGetFile(Metadata_val(Scope))); | ||||
} | } | ||||
value llvm_di_file_get_directory(LLVMMetadataRef File) { | value llvm_di_file_get_directory(value File) { | ||||
unsigned Len; | unsigned Len; | ||||
const char *Directory = LLVMDIFileGetDirectory(File, &Len); | const char *Directory = LLVMDIFileGetDirectory(Metadata_val(File), &Len); | ||||
return cstr_to_string(Directory, Len); | return cstr_to_string(Directory, Len); | ||||
} | } | ||||
value llvm_di_file_get_filename(LLVMMetadataRef File) { | value llvm_di_file_get_filename(value File) { | ||||
unsigned Len; | unsigned Len; | ||||
const char *Filename = LLVMDIFileGetFilename(File, &Len); | const char *Filename = LLVMDIFileGetFilename(Metadata_val(File), &Len); | ||||
return cstr_to_string(Filename, Len); | return cstr_to_string(Filename, Len); | ||||
} | } | ||||
value llvm_di_file_get_source(LLVMMetadataRef File) { | value llvm_di_file_get_source(value File) { | ||||
unsigned Len; | unsigned Len; | ||||
const char *Source = LLVMDIFileGetSource(File, &Len); | const char *Source = LLVMDIFileGetSource(Metadata_val(File), &Len); | ||||
return cstr_to_string(Source, Len); | return cstr_to_string(Source, Len); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_get_or_create_type_array(value Builder, | value llvm_dibuild_get_or_create_type_array(value Builder, value Data) { | ||||
value Data) { | unsigned int Count = Wosize_val(Data); | ||||
jberdine: several `unsigned` ought to be `mlsize_t` in this file | |||||
LLVMMetadataRef *Temp = alloc_temp(Data); | |||||
return LLVMDIBuilderGetOrCreateTypeArray(DIBuilder_val(Builder), | LLVMMetadataRef Metadata = | ||||
(LLVMMetadataRef *)Op_val(Data), | LLVMDIBuilderGetOrCreateTypeArray(DIBuilder_val(Builder), Temp, Count); | ||||
Wosize_val(Data)); | free(Temp); | ||||
} | return to_val(Metadata); | ||||
} | |||||
LLVMMetadataRef llvm_dibuild_get_or_create_array(value Builder, value Data) { | |||||
value llvm_dibuild_get_or_create_array(value Builder, value Data) { | |||||
return LLVMDIBuilderGetOrCreateArray(DIBuilder_val(Builder), | unsigned int Count = Wosize_val(Data); | ||||
(LLVMMetadataRef *)Op_val(Data), | LLVMMetadataRef *Temp = alloc_temp(Data); | ||||
Wosize_val(Data)); | LLVMMetadataRef Metadata = | ||||
} | LLVMDIBuilderGetOrCreateArray(DIBuilder_val(Builder), Temp, Count); | ||||
free(Temp); | |||||
LLVMMetadataRef llvm_dibuild_create_subroutine_type(value Builder, | return to_val(Metadata); | ||||
LLVMMetadataRef File, | } | ||||
value ParameterTypes, | |||||
value Flags) { | value llvm_dibuild_create_subroutine_type(value Builder, value File, | ||||
value ParameterTypes, value Flags) { | |||||
return LLVMDIBuilderCreateSubroutineType( | unsigned int Count = Wosize_val(ParameterTypes); | ||||
DIBuilder_val(Builder), File, (LLVMMetadataRef *)Op_val(ParameterTypes), | LLVMMetadataRef *Temp = alloc_temp(ParameterTypes); | ||||
LLVMMetadataRef Metadata = LLVMDIBuilderCreateSubroutineType( | |||||
DIBuilder_val(Builder), Metadata_val(File), Temp, | |||||
Wosize_val(ParameterTypes), DIFlags_val(Flags)); | Wosize_val(ParameterTypes), DIFlags_val(Flags)); | ||||
free(Temp); | |||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_enumerator(value Builder, value Name, | value llvm_dibuild_create_enumerator(value Builder, value Name, value Value, | ||||
value Value, value IsUnsigned) { | value IsUnsigned) { | ||||
return LLVMDIBuilderCreateEnumerator( | return to_val(LLVMDIBuilderCreateEnumerator( | ||||
DIBuilder_val(Builder), String_val(Name), caml_string_length(Name), | DIBuilder_val(Builder), String_val(Name), caml_string_length(Name), | ||||
(int64_t)Int_val(Value), Bool_val(IsUnsigned)); | (int64_t)Int_val(Value), Bool_val(IsUnsigned))); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_enumeration_type_native( | value llvm_dibuild_create_enumeration_type_native( | ||||
value Builder, LLVMMetadataRef Scope, value Name, LLVMMetadataRef File, | value Builder, value Scope, value Name, value File, value LineNumber, | ||||
value LineNumber, value SizeInBits, value AlignInBits, value Elements, | value SizeInBits, value AlignInBits, value Elements, value ClassTy) { | ||||
LLVMMetadataRef ClassTy) { | unsigned int Count = Wosize_val(Elements); | ||||
return LLVMDIBuilderCreateEnumerationType( | LLVMMetadataRef *Temp = alloc_temp(Elements); | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | LLVMMetadataRef Metadata = LLVMDIBuilderCreateEnumerationType( | ||||
File, Int_val(LineNumber), (uint64_t)Int_val(SizeInBits), | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
Int_val(AlignInBits), (LLVMMetadataRef *)Op_val(Elements), | caml_string_length(Name), Metadata_val(File), Int_val(LineNumber), | ||||
Wosize_val(Elements), ClassTy); | (uint64_t)Int_val(SizeInBits), Int_val(AlignInBits), Temp, Count, | ||||
} | Metadata_val(ClassTy)); | ||||
free(Temp); | |||||
LLVMMetadataRef llvm_dibuild_create_enumeration_type_bytecode(value *argv, | return to_val(Metadata); | ||||
int argn) { | } | ||||
return llvm_dibuild_create_enumeration_type_native( | |||||
argv[0], // Builder | value llvm_dibuild_create_enumeration_type_bytecode(value *argv, int argn) { | ||||
(LLVMMetadataRef)argv[1], // Scope | return llvm_dibuild_create_enumeration_type_native(argv[0], // Builder | ||||
argv[1], // Scope | |||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // File | argv[3], // File | ||||
argv[4], // LineNumber | argv[4], // LineNumber | ||||
argv[5], // SizeInBits | argv[5], // SizeInBits | ||||
argv[6], // AlignInBits | argv[6], // AlignInBits | ||||
argv[7], // Elements | argv[7], // Elements | ||||
(LLVMMetadataRef)argv[8] // ClassTy | argv[8] // ClassTy | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_union_type_native( | value llvm_dibuild_create_union_type_native( | ||||
value Builder, LLVMMetadataRef Scope, value Name, LLVMMetadataRef File, | value Builder, value Scope, value Name, value File, value LineNumber, | ||||
value LineNumber, value SizeInBits, value AlignInBits, value Flags, | value SizeInBits, value AlignInBits, value Flags, value Elements, | ||||
value Elements, value RunTimeLanguage, value UniqueId) { | value RunTimeLanguage, value UniqueId) { | ||||
LLVMMetadataRef *Temp = alloc_temp(Elements); | |||||
return LLVMDIBuilderCreateUnionType( | LLVMMetadataRef Metadata = LLVMDIBuilderCreateUnionType( | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
File, Int_val(LineNumber), (uint64_t)Int_val(SizeInBits), | caml_string_length(Name), Metadata_val(File), Int_val(LineNumber), | ||||
Int_val(AlignInBits), DIFlags_val(Flags), | (uint64_t)Int_val(SizeInBits), Int_val(AlignInBits), DIFlags_val(Flags), | ||||
(LLVMMetadataRef *)Op_val(Elements), Wosize_val(Elements), | Temp, Wosize_val(Elements), Int_val(RunTimeLanguage), | ||||
Int_val(RunTimeLanguage), String_val(UniqueId), | String_val(UniqueId), caml_string_length(UniqueId)); | ||||
caml_string_length(UniqueId)); | free(Temp); | ||||
} | return to_val(Metadata); | ||||
} | |||||
LLVMMetadataRef llvm_dibuild_create_union_type_bytecode(value *argv, int argn) { | |||||
return llvm_dibuild_create_union_type_native( | value llvm_dibuild_create_union_type_bytecode(value *argv, int argn) { | ||||
argv[0], // Builder | return llvm_dibuild_create_union_type_native(argv[0], // Builder | ||||
(LLVMMetadataRef)argv[1], // Scope | argv[1], // Scope | ||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // File | argv[3], // File | ||||
argv[4], // LineNumber | argv[4], // LineNumber | ||||
argv[5], // SizeInBits | argv[5], // SizeInBits | ||||
argv[6], // AlignInBits | argv[6], // AlignInBits | ||||
argv[7], // Flags | argv[7], // Flags | ||||
argv[8], // Elements | argv[8], // Elements | ||||
argv[9], // RunTimeLanguage | argv[9], // RunTimeLanguage | ||||
argv[10] // UniqueId | argv[10] // UniqueId | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_array_type(value Builder, value Size, | value llvm_dibuild_create_array_type(value Builder, value Size, | ||||
value AlignInBits, | value AlignInBits, value Ty, | ||||
LLVMMetadataRef Ty, | |||||
value Subscripts) { | value Subscripts) { | ||||
return LLVMDIBuilderCreateArrayType( | LLVMMetadataRef *Temp = alloc_temp(Subscripts); | ||||
DIBuilder_val(Builder), (uint64_t)Int_val(Size), Int_val(AlignInBits), Ty, | LLVMMetadataRef Metadata = LLVMDIBuilderCreateArrayType( | ||||
(LLVMMetadataRef *)Op_val(Subscripts), Wosize_val(Subscripts)); | DIBuilder_val(Builder), (uint64_t)Int_val(Size), Int_val(AlignInBits), | ||||
Metadata_val(Ty), Temp, Wosize_val(Subscripts)); | |||||
free(Temp); | |||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_vector_type(value Builder, value Size, | value llvm_dibuild_create_vector_type(value Builder, value Size, | ||||
value AlignInBits, | value AlignInBits, value Ty, | ||||
LLVMMetadataRef Ty, | |||||
value Subscripts) { | value Subscripts) { | ||||
return LLVMDIBuilderCreateVectorType( | LLVMMetadataRef *Temp = alloc_temp(Subscripts); | ||||
DIBuilder_val(Builder), (uint64_t)Int_val(Size), Int_val(AlignInBits), Ty, | LLVMMetadataRef Metadata = LLVMDIBuilderCreateVectorType( | ||||
(LLVMMetadataRef *)Op_val(Subscripts), Wosize_val(Subscripts)); | DIBuilder_val(Builder), (uint64_t)Int_val(Size), Int_val(AlignInBits), | ||||
Metadata_val(Ty), Temp, Wosize_val(Subscripts)); | |||||
free(Temp); | |||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_unspecified_type(value Builder, | value llvm_dibuild_create_unspecified_type(value Builder, value Name) { | ||||
value Name) { | LLVMMetadataRef Metadata = LLVMDIBuilderCreateUnspecifiedType( | ||||
return LLVMDIBuilderCreateUnspecifiedType( | |||||
DIBuilder_val(Builder), String_val(Name), caml_string_length(Name)); | DIBuilder_val(Builder), String_val(Name), caml_string_length(Name)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_basic_type(value Builder, value Name, | value llvm_dibuild_create_basic_type(value Builder, value Name, | ||||
value SizeInBits, value Encoding, | value SizeInBits, value Encoding, | ||||
value Flags) { | value Flags) { | ||||
LLVMMetadataRef Metadata = LLVMDIBuilderCreateBasicType( | |||||
return LLVMDIBuilderCreateBasicType( | |||||
DIBuilder_val(Builder), String_val(Name), caml_string_length(Name), | DIBuilder_val(Builder), String_val(Name), caml_string_length(Name), | ||||
(uint64_t)Int_val(SizeInBits), Int_val(Encoding), DIFlags_val(Flags)); | (uint64_t)Int_val(SizeInBits), Int_val(Encoding), DIFlags_val(Flags)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_pointer_type_native( | value llvm_dibuild_create_pointer_type_native(value Builder, value PointeeTy, | ||||
value Builder, LLVMMetadataRef PointeeTy, value SizeInBits, | value SizeInBits, | ||||
value AlignInBits, value AddressSpace, value Name) { | value AlignInBits, | ||||
return LLVMDIBuilderCreatePointerType( | value AddressSpace, value Name) { | ||||
DIBuilder_val(Builder), PointeeTy, (uint64_t)Int_val(SizeInBits), | LLVMMetadataRef Metadata = LLVMDIBuilderCreatePointerType( | ||||
Int_val(AlignInBits), Int_val(AddressSpace), String_val(Name), | DIBuilder_val(Builder), Metadata_val(PointeeTy), | ||||
caml_string_length(Name)); | (uint64_t)Int_val(SizeInBits), Int_val(AlignInBits), | ||||
Int_val(AddressSpace), String_val(Name), caml_string_length(Name)); | |||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_pointer_type_bytecode(value *argv, | value llvm_dibuild_create_pointer_type_bytecode(value *argv, int argn) { | ||||
int argn) { | return llvm_dibuild_create_pointer_type_native(argv[0], // Builder | ||||
return llvm_dibuild_create_pointer_type_native( | argv[1], // PointeeTy | ||||
argv[0], // Builder | |||||
(LLVMMetadataRef)argv[1], // PointeeTy | |||||
argv[2], // SizeInBits | argv[2], // SizeInBits | ||||
argv[3], // AlignInBits | argv[3], // AlignInBits | ||||
argv[4], // AddressSpace | argv[4], // AddressSpace | ||||
argv[5] // Name | argv[5] // Name | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_struct_type_native( | value llvm_dibuild_create_struct_type_native( | ||||
value Builder, LLVMMetadataRef Scope, value Name, LLVMMetadataRef File, | value Builder, value Scope, value Name, value File, value LineNumber, | ||||
value LineNumber, value SizeInBits, value AlignInBits, value Flags, | value SizeInBits, value AlignInBits, value Flags, value DerivedFrom, | ||||
LLVMMetadataRef DerivedFrom, value Elements, value RunTimeLanguage, | value Elements, value RunTimeLanguage, value VTableHolder, value UniqueId) { | ||||
LLVMMetadataRef VTableHolder, value UniqueId) { | LLVMMetadataRef *Temp = alloc_temp(Elements); | ||||
LLVMMetadataRef Metadata = LLVMDIBuilderCreateStructType( | |||||
return LLVMDIBuilderCreateStructType( | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | caml_string_length(Name), Metadata_val(File), Int_val(LineNumber), | ||||
File, Int_val(LineNumber), (uint64_t)Int_val(SizeInBits), | (uint64_t)Int_val(SizeInBits), Int_val(AlignInBits), DIFlags_val(Flags), | ||||
Int_val(AlignInBits), DIFlags_val(Flags), DerivedFrom, | Metadata_val(DerivedFrom), Temp, Wosize_val(Elements), | ||||
(LLVMMetadataRef *)Op_val(Elements), Wosize_val(Elements), | Int_val(RunTimeLanguage), Metadata_val(VTableHolder), | ||||
Int_val(RunTimeLanguage), VTableHolder, String_val(UniqueId), | String_val(UniqueId), caml_string_length(UniqueId)); | ||||
caml_string_length(UniqueId)); | free(Temp); | ||||
} | return to_val(Metadata); | ||||
} | |||||
LLVMMetadataRef llvm_dibuild_create_struct_type_bytecode(value *argv, | |||||
int argn) { | value llvm_dibuild_create_struct_type_bytecode(value *argv, int argn) { | ||||
return llvm_dibuild_create_struct_type_native( | return llvm_dibuild_create_struct_type_native(argv[0], // Builder | ||||
argv[0], // Builder | argv[1], // Scope | ||||
(LLVMMetadataRef)argv[1], // Scope | |||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // File | argv[3], // File | ||||
argv[4], // LineNumber | argv[4], // LineNumber | ||||
argv[5], // SizeInBits | argv[5], // SizeInBits | ||||
argv[6], // AlignInBits | argv[6], // AlignInBits | ||||
argv[7], // Flags | argv[7], // Flags | ||||
(LLVMMetadataRef)argv[8], // DeriviedFrom | argv[8], // DeriviedFrom | ||||
argv[9], // Elements | argv[9], // Elements | ||||
argv[10], // RunTimeLanguage | argv[10], // RunTimeLanguage | ||||
(LLVMMetadataRef)argv[11], // VTableHolder | argv[11], // VTableHolder | ||||
argv[12] // UniqueId | argv[12] // UniqueId | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_member_type_native( | value llvm_dibuild_create_member_type_native(value Builder, value Scope, | ||||
value Builder, LLVMMetadataRef Scope, value Name, LLVMMetadataRef File, | value Name, value File, | ||||
value LineNumber, value SizeInBits, value AlignInBits, value OffsetInBits, | value LineNumber, value SizeInBits, | ||||
value Flags, LLVMMetadataRef Ty) { | value AlignInBits, | ||||
value OffsetInBits, value Flags, | |||||
return LLVMDIBuilderCreateMemberType( | value Ty) { | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | LLVMMetadataRef Metadata = LLVMDIBuilderCreateMemberType( | ||||
File, Int_val(LineNumber), (uint64_t)Int_val(SizeInBits), | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
Int_val(AlignInBits), (uint64_t)Int_val(OffsetInBits), DIFlags_val(Flags), | caml_string_length(Name), Metadata_val(File), Int_val(LineNumber), | ||||
Ty); | (uint64_t)Int_val(SizeInBits), Int_val(AlignInBits), | ||||
(uint64_t)Int_val(OffsetInBits), DIFlags_val(Flags), Metadata_val(Ty)); | |||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_member_type_bytecode(value *argv, | value llvm_dibuild_create_member_type_bytecode(value *argv, int argn) { | ||||
int argn) { | return llvm_dibuild_create_member_type_native(argv[0], // Builder | ||||
return llvm_dibuild_create_member_type_native( | argv[1], // Scope | ||||
argv[0], // Builder | |||||
(LLVMMetadataRef)argv[1], // Scope | |||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // File | argv[3], // File | ||||
argv[4], // LineNumber | argv[4], // LineNumber | ||||
argv[5], // SizeInBits | argv[5], // SizeInBits | ||||
argv[6], // AlignInBits | argv[6], // AlignInBits | ||||
argv[7], // OffsetInBits | argv[7], // OffsetInBits | ||||
argv[8], // Flags | argv[8], // Flags | ||||
(LLVMMetadataRef)argv[9] // Ty | argv[9] // Ty | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_static_member_type_native( | value llvm_dibuild_create_static_member_type_native( | ||||
value Builder, LLVMMetadataRef Scope, value Name, LLVMMetadataRef File, | value Builder, value Scope, value Name, value File, value LineNumber, | ||||
value LineNumber, LLVMMetadataRef Type, value Flags, | value Type, value Flags, value ConstantVal, value AlignInBits) { | ||||
LLVMValueRef ConstantVal, value AlignInBits) { | LLVMMetadataRef Metadata = LLVMDIBuilderCreateStaticMemberType( | ||||
DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | |||||
return LLVMDIBuilderCreateStaticMemberType( | caml_string_length(Name), Metadata_val(File), Int_val(LineNumber), | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | Metadata_val(Type), DIFlags_val(Flags), Value_val(ConstantVal), | ||||
File, Int_val(LineNumber), Type, DIFlags_val(Flags), ConstantVal, | |||||
Int_val(AlignInBits)); | Int_val(AlignInBits)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_static_member_type_bytecode(value *argv, | value llvm_dibuild_create_static_member_type_bytecode(value *argv, int argn) { | ||||
int argn) { | return llvm_dibuild_create_static_member_type_native(argv[0], // Builder | ||||
return llvm_dibuild_create_static_member_type_native( | argv[1], // Scope | ||||
argv[0], // Builder | |||||
(LLVMMetadataRef)argv[1], // Scope | |||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // File | argv[3], // File | ||||
argv[4], // LineNumber | argv[4], // LineNumber | ||||
(LLVMMetadataRef)argv[5], // Type | argv[5], // Type | ||||
argv[6], // Flags, | argv[6], // Flags, | ||||
(LLVMValueRef)argv[7], // ConstantVal | argv[7], // ConstantVal | ||||
argv[8] // AlignInBits | argv[8] // AlignInBits | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_member_pointer_type_native( | value llvm_dibuild_create_member_pointer_type_native( | ||||
value Builder, LLVMMetadataRef PointeeType, LLVMMetadataRef ClassType, | value Builder, value PointeeType, value ClassType, value SizeInBits, | ||||
uint64_t SizeInBits, uint32_t AlignInBits, LLVMDIFlags Flags) { | value AlignInBits, value Flags) { | ||||
LLVMMetadataRef Metadata = LLVMDIBuilderCreateMemberPointerType( | |||||
return LLVMDIBuilderCreateMemberPointerType( | DIBuilder_val(Builder), Metadata_val(PointeeType), | ||||
DIBuilder_val(Builder), PointeeType, ClassType, | Metadata_val(ClassType), (uint64_t)Int_val(SizeInBits), | ||||
(uint64_t)Int_val(SizeInBits), Int_val(AlignInBits), Flags); | Int_val(AlignInBits), llvm_diflags_get(Flags)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_member_pointer_type_bytecode(value *argv, | value llvm_dibuild_create_member_pointer_type_bytecode(value *argv, int argn) { | ||||
int argn) { | return llvm_dibuild_create_member_pointer_type_native(argv[0], // Builder | ||||
return llvm_dibuild_create_member_pointer_type_native( | argv[1], // PointeeType | ||||
argv[0], // Builder | argv[2], // ClassType | ||||
(LLVMMetadataRef)argv[1], // PointeeType | |||||
(LLVMMetadataRef)argv[2], // ClassType | |||||
argv[3], // SizeInBits | argv[3], // SizeInBits | ||||
argv[4], // AlignInBits | argv[4], // AlignInBits | ||||
argv[5] // Flags | argv[5] // Flags | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_object_pointer_type(value Builder, | value llvm_dibuild_create_object_pointer_type(value Builder, value Type) { | ||||
LLVMMetadataRef Type) { | LLVMMetadataRef Metadata = LLVMDIBuilderCreateObjectPointerType( | ||||
return LLVMDIBuilderCreateObjectPointerType(DIBuilder_val(Builder), Type); | DIBuilder_val(Builder), Metadata_val(Type)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_qualified_type(value Builder, value Tag, | value llvm_dibuild_create_qualified_type(value Builder, value Tag, value Type) { | ||||
LLVMMetadataRef Type) { | LLVMMetadataRef Metadata = LLVMDIBuilderCreateQualifiedType( | ||||
DIBuilder_val(Builder), Int_val(Tag), Metadata_val(Type)); | |||||
return LLVMDIBuilderCreateQualifiedType(DIBuilder_val(Builder), Int_val(Tag), | return to_val(Metadata); | ||||
Type); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_reference_type(value Builder, value Tag, | value llvm_dibuild_create_reference_type(value Builder, value Tag, value Type) { | ||||
LLVMMetadataRef Type) { | LLVMMetadataRef Metadata = LLVMDIBuilderCreateReferenceType( | ||||
DIBuilder_val(Builder), Int_val(Tag), Metadata_val(Type)); | |||||
return LLVMDIBuilderCreateReferenceType(DIBuilder_val(Builder), Int_val(Tag), | return to_val(Metadata); | ||||
Type); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_null_ptr_type(value Builder) { | value llvm_dibuild_create_null_ptr_type(value Builder) { | ||||
return to_val(LLVMDIBuilderCreateNullPtrType(DIBuilder_val(Builder))); | |||||
return LLVMDIBuilderCreateNullPtrType(DIBuilder_val(Builder)); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_typedef_native( | value llvm_dibuild_create_typedef_native(value Builder, value Type, value Name, | ||||
value Builder, LLVMMetadataRef Type, value Name, LLVMMetadataRef File, | value File, value LineNo, value Scope, | ||||
value LineNo, LLVMMetadataRef Scope, value AlignInBits) { | value AlignInBits) { | ||||
LLVMMetadataRef Metadata = LLVMDIBuilderCreateTypedef( | |||||
return LLVMDIBuilderCreateTypedef( | DIBuilder_val(Builder), Metadata_val(Type), String_val(Name), | ||||
DIBuilder_val(Builder), Type, String_val(Name), caml_string_length(Name), | caml_string_length(Name), Metadata_val(File), Int_val(LineNo), | ||||
File, Int_val(LineNo), Scope, Int_val(AlignInBits)); | Metadata_val(Scope), Int_val(AlignInBits)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_typedef_bytecode(value *argv, int argn) { | value llvm_dibuild_create_typedef_bytecode(value *argv, int argn) { | ||||
return llvm_dibuild_create_typedef_native(argv[0], // Builder | return llvm_dibuild_create_typedef_native(argv[0], // Builder | ||||
(LLVMMetadataRef)argv[1], // Type | argv[1], // Type | ||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // File | argv[3], // File | ||||
argv[4], // LineNo | argv[4], // LineNo | ||||
(LLVMMetadataRef)argv[5], // Scope | argv[5], // Scope | ||||
argv[6] // AlignInBits | argv[6] // AlignInBits | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef | value llvm_dibuild_create_inheritance_native(value Builder, value Ty, | ||||
llvm_dibuild_create_inheritance_native(value Builder, LLVMMetadataRef Ty, | value BaseTy, value BaseOffset, | ||||
LLVMMetadataRef BaseTy, value BaseOffset, | |||||
value VBPtrOffset, value Flags) { | value VBPtrOffset, value Flags) { | ||||
LLVMMetadataRef Metadata = LLVMDIBuilderCreateInheritance( | |||||
return LLVMDIBuilderCreateInheritance(DIBuilder_val(Builder), Ty, BaseTy, | DIBuilder_val(Builder), Metadata_val(Ty), Metadata_val(BaseTy), | ||||
(uint64_t)Int_val(BaseOffset), | (uint64_t)Int_val(BaseOffset), Int_val(VBPtrOffset), DIFlags_val(Flags)); | ||||
Int_val(VBPtrOffset), Flags); | return to_val(Metadata); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_inheritance_bytecode(value *argv, int arg) { | value llvm_dibuild_create_inheritance_bytecode(value *argv, int arg) { | ||||
return llvm_dibuild_create_inheritance_native(argv[0], // Builder | |||||
return llvm_dibuild_create_inheritance_native( | argv[1], // Ty | ||||
argv[0], // Builder | argv[2], // BaseTy | ||||
(LLVMMetadataRef)argv[1], // Ty | |||||
(LLVMMetadataRef)argv[2], // BaseTy | |||||
argv[3], // BaseOffset | argv[3], // BaseOffset | ||||
argv[4], // VBPtrOffset | argv[4], // VBPtrOffset | ||||
argv[5] // Flags | argv[5] // Flags | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_forward_decl_native( | value llvm_dibuild_create_forward_decl_native( | ||||
value Builder, value Tag, value Name, LLVMMetadataRef Scope, | value Builder, value Tag, value Name, value Scope, value File, value Line, | ||||
LLVMMetadataRef File, value Line, value RuntimeLang, value SizeInBits, | value RuntimeLang, value SizeInBits, value AlignInBits, | ||||
value AlignInBits, value UniqueIdentifier) { | value UniqueIdentifier) { | ||||
return LLVMDIBuilderCreateForwardDecl( | LLVMMetadataRef Metadata = LLVMDIBuilderCreateForwardDecl( | ||||
DIBuilder_val(Builder), Int_val(Tag), String_val(Name), | DIBuilder_val(Builder), Int_val(Tag), String_val(Name), | ||||
caml_string_length(Name), Scope, File, Int_val(Line), | caml_string_length(Name), Metadata_val(Scope), Metadata_val(File), | ||||
Int_val(RuntimeLang), (uint64_t)Int_val(SizeInBits), Int_val(AlignInBits), | Int_val(Line), Int_val(RuntimeLang), (uint64_t)Int_val(SizeInBits), | ||||
String_val(UniqueIdentifier), caml_string_length(UniqueIdentifier)); | Int_val(AlignInBits), String_val(UniqueIdentifier), | ||||
caml_string_length(UniqueIdentifier)); | |||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_forward_decl_bytecode(value *argv, | value llvm_dibuild_create_forward_decl_bytecode(value *argv, int arg) { | ||||
int arg) { | |||||
return llvm_dibuild_create_forward_decl_native( | return llvm_dibuild_create_forward_decl_native(argv[0], // Builder | ||||
argv[0], // Builder | |||||
argv[1], // Tag | argv[1], // Tag | ||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // Scope | argv[3], // Scope | ||||
(LLVMMetadataRef)argv[4], // File | argv[4], // File | ||||
argv[5], // Line | argv[5], // Line | ||||
argv[6], // RuntimeLang | argv[6], // RuntimeLang | ||||
argv[7], // SizeInBits | argv[7], // SizeInBits | ||||
argv[8], // AlignInBits | argv[8], // AlignInBits | ||||
argv[9] // UniqueIdentifier | argv[9] // UniqueIdentifier | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_replaceable_composite_type_native( | value llvm_dibuild_create_replaceable_composite_type_native( | ||||
value Builder, value Tag, value Name, LLVMMetadataRef Scope, | value Builder, value Tag, value Name, value Scope, value File, value Line, | ||||
LLVMMetadataRef File, value Line, value RuntimeLang, value SizeInBits, | value RuntimeLang, value SizeInBits, value AlignInBits, value Flags, | ||||
value AlignInBits, value Flags, value UniqueIdentifier) { | value UniqueIdentifier) { | ||||
LLVMMetadataRef Metadata = LLVMDIBuilderCreateReplaceableCompositeType( | |||||
return LLVMDIBuilderCreateReplaceableCompositeType( | |||||
DIBuilder_val(Builder), Int_val(Tag), String_val(Name), | DIBuilder_val(Builder), Int_val(Tag), String_val(Name), | ||||
caml_string_length(Name), Scope, File, Int_val(Line), | caml_string_length(Name), Metadata_val(Scope), Metadata_val(File), | ||||
Int_val(RuntimeLang), (uint64_t)Int_val(SizeInBits), Int_val(AlignInBits), | Int_val(Line), Int_val(RuntimeLang), (uint64_t)Int_val(SizeInBits), | ||||
DIFlags_val(Flags), String_val(UniqueIdentifier), | Int_val(AlignInBits), DIFlags_val(Flags), String_val(UniqueIdentifier), | ||||
caml_string_length(UniqueIdentifier)); | caml_string_length(UniqueIdentifier)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef | value llvm_dibuild_create_replaceable_composite_type_bytecode(value *argv, | ||||
llvm_dibuild_create_replaceable_composite_type_bytecode(value *argv, int arg) { | int arg) { | ||||
return llvm_dibuild_create_replaceable_composite_type_native( | return llvm_dibuild_create_replaceable_composite_type_native( | ||||
argv[0], // Builder | argv[0], // Builder | ||||
argv[1], // Tag | argv[1], // Tag | ||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // Scope | argv[3], // Scope | ||||
(LLVMMetadataRef)argv[4], // File | argv[4], // File | ||||
argv[5], // Line | argv[5], // Line | ||||
argv[6], // RuntimeLang | argv[6], // RuntimeLang | ||||
argv[7], // SizeInBits | argv[7], // SizeInBits | ||||
argv[8], // AlignInBits | argv[8], // AlignInBits | ||||
argv[9], // Flags | argv[9], // Flags | ||||
argv[10] // UniqueIdentifier | argv[10] // UniqueIdentifier | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_bit_field_member_type_native( | value llvm_dibuild_create_bit_field_member_type_native( | ||||
value Builder, LLVMMetadataRef Scope, value Name, LLVMMetadataRef File, | value Builder, value Scope, value Name, value File, value LineNum, | ||||
value LineNum, value SizeInBits, value OffsetInBits, | value SizeInBits, value OffsetInBits, value StorageOffsetInBits, | ||||
value StorageOffsetInBits, value Flags, LLVMMetadataRef Ty) { | value Flags, value Ty) { | ||||
LLVMMetadataRef Metadata = LLVMDIBuilderCreateBitFieldMemberType( | |||||
return LLVMDIBuilderCreateBitFieldMemberType( | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | caml_string_length(Name), Metadata_val(File), Int_val(LineNum), | ||||
File, Int_val(LineNum), (uint64_t)Int_val(SizeInBits), | (uint64_t)Int_val(SizeInBits), (uint64_t)Int_val(OffsetInBits), | ||||
(uint64_t)Int_val(OffsetInBits), (uint64_t)Int_val(StorageOffsetInBits), | (uint64_t)Int_val(StorageOffsetInBits), DIFlags_val(Flags), | ||||
DIFlags_val(Flags), Ty); | Metadata_val(Ty)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_bit_field_member_type_bytecode(value *argv, | value llvm_dibuild_create_bit_field_member_type_bytecode(value *argv, int arg) { | ||||
int arg) { | |||||
return llvm_dibuild_create_bit_field_member_type_native( | return llvm_dibuild_create_bit_field_member_type_native( | ||||
argv[0], // Builder | argv[0], // Builder | ||||
(LLVMMetadataRef)argv[1], // Scope | argv[1], // Scope | ||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // File | argv[3], // File | ||||
argv[4], // LineNum | argv[4], // LineNum | ||||
argv[5], // SizeInBits | argv[5], // SizeInBits | ||||
argv[6], // OffsetInBits | argv[6], // OffsetInBits | ||||
argv[7], // StorageOffsetInBits | argv[7], // StorageOffsetInBits | ||||
argv[8], // Flags | argv[8], // Flags | ||||
(LLVMMetadataRef)argv[9] // Ty | argv[9] // Ty | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_class_type_native( | value llvm_dibuild_create_class_type_native( | ||||
value Builder, LLVMMetadataRef Scope, value Name, LLVMMetadataRef File, | value Builder, value Scope, value Name, value File, value LineNumber, | ||||
value LineNumber, value SizeInBits, value AlignInBits, value OffsetInBits, | value SizeInBits, value AlignInBits, value OffsetInBits, value Flags, | ||||
value Flags, LLVMMetadataRef DerivedFrom, value Elements, | value DerivedFrom, value Elements, value VTableHolder, | ||||
LLVMMetadataRef VTableHolder, LLVMMetadataRef TemplateParamsNode, | value TemplateParamsNode, value UniqueIdentifier) { | ||||
value UniqueIdentifier) { | LLVMMetadataRef *Temp = alloc_temp(Elements); | ||||
LLVMMetadataRef Metadata = LLVMDIBuilderCreateClassType( | |||||
return LLVMDIBuilderCreateClassType( | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | caml_string_length(Name), Metadata_val(File), Int_val(LineNumber), | ||||
File, Int_val(LineNumber), (uint64_t)Int_val(SizeInBits), | (uint64_t)Int_val(SizeInBits), Int_val(AlignInBits), | ||||
Int_val(AlignInBits), (uint64_t)Int_val(OffsetInBits), DIFlags_val(Flags), | (uint64_t)Int_val(OffsetInBits), DIFlags_val(Flags), | ||||
DerivedFrom, (LLVMMetadataRef *)Op_val(Elements), Wosize_val(Elements), | Metadata_val(DerivedFrom), Temp, Wosize_val(Elements), | ||||
VTableHolder, TemplateParamsNode, String_val(UniqueIdentifier), | Metadata_val(VTableHolder), Metadata_val(TemplateParamsNode), | ||||
caml_string_length(UniqueIdentifier)); | String_val(UniqueIdentifier), caml_string_length(UniqueIdentifier)); | ||||
free(Temp); | |||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_class_type_bytecode(value *argv, int arg) { | value llvm_dibuild_create_class_type_bytecode(value *argv, int arg) { | ||||
return llvm_dibuild_create_class_type_native( | return llvm_dibuild_create_class_type_native(argv[0], // Builder | ||||
argv[0], // Builder | argv[1], // Scope | ||||
(LLVMMetadataRef)argv[1], // Scope | |||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // File | argv[3], // File | ||||
argv[4], // LineNumber | argv[4], // LineNumber | ||||
argv[5], // SizeInBits | argv[5], // SizeInBits | ||||
argv[6], // AlignInBits | argv[6], // AlignInBits | ||||
argv[7], // OffsetInBits | argv[7], // OffsetInBits | ||||
argv[8], // Flags | argv[8], // Flags | ||||
(LLVMMetadataRef)argv[9], // DerivedFrom | argv[9], // DerivedFrom | ||||
argv[10], // Elements | argv[10], // Elements | ||||
(LLVMMetadataRef)argv[11], // VTableHolder | argv[11], // VTableHolder | ||||
(LLVMMetadataRef)argv[12], // TemplateParamsNode | argv[12], // TemplateParamsNode | ||||
argv[13] // UniqueIdentifier | argv[13] // UniqueIdentifier | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_artificial_type(value Builder, | value llvm_dibuild_create_artificial_type(value Builder, value Type) { | ||||
LLVMMetadataRef Type) { | LLVMMetadataRef Metadata = LLVMDIBuilderCreateArtificialType( | ||||
return LLVMDIBuilderCreateArtificialType(DIBuilder_val(Builder), Type); | DIBuilder_val(Builder), Metadata_val(Type)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
value llvm_di_type_get_name(LLVMMetadataRef DType) { | value llvm_di_type_get_name(value DType) { | ||||
size_t Len; | size_t Len; | ||||
const char *Name = LLVMDITypeGetName(DType, &Len); | const char *Name = LLVMDITypeGetName(Metadata_val(DType), &Len); | ||||
return cstr_to_string(Name, Len); | return cstr_to_string(Name, Len); | ||||
} | } | ||||
value llvm_di_type_get_size_in_bits(LLVMMetadataRef DType) { | value llvm_di_type_get_size_in_bits(value DType) { | ||||
uint64_t Size = LLVMDITypeGetSizeInBits(DType); | uint64_t Size = LLVMDITypeGetSizeInBits(Metadata_val(DType)); | ||||
return Val_int((int)Size); | return Val_int((int)Size); | ||||
} | } | ||||
value llvm_di_type_get_offset_in_bits(LLVMMetadataRef DType) { | value llvm_di_type_get_offset_in_bits(value DType) { | ||||
uint64_t Size = LLVMDITypeGetOffsetInBits(DType); | uint64_t Size = LLVMDITypeGetOffsetInBits(Metadata_val(DType)); | ||||
return Val_int((int)Size); | return Val_int((int)Size); | ||||
} | } | ||||
value llvm_di_type_get_align_in_bits(LLVMMetadataRef DType) { | value llvm_di_type_get_align_in_bits(value DType) { | ||||
uint32_t Size = LLVMDITypeGetAlignInBits(DType); | uint32_t Size = LLVMDITypeGetAlignInBits(Metadata_val(DType)); | ||||
return Val_int(Size); | return Val_int(Size); | ||||
} | } | ||||
value llvm_di_type_get_line(LLVMMetadataRef DType) { | value llvm_di_type_get_line(value DType) { | ||||
unsigned Line = LLVMDITypeGetLine(DType); | unsigned Line = LLVMDITypeGetLine(Metadata_val(DType)); | ||||
return Val_int(Line); | return Val_int(Line); | ||||
} | } | ||||
value llvm_di_type_get_flags(LLVMMetadataRef DType) { | value llvm_di_type_get_flags(value DType) { | ||||
LLVMDIFlags Flags = LLVMDITypeGetLine(DType); | LLVMDIFlags Flags = LLVMDITypeGetLine(Metadata_val(DType)); | ||||
return alloc_diflags(Flags); | return alloc_diflags(Flags); | ||||
} | } | ||||
value llvm_get_subprogram(LLVMValueRef Func) { | value llvm_get_subprogram(value Func) { | ||||
return (ptr_to_option(LLVMGetSubprogram(Func))); | return ptr_to_option(LLVMGetSubprogram(Value_val(Func))); | ||||
} | } | ||||
value llvm_set_subprogram(LLVMValueRef Func, LLVMMetadataRef SP) { | value llvm_set_subprogram(value Func, value SP) { | ||||
LLVMSetSubprogram(Func, SP); | LLVMSetSubprogram(Value_val(Func), Metadata_val(SP)); | ||||
return Val_unit; | return Val_unit; | ||||
} | } | ||||
value llvm_di_subprogram_get_line(LLVMMetadataRef Subprogram) { | value llvm_di_subprogram_get_line(value Subprogram) { | ||||
return Val_int(LLVMDISubprogramGetLine(Subprogram)); | return Val_int(LLVMDISubprogramGetLine(Metadata_val(Subprogram))); | ||||
} | } | ||||
value llvm_instr_get_debug_loc(LLVMValueRef Inst) { | value llvm_instr_get_debug_loc(value Inst) { | ||||
return (ptr_to_option(LLVMInstructionGetDebugLoc(Inst))); | return ptr_to_option(LLVMInstructionGetDebugLoc(Value_val(Inst))); | ||||
} | } | ||||
value llvm_instr_set_debug_loc(LLVMValueRef Inst, LLVMMetadataRef Loc) { | value llvm_instr_set_debug_loc(value Inst, value Loc) { | ||||
LLVMInstructionSetDebugLoc(Inst, Loc); | LLVMInstructionSetDebugLoc(Value_val(Inst), Metadata_val(Loc)); | ||||
return Val_unit; | return Val_unit; | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_constant_value_expression(value Builder, | value llvm_dibuild_create_constant_value_expression(value Builder, | ||||
value Value) { | value Value) { | ||||
return LLVMDIBuilderCreateConstantValueExpression(DIBuilder_val(Builder), | LLVMMetadataRef Metadata = LLVMDIBuilderCreateConstantValueExpression( | ||||
(uint64_t)Int_val(Value)); | DIBuilder_val(Builder), (uint64_t)Int_val(Value)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_global_variable_expression_native( | value llvm_dibuild_create_global_variable_expression_native( | ||||
value Builder, LLVMMetadataRef Scope, value Name, value Linkage, | value Builder, value Scope, value Name, value Linkage, value File, | ||||
LLVMMetadataRef File, value Line, LLVMMetadataRef Ty, value LocalToUnit, | value Line, value Ty, value LocalToUnit, value Expr, value Decl, | ||||
LLVMMetadataRef Expr, LLVMMetadataRef Decl, value AlignInBits) { | value AlignInBits) { | ||||
return LLVMDIBuilderCreateGlobalVariableExpression( | LLVMMetadataRef Metadata = LLVMDIBuilderCreateGlobalVariableExpression( | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
String_val(Linkage), caml_string_length(Linkage), File, Int_val(Line), Ty, | caml_string_length(Name), String_val(Linkage), | ||||
Bool_val(LocalToUnit), Expr, Decl, Int_val(AlignInBits)); | caml_string_length(Linkage), Metadata_val(File), Int_val(Line), | ||||
Metadata_val(Ty), Bool_val(LocalToUnit), Metadata_val(Expr), | |||||
Metadata_val(Decl), Int_val(AlignInBits)); | |||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef | value llvm_dibuild_create_global_variable_expression_bytecode(value *argv, | ||||
llvm_dibuild_create_global_variable_expression_bytecode(value *argv, int arg) { | int arg) { | ||||
return llvm_dibuild_create_global_variable_expression_native( | return llvm_dibuild_create_global_variable_expression_native( | ||||
argv[0], // Builder | argv[0], // Builder | ||||
(LLVMMetadataRef)argv[1], // Scope | argv[1], // Scope | ||||
argv[2], // Name | argv[2], // Name | ||||
argv[3], // Linkage | argv[3], // Linkage | ||||
(LLVMMetadataRef)argv[4], // File | argv[4], // File | ||||
argv[5], // Line | argv[5], // Line | ||||
(LLVMMetadataRef)argv[6], // Ty | argv[6], // Ty | ||||
argv[7], // LocalToUnit | argv[7], // LocalToUnit | ||||
(LLVMMetadataRef)argv[8], // Expr | argv[8], // Expr | ||||
(LLVMMetadataRef)argv[9], // Decl | argv[9], // Decl | ||||
argv[10] // AlignInBits | argv[10] // AlignInBits | ||||
); | ); | ||||
} | } | ||||
value llvm_di_global_variable_expression_get_variable(LLVMMetadataRef GVE) { | value llvm_di_global_variable_expression_get_variable(value GVE) { | ||||
return (ptr_to_option(LLVMDIGlobalVariableExpressionGetVariable(GVE))); | return ptr_to_option( | ||||
LLVMDIGlobalVariableExpressionGetVariable(Metadata_val(GVE))); | |||||
} | } | ||||
value llvm_di_variable_get_line(LLVMMetadataRef Variable) { | value llvm_di_variable_get_line(value Variable) { | ||||
return Val_int(LLVMDIVariableGetLine(Variable)); | return Val_int(LLVMDIVariableGetLine(Metadata_val(Variable))); | ||||
} | } | ||||
value llvm_di_variable_get_file(LLVMMetadataRef Variable) { | value llvm_di_variable_get_file(value Variable) { | ||||
return (ptr_to_option(LLVMDIVariableGetFile(Variable))); | return ptr_to_option(LLVMDIVariableGetFile(Metadata_val(Variable))); | ||||
} | } | ||||
value llvm_get_metadata_kind(LLVMMetadataRef Metadata) { | value llvm_get_metadata_kind(value Metadata) { | ||||
return Val_int(LLVMGetMetadataKind(Metadata)); | return Val_int(LLVMGetMetadataKind(Metadata_val(Metadata))); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_auto_variable_native( | value llvm_dibuild_create_auto_variable_native(value Builder, value Scope, | ||||
value Builder, LLVMMetadataRef Scope, value Name, LLVMMetadataRef File, | value Name, value File, | ||||
value Line, LLVMMetadataRef Ty, value AlwaysPreserve, value Flags, | value Line, value Ty, | ||||
value AlignInBits) { | value AlwaysPreserve, | ||||
return LLVMDIBuilderCreateAutoVariable( | value Flags, value AlignInBits) { | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | return to_val(LLVMDIBuilderCreateAutoVariable( | ||||
File, Int_val(Line), Ty, Bool_val(AlwaysPreserve), DIFlags_val(Flags), | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
Int_val(AlignInBits)); | caml_string_length(Name), Metadata_val(File), Int_val(Line), | ||||
Metadata_val(Ty), Bool_val(AlwaysPreserve), DIFlags_val(Flags), | |||||
Int_val(AlignInBits))); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_auto_variable_bytecode(value *argv, | value llvm_dibuild_create_auto_variable_bytecode(value *argv, int arg) { | ||||
int arg) { | |||||
return llvm_dibuild_create_auto_variable_native( | return llvm_dibuild_create_auto_variable_native(argv[0], // Builder | ||||
argv[0], // Builder | argv[1], // Scope | ||||
(LLVMMetadataRef)argv[1], // Scope | |||||
argv[2], // Name | argv[2], // Name | ||||
(LLVMMetadataRef)argv[3], // File | argv[3], // File | ||||
argv[4], // Line | argv[4], // Line | ||||
(LLVMMetadataRef)argv[5], // Ty | argv[5], // Ty | ||||
argv[6], // AlwaysPreserve | argv[6], // AlwaysPreserve | ||||
argv[7], // Flags | argv[7], // Flags | ||||
argv[8] // AlignInBits | argv[8] // AlignInBits | ||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_parameter_variable_native( | value llvm_dibuild_create_parameter_variable_native( | ||||
value Builder, LLVMMetadataRef Scope, value Name, unsigned ArgNo, | value Builder, value Scope, value Name, value ArgNo, value File, value Line, | ||||
LLVMMetadataRef File, value Line, LLVMMetadataRef Ty, value AlwaysPreserve, | value Ty, value AlwaysPreserve, value Flags) { | ||||
value Flags) { | LLVMMetadataRef Metadata = LLVMDIBuilderCreateParameterVariable( | ||||
return LLVMDIBuilderCreateParameterVariable( | DIBuilder_val(Builder), Metadata_val(Scope), String_val(Name), | ||||
DIBuilder_val(Builder), Scope, String_val(Name), caml_string_length(Name), | caml_string_length(Name), (unsigned)Int_val(ArgNo), Metadata_val(File), | ||||
ArgNo, File, Int_val(Line), Ty, Bool_val(AlwaysPreserve), | Int_val(Line), Metadata_val(Ty), Bool_val(AlwaysPreserve), | ||||
DIFlags_val(Flags)); | DIFlags_val(Flags)); | ||||
return to_val(Metadata); | |||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_create_parameter_variable_bytecode(value *argv, | value llvm_dibuild_create_parameter_variable_bytecode(value *argv, int arg) { | ||||
int arg) { | |||||
return llvm_dibuild_create_parameter_variable_native( | return llvm_dibuild_create_parameter_variable_native( | ||||
argv[0], // Builder | argv[0], // Builder | ||||
(LLVMMetadataRef)argv[1], // Scope | argv[1], // Scope | ||||
argv[2], // Name | argv[2], // Name | ||||
argv[3], // ArgNo | argv[3], // ArgNo | ||||
(LLVMMetadataRef)argv[4], // File | argv[4], // File | ||||
argv[5], // Line | argv[5], // Line | ||||
(LLVMMetadataRef)argv[6], // Ty | argv[6], // Ty | ||||
argv[7], // AlwaysPreserve | argv[7], // AlwaysPreserve | ||||
argv[8] // Flags | argv[8] // Flags | ||||
); | ); | ||||
} | } | ||||
LLVMValueRef llvm_dibuild_insert_declare_before_native( | value llvm_dibuild_insert_declare_before_native(value Builder, value Storage, | ||||
value Builder, LLVMValueRef Storage, LLVMMetadataRef VarInfo, | value VarInfo, value Expr, | ||||
LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMValueRef Instr) { | value DebugLoc, value Instr) { | ||||
return LLVMDIBuilderInsertDeclareBefore(DIBuilder_val(Builder), Storage, | LLVMValueRef Value = LLVMDIBuilderInsertDeclareBefore( | ||||
VarInfo, Expr, DebugLoc, Instr); | DIBuilder_val(Builder), Value_val(Storage), Metadata_val(VarInfo), | ||||
Metadata_val(Expr), Metadata_val(DebugLoc), Value_val(Instr)); | |||||
return to_val(Value); | |||||
} | } | ||||
LLVMValueRef llvm_dibuild_insert_declare_before_bytecode(value *argv, int arg) { | value llvm_dibuild_insert_declare_before_bytecode(value *argv, int arg) { | ||||
return llvm_dibuild_insert_declare_before_native( | return llvm_dibuild_insert_declare_before_native(argv[0], // Builder | ||||
argv[0], // Builder | argv[1], // Storage | ||||
(LLVMValueRef)argv[1], // Storage | argv[2], // VarInfo | ||||
(LLVMMetadataRef)argv[2], // VarInfo | argv[3], // Expr | ||||
(LLVMMetadataRef)argv[3], // Expr | argv[4], // DebugLoc | ||||
(LLVMMetadataRef)argv[4], // DebugLoc | argv[5] // Instr | ||||
(LLVMValueRef)argv[5] // Instr | |||||
); | ); | ||||
} | } | ||||
LLVMValueRef llvm_dibuild_insert_declare_at_end_native( | value llvm_dibuild_insert_declare_at_end_native(value Builder, value Storage, | ||||
value Builder, LLVMValueRef Storage, LLVMMetadataRef VarInfo, | value VarInfo, value Expr, | ||||
LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMBasicBlockRef Block) { | value DebugLoc, value Block) { | ||||
return LLVMDIBuilderInsertDeclareAtEnd(DIBuilder_val(Builder), Storage, | LLVMValueRef Value = LLVMDIBuilderInsertDeclareAtEnd( | ||||
VarInfo, Expr, DebugLoc, Block); | DIBuilder_val(Builder), Value_val(Storage), Metadata_val(VarInfo), | ||||
Metadata_val(Expr), Metadata_val(DebugLoc), BasicBlock_val(Block)); | |||||
return to_val(Value); | |||||
} | } | ||||
LLVMValueRef llvm_dibuild_insert_declare_at_end_bytecode(value *argv, int arg) { | value llvm_dibuild_insert_declare_at_end_bytecode(value *argv, int arg) { | ||||
return llvm_dibuild_insert_declare_at_end_native(argv[0], // Builder | |||||
return llvm_dibuild_insert_declare_at_end_native( | argv[1], // Storage | ||||
argv[0], // Builder | argv[2], // VarInfo | ||||
(LLVMValueRef)argv[1], // Storage | argv[3], // Expr | ||||
(LLVMMetadataRef)argv[2], // VarInfo | argv[4], // DebugLoc | ||||
(LLVMMetadataRef)argv[3], // Expr | argv[5] // Block | ||||
(LLVMMetadataRef)argv[4], // DebugLoc | |||||
(LLVMBasicBlockRef)argv[5] // Block | |||||
); | ); | ||||
} | } | ||||
LLVMMetadataRef llvm_dibuild_expression(value Builder, value Addr) { | value llvm_dibuild_expression(value Builder, value Addr) { | ||||
return LLVMDIBuilderCreateExpression( | return to_val(LLVMDIBuilderCreateExpression( | ||||
DIBuilder_val(Builder), (uint64_t *)Op_val(Addr), Wosize_val(Addr)); | DIBuilder_val(Builder), (uint64_t *)Op_val(Addr), Wosize_val(Addr))); | ||||
} | } |
several unsigned ought to be mlsize_t in this file