Replace our LLVMRustDIBuilderRef
with LLVM-C's LLVMDIBuilderRef
This makes it possible to start incrementally replacing our debuginfo bindings with the ones in the LLVM-C API, all of which operate on `LLVMDIBuilderRef`.
This commit is contained in:
parent
a730edcd67
commit
63a039a7f5
1 changed files with 91 additions and 90 deletions
|
@ -667,8 +667,6 @@ extern "C" bool LLVMRustInlineAsmVerify(LLVMTypeRef Ty, char *Constraints,
|
||||||
unwrap<FunctionType>(Ty), StringRef(Constraints, ConstraintsLen)));
|
unwrap<FunctionType>(Ty), StringRef(Constraints, ConstraintsLen)));
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef DIBuilder *LLVMRustDIBuilderRef;
|
|
||||||
|
|
||||||
template <typename DIT> DIT *unwrapDIPtr(LLVMMetadataRef Ref) {
|
template <typename DIT> DIT *unwrapDIPtr(LLVMMetadataRef Ref) {
|
||||||
return (DIT *)(Ref ? unwrap<MDNode>(Ref) : nullptr);
|
return (DIT *)(Ref ? unwrap<MDNode>(Ref) : nullptr);
|
||||||
}
|
}
|
||||||
|
@ -994,34 +992,34 @@ extern "C" void LLVMRustGlobalAddMetadata(LLVMValueRef Global, unsigned Kind,
|
||||||
unwrap<GlobalObject>(Global)->addMetadata(Kind, *unwrap<MDNode>(MD));
|
unwrap<GlobalObject>(Global)->addMetadata(Kind, *unwrap<MDNode>(MD));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMRustDIBuilderRef LLVMRustDIBuilderCreate(LLVMModuleRef M) {
|
extern "C" LLVMDIBuilderRef LLVMRustDIBuilderCreate(LLVMModuleRef M) {
|
||||||
return new DIBuilder(*unwrap(M));
|
return wrap(new DIBuilder(*unwrap(M)));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void LLVMRustDIBuilderDispose(LLVMRustDIBuilderRef Builder) {
|
extern "C" void LLVMRustDIBuilderDispose(LLVMDIBuilderRef Builder) {
|
||||||
delete Builder;
|
delete unwrap(Builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void LLVMRustDIBuilderFinalize(LLVMRustDIBuilderRef Builder) {
|
extern "C" void LLVMRustDIBuilderFinalize(LLVMDIBuilderRef Builder) {
|
||||||
Builder->finalize();
|
unwrap(Builder)->finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateCompileUnit(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateCompileUnit(
|
||||||
LLVMRustDIBuilderRef Builder, unsigned Lang, LLVMMetadataRef FileRef,
|
LLVMDIBuilderRef Builder, unsigned Lang, LLVMMetadataRef FileRef,
|
||||||
const char *Producer, size_t ProducerLen, bool isOptimized,
|
const char *Producer, size_t ProducerLen, bool isOptimized,
|
||||||
const char *Flags, unsigned RuntimeVer, const char *SplitName,
|
const char *Flags, unsigned RuntimeVer, const char *SplitName,
|
||||||
size_t SplitNameLen, LLVMRustDebugEmissionKind Kind, uint64_t DWOId,
|
size_t SplitNameLen, LLVMRustDebugEmissionKind Kind, uint64_t DWOId,
|
||||||
bool SplitDebugInlining, LLVMRustDebugNameTableKind TableKind) {
|
bool SplitDebugInlining, LLVMRustDebugNameTableKind TableKind) {
|
||||||
auto *File = unwrapDI<DIFile>(FileRef);
|
auto *File = unwrapDI<DIFile>(FileRef);
|
||||||
|
|
||||||
return wrap(Builder->createCompileUnit(
|
return wrap(unwrap(Builder)->createCompileUnit(
|
||||||
Lang, File, StringRef(Producer, ProducerLen), isOptimized, Flags,
|
Lang, File, StringRef(Producer, ProducerLen), isOptimized, Flags,
|
||||||
RuntimeVer, StringRef(SplitName, SplitNameLen), fromRust(Kind), DWOId,
|
RuntimeVer, StringRef(SplitName, SplitNameLen), fromRust(Kind), DWOId,
|
||||||
SplitDebugInlining, false, fromRust(TableKind)));
|
SplitDebugInlining, false, fromRust(TableKind)));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderCreateFile(LLVMRustDIBuilderRef Builder, const char *Filename,
|
LLVMRustDIBuilderCreateFile(LLVMDIBuilderRef Builder, const char *Filename,
|
||||||
size_t FilenameLen, const char *Directory,
|
size_t FilenameLen, const char *Directory,
|
||||||
size_t DirectoryLen, LLVMRustChecksumKind CSKind,
|
size_t DirectoryLen, LLVMRustChecksumKind CSKind,
|
||||||
const char *Checksum, size_t ChecksumLen,
|
const char *Checksum, size_t ChecksumLen,
|
||||||
|
@ -1034,20 +1032,20 @@ LLVMRustDIBuilderCreateFile(LLVMRustDIBuilderRef Builder, const char *Filename,
|
||||||
std::optional<StringRef> oSource{};
|
std::optional<StringRef> oSource{};
|
||||||
if (Source)
|
if (Source)
|
||||||
oSource = StringRef(Source, SourceLen);
|
oSource = StringRef(Source, SourceLen);
|
||||||
return wrap(Builder->createFile(StringRef(Filename, FilenameLen),
|
return wrap(unwrap(Builder)->createFile(StringRef(Filename, FilenameLen),
|
||||||
StringRef(Directory, DirectoryLen), CSInfo,
|
StringRef(Directory, DirectoryLen),
|
||||||
oSource));
|
CSInfo, oSource));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderCreateSubroutineType(LLVMRustDIBuilderRef Builder,
|
LLVMRustDIBuilderCreateSubroutineType(LLVMDIBuilderRef Builder,
|
||||||
LLVMMetadataRef ParameterTypes) {
|
LLVMMetadataRef ParameterTypes) {
|
||||||
return wrap(Builder->createSubroutineType(
|
return wrap(unwrap(Builder)->createSubroutineType(
|
||||||
DITypeRefArray(unwrap<MDTuple>(ParameterTypes))));
|
DITypeRefArray(unwrap<MDTuple>(ParameterTypes))));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
|
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
|
||||||
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
|
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
|
||||||
unsigned ScopeLine, LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags,
|
unsigned ScopeLine, LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags,
|
||||||
|
@ -1056,7 +1054,7 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
|
||||||
DITemplateParameterArray(unwrap<MDTuple>(TParam));
|
DITemplateParameterArray(unwrap<MDTuple>(TParam));
|
||||||
DISubprogram::DISPFlags llvmSPFlags = fromRust(SPFlags);
|
DISubprogram::DISPFlags llvmSPFlags = fromRust(SPFlags);
|
||||||
DINode::DIFlags llvmFlags = fromRust(Flags);
|
DINode::DIFlags llvmFlags = fromRust(Flags);
|
||||||
DISubprogram *Sub = Builder->createFunction(
|
DISubprogram *Sub = unwrap(Builder)->createFunction(
|
||||||
unwrapDI<DIScope>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIScope>(Scope), StringRef(Name, NameLen),
|
||||||
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
|
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
|
||||||
unwrapDI<DISubroutineType>(Ty), ScopeLine, llvmFlags, llvmSPFlags,
|
unwrapDI<DISubroutineType>(Ty), ScopeLine, llvmFlags, llvmSPFlags,
|
||||||
|
@ -1067,7 +1065,7 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
|
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
|
||||||
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
|
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
|
||||||
LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags, LLVMMetadataRef TParam) {
|
LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags, LLVMMetadataRef TParam) {
|
||||||
|
@ -1075,7 +1073,7 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
|
||||||
DITemplateParameterArray(unwrap<MDTuple>(TParam));
|
DITemplateParameterArray(unwrap<MDTuple>(TParam));
|
||||||
DISubprogram::DISPFlags llvmSPFlags = fromRust(SPFlags);
|
DISubprogram::DISPFlags llvmSPFlags = fromRust(SPFlags);
|
||||||
DINode::DIFlags llvmFlags = fromRust(Flags);
|
DINode::DIFlags llvmFlags = fromRust(Flags);
|
||||||
DISubprogram *Sub = Builder->createMethod(
|
DISubprogram *Sub = unwrap(Builder)->createMethod(
|
||||||
unwrapDI<DIScope>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIScope>(Scope), StringRef(Name, NameLen),
|
||||||
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
|
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
|
||||||
unwrapDI<DISubroutineType>(Ty), 0, 0,
|
unwrapDI<DISubroutineType>(Ty), 0, 0,
|
||||||
|
@ -1085,39 +1083,39 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderCreateBasicType(LLVMRustDIBuilderRef Builder, const char *Name,
|
LLVMRustDIBuilderCreateBasicType(LLVMDIBuilderRef Builder, const char *Name,
|
||||||
size_t NameLen, uint64_t SizeInBits,
|
size_t NameLen, uint64_t SizeInBits,
|
||||||
unsigned Encoding) {
|
unsigned Encoding) {
|
||||||
return wrap(
|
return wrap(unwrap(Builder)->createBasicType(StringRef(Name, NameLen),
|
||||||
Builder->createBasicType(StringRef(Name, NameLen), SizeInBits, Encoding));
|
SizeInBits, Encoding));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderCreateTypedef(LLVMRustDIBuilderRef Builder,
|
LLVMRustDIBuilderCreateTypedef(LLVMDIBuilderRef Builder, LLVMMetadataRef Type,
|
||||||
LLVMMetadataRef Type, const char *Name,
|
const char *Name, size_t NameLen,
|
||||||
size_t NameLen, LLVMMetadataRef File,
|
LLVMMetadataRef File, unsigned LineNo,
|
||||||
unsigned LineNo, LLVMMetadataRef Scope) {
|
LLVMMetadataRef Scope) {
|
||||||
return wrap(Builder->createTypedef(
|
return wrap(unwrap(Builder)->createTypedef(
|
||||||
unwrap<DIType>(Type), StringRef(Name, NameLen), unwrap<DIFile>(File),
|
unwrap<DIType>(Type), StringRef(Name, NameLen), unwrap<DIFile>(File),
|
||||||
LineNo, unwrapDIPtr<DIScope>(Scope)));
|
LineNo, unwrapDIPtr<DIScope>(Scope)));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreatePointerType(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreatePointerType(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef PointeeTy,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy, uint64_t SizeInBits,
|
||||||
uint64_t SizeInBits, uint32_t AlignInBits, unsigned AddressSpace,
|
uint32_t AlignInBits, unsigned AddressSpace, const char *Name,
|
||||||
const char *Name, size_t NameLen) {
|
size_t NameLen) {
|
||||||
return wrap(Builder->createPointerType(unwrapDI<DIType>(PointeeTy),
|
return wrap(unwrap(Builder)->createPointerType(
|
||||||
SizeInBits, AlignInBits, AddressSpace,
|
unwrapDI<DIType>(PointeeTy), SizeInBits, AlignInBits, AddressSpace,
|
||||||
StringRef(Name, NameLen)));
|
StringRef(Name, NameLen)));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStructType(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStructType(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
|
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
|
||||||
uint64_t SizeInBits, uint32_t AlignInBits, LLVMRustDIFlags Flags,
|
uint64_t SizeInBits, uint32_t AlignInBits, LLVMRustDIFlags Flags,
|
||||||
LLVMMetadataRef DerivedFrom, LLVMMetadataRef Elements, unsigned RunTimeLang,
|
LLVMMetadataRef DerivedFrom, LLVMMetadataRef Elements, unsigned RunTimeLang,
|
||||||
LLVMMetadataRef VTableHolder, const char *UniqueId, size_t UniqueIdLen) {
|
LLVMMetadataRef VTableHolder, const char *UniqueId, size_t UniqueIdLen) {
|
||||||
return wrap(Builder->createStructType(
|
return wrap(unwrap(Builder)->createStructType(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
||||||
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
|
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
|
||||||
fromRust(Flags), unwrapDI<DIType>(DerivedFrom),
|
fromRust(Flags), unwrapDI<DIType>(DerivedFrom),
|
||||||
|
@ -1126,12 +1124,12 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStructType(
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantPart(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantPart(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
|
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
|
||||||
uint64_t SizeInBits, uint32_t AlignInBits, LLVMRustDIFlags Flags,
|
uint64_t SizeInBits, uint32_t AlignInBits, LLVMRustDIFlags Flags,
|
||||||
LLVMMetadataRef Discriminator, LLVMMetadataRef Elements,
|
LLVMMetadataRef Discriminator, LLVMMetadataRef Elements,
|
||||||
const char *UniqueId, size_t UniqueIdLen) {
|
const char *UniqueId, size_t UniqueIdLen) {
|
||||||
return wrap(Builder->createVariantPart(
|
return wrap(unwrap(Builder)->createVariantPart(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
||||||
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
|
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
|
||||||
fromRust(Flags), unwrapDI<DIDerivedType>(Discriminator),
|
fromRust(Flags), unwrapDI<DIDerivedType>(Discriminator),
|
||||||
|
@ -1140,18 +1138,18 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantPart(
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMemberType(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMemberType(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
|
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
|
||||||
uint32_t AlignInBits, uint64_t OffsetInBits, LLVMRustDIFlags Flags,
|
uint32_t AlignInBits, uint64_t OffsetInBits, LLVMRustDIFlags Flags,
|
||||||
LLVMMetadataRef Ty) {
|
LLVMMetadataRef Ty) {
|
||||||
return wrap(Builder->createMemberType(
|
return wrap(unwrap(Builder)->createMemberType(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
||||||
unwrapDI<DIFile>(File), LineNo, SizeInBits, AlignInBits, OffsetInBits,
|
unwrapDI<DIFile>(File), LineNo, SizeInBits, AlignInBits, OffsetInBits,
|
||||||
fromRust(Flags), unwrapDI<DIType>(Ty)));
|
fromRust(Flags), unwrapDI<DIType>(Ty)));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantMemberType(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantMemberType(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
|
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
|
||||||
uint32_t AlignInBits, uint64_t OffsetInBits, LLVMValueRef Discriminant,
|
uint32_t AlignInBits, uint64_t OffsetInBits, LLVMValueRef Discriminant,
|
||||||
LLVMRustDIFlags Flags, LLVMMetadataRef Ty) {
|
LLVMRustDIFlags Flags, LLVMMetadataRef Ty) {
|
||||||
|
@ -1159,17 +1157,17 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantMemberType(
|
||||||
if (Discriminant) {
|
if (Discriminant) {
|
||||||
D = unwrap<llvm::ConstantInt>(Discriminant);
|
D = unwrap<llvm::ConstantInt>(Discriminant);
|
||||||
}
|
}
|
||||||
return wrap(Builder->createVariantMemberType(
|
return wrap(unwrap(Builder)->createVariantMemberType(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
||||||
unwrapDI<DIFile>(File), LineNo, SizeInBits, AlignInBits, OffsetInBits, D,
|
unwrapDI<DIFile>(File), LineNo, SizeInBits, AlignInBits, OffsetInBits, D,
|
||||||
fromRust(Flags), unwrapDI<DIType>(Ty)));
|
fromRust(Flags), unwrapDI<DIType>(Ty)));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticMemberType(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticMemberType(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
|
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
|
||||||
LLVMRustDIFlags Flags, LLVMValueRef val, uint32_t AlignInBits) {
|
LLVMRustDIFlags Flags, LLVMValueRef val, uint32_t AlignInBits) {
|
||||||
return wrap(Builder->createStaticMemberType(
|
return wrap(unwrap(Builder)->createStaticMemberType(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
||||||
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), fromRust(Flags),
|
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), fromRust(Flags),
|
||||||
unwrap<llvm::ConstantInt>(val), llvm::dwarf::DW_TAG_member, AlignInBits));
|
unwrap<llvm::ConstantInt>(val), llvm::dwarf::DW_TAG_member, AlignInBits));
|
||||||
|
@ -1183,21 +1181,21 @@ LLVMRustDIBuilderCreateQualifiedType(LLVMDIBuilderRef Builder, unsigned Tag,
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderCreateLexicalBlock(LLVMRustDIBuilderRef Builder,
|
LLVMRustDIBuilderCreateLexicalBlock(LLVMDIBuilderRef Builder,
|
||||||
LLVMMetadataRef Scope, LLVMMetadataRef File,
|
LLVMMetadataRef Scope, LLVMMetadataRef File,
|
||||||
unsigned Line, unsigned Col) {
|
unsigned Line, unsigned Col) {
|
||||||
return wrap(Builder->createLexicalBlock(unwrapDI<DIDescriptor>(Scope),
|
return wrap(unwrap(Builder)->createLexicalBlock(
|
||||||
unwrapDI<DIFile>(File), Line, Col));
|
unwrapDI<DIDescriptor>(Scope), unwrapDI<DIFile>(File), Line, Col));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateLexicalBlockFile(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateLexicalBlockFile(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef File) {
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef File) {
|
||||||
return wrap(Builder->createLexicalBlockFile(unwrapDI<DIDescriptor>(Scope),
|
return wrap(unwrap(Builder)->createLexicalBlockFile(
|
||||||
unwrapDI<DIFile>(File)));
|
unwrapDI<DIDescriptor>(Scope), unwrapDI<DIFile>(File)));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Context, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Context, const char *Name,
|
||||||
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
|
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
|
||||||
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
|
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
|
||||||
bool IsLocalToUnit, LLVMValueRef V, LLVMMetadataRef Decl = nullptr,
|
bool IsLocalToUnit, LLVMValueRef V, LLVMMetadataRef Decl = nullptr,
|
||||||
|
@ -1206,16 +1204,16 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
|
||||||
|
|
||||||
llvm::DIExpression *InitExpr = nullptr;
|
llvm::DIExpression *InitExpr = nullptr;
|
||||||
if (llvm::ConstantInt *IntVal = llvm::dyn_cast<llvm::ConstantInt>(InitVal)) {
|
if (llvm::ConstantInt *IntVal = llvm::dyn_cast<llvm::ConstantInt>(InitVal)) {
|
||||||
InitExpr = Builder->createConstantValueExpression(
|
InitExpr = unwrap(Builder)->createConstantValueExpression(
|
||||||
IntVal->getValue().getSExtValue());
|
IntVal->getValue().getSExtValue());
|
||||||
} else if (llvm::ConstantFP *FPVal =
|
} else if (llvm::ConstantFP *FPVal =
|
||||||
llvm::dyn_cast<llvm::ConstantFP>(InitVal)) {
|
llvm::dyn_cast<llvm::ConstantFP>(InitVal)) {
|
||||||
InitExpr = Builder->createConstantValueExpression(
|
InitExpr = unwrap(Builder)->createConstantValueExpression(
|
||||||
FPVal->getValueAPF().bitcastToAPInt().getZExtValue());
|
FPVal->getValueAPF().bitcastToAPInt().getZExtValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
llvm::DIGlobalVariableExpression *VarExpr =
|
llvm::DIGlobalVariableExpression *VarExpr =
|
||||||
Builder->createGlobalVariableExpression(
|
unwrap(Builder)->createGlobalVariableExpression(
|
||||||
unwrapDI<DIDescriptor>(Context), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Context), StringRef(Name, NameLen),
|
||||||
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File),
|
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File),
|
||||||
LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit,
|
LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit,
|
||||||
|
@ -1228,17 +1226,17 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariable(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariable(
|
||||||
LLVMRustDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Scope,
|
LLVMDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Scope,
|
||||||
const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo,
|
const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo,
|
||||||
LLVMMetadataRef Ty, bool AlwaysPreserve, LLVMRustDIFlags Flags,
|
LLVMMetadataRef Ty, bool AlwaysPreserve, LLVMRustDIFlags Flags,
|
||||||
unsigned ArgNo, uint32_t AlignInBits) {
|
unsigned ArgNo, uint32_t AlignInBits) {
|
||||||
if (Tag == 0x100) { // DW_TAG_auto_variable
|
if (Tag == 0x100) { // DW_TAG_auto_variable
|
||||||
return wrap(Builder->createAutoVariable(
|
return wrap(unwrap(Builder)->createAutoVariable(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
||||||
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), AlwaysPreserve,
|
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), AlwaysPreserve,
|
||||||
fromRust(Flags), AlignInBits));
|
fromRust(Flags), AlignInBits));
|
||||||
} else {
|
} else {
|
||||||
return wrap(Builder->createParameterVariable(
|
return wrap(unwrap(Builder)->createParameterVariable(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen), ArgNo,
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen), ArgNo,
|
||||||
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), AlwaysPreserve,
|
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), AlwaysPreserve,
|
||||||
fromRust(Flags)));
|
fromRust(Flags)));
|
||||||
|
@ -1246,53 +1244,56 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariable(
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderCreateArrayType(LLVMRustDIBuilderRef Builder, uint64_t Size,
|
LLVMRustDIBuilderCreateArrayType(LLVMDIBuilderRef Builder, uint64_t Size,
|
||||||
uint32_t AlignInBits, LLVMMetadataRef Ty,
|
uint32_t AlignInBits, LLVMMetadataRef Ty,
|
||||||
LLVMMetadataRef Subscripts) {
|
LLVMMetadataRef Subscripts) {
|
||||||
return wrap(
|
return wrap(unwrap(Builder)->createArrayType(
|
||||||
Builder->createArrayType(Size, AlignInBits, unwrapDI<DIType>(Ty),
|
Size, AlignInBits, unwrapDI<DIType>(Ty),
|
||||||
DINodeArray(unwrapDI<MDTuple>(Subscripts))));
|
DINodeArray(unwrapDI<MDTuple>(Subscripts))));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderGetOrCreateSubrange(LLVMRustDIBuilderRef Builder, int64_t Lo,
|
LLVMRustDIBuilderGetOrCreateSubrange(LLVMDIBuilderRef Builder, int64_t Lo,
|
||||||
int64_t Count) {
|
int64_t Count) {
|
||||||
return wrap(Builder->getOrCreateSubrange(Lo, Count));
|
return wrap(unwrap(Builder)->getOrCreateSubrange(Lo, Count));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderGetOrCreateArray(LLVMRustDIBuilderRef Builder,
|
LLVMRustDIBuilderGetOrCreateArray(LLVMDIBuilderRef Builder,
|
||||||
LLVMMetadataRef *Ptr, unsigned Count) {
|
LLVMMetadataRef *Ptr, unsigned Count) {
|
||||||
Metadata **DataValue = unwrap(Ptr);
|
Metadata **DataValue = unwrap(Ptr);
|
||||||
return wrap(
|
return wrap(unwrap(Builder)
|
||||||
Builder->getOrCreateArray(ArrayRef<Metadata *>(DataValue, Count)).get());
|
->getOrCreateArray(ArrayRef<Metadata *>(DataValue, Count))
|
||||||
|
.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void LLVMRustDIBuilderInsertDeclareAtEnd(
|
extern "C" void
|
||||||
LLVMRustDIBuilderRef Builder, LLVMValueRef V, LLVMMetadataRef VarInfo,
|
LLVMRustDIBuilderInsertDeclareAtEnd(LLVMDIBuilderRef Builder, LLVMValueRef V,
|
||||||
uint64_t *AddrOps, unsigned AddrOpsCount, LLVMMetadataRef DL,
|
LLVMMetadataRef VarInfo, uint64_t *AddrOps,
|
||||||
LLVMBasicBlockRef InsertAtEnd) {
|
unsigned AddrOpsCount, LLVMMetadataRef DL,
|
||||||
Builder->insertDeclare(unwrap(V), unwrap<DILocalVariable>(VarInfo),
|
LLVMBasicBlockRef InsertAtEnd) {
|
||||||
Builder->createExpression(
|
unwrap(Builder)->insertDeclare(
|
||||||
llvm::ArrayRef<uint64_t>(AddrOps, AddrOpsCount)),
|
unwrap(V), unwrap<DILocalVariable>(VarInfo),
|
||||||
DebugLoc(cast<MDNode>(unwrap(DL))),
|
unwrap(Builder)->createExpression(
|
||||||
unwrap(InsertAtEnd));
|
llvm::ArrayRef<uint64_t>(AddrOps, AddrOpsCount)),
|
||||||
|
DebugLoc(cast<MDNode>(unwrap(DL))), unwrap(InsertAtEnd));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerator(
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderRef Builder, const char *Name, size_t NameLen,
|
LLVMRustDIBuilderCreateEnumerator(LLVMDIBuilderRef Builder, const char *Name,
|
||||||
const uint64_t Value[2], unsigned SizeInBits, bool IsUnsigned) {
|
size_t NameLen, const uint64_t Value[2],
|
||||||
return wrap(Builder->createEnumerator(
|
unsigned SizeInBits, bool IsUnsigned) {
|
||||||
|
return wrap(unwrap(Builder)->createEnumerator(
|
||||||
StringRef(Name, NameLen),
|
StringRef(Name, NameLen),
|
||||||
APSInt(APInt(SizeInBits, ArrayRef<uint64_t>(Value, 2)), IsUnsigned)));
|
APSInt(APInt(SizeInBits, ArrayRef<uint64_t>(Value, 2)), IsUnsigned)));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerationType(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerationType(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
|
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
|
||||||
uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef Elements,
|
uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef Elements,
|
||||||
LLVMMetadataRef ClassTy, bool IsScoped) {
|
LLVMMetadataRef ClassTy, bool IsScoped) {
|
||||||
return wrap(Builder->createEnumerationType(
|
return wrap(unwrap(Builder)->createEnumerationType(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
||||||
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
|
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
|
||||||
DINodeArray(unwrapDI<MDTuple>(Elements)), unwrapDI<DIType>(ClassTy),
|
DINodeArray(unwrapDI<MDTuple>(Elements)), unwrapDI<DIType>(ClassTy),
|
||||||
|
@ -1300,12 +1301,12 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerationType(
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateUnionType(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateUnionType(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
|
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
|
||||||
uint64_t SizeInBits, uint32_t AlignInBits, LLVMRustDIFlags Flags,
|
uint64_t SizeInBits, uint32_t AlignInBits, LLVMRustDIFlags Flags,
|
||||||
LLVMMetadataRef Elements, unsigned RunTimeLang, const char *UniqueId,
|
LLVMMetadataRef Elements, unsigned RunTimeLang, const char *UniqueId,
|
||||||
size_t UniqueIdLen) {
|
size_t UniqueIdLen) {
|
||||||
return wrap(Builder->createUnionType(
|
return wrap(unwrap(Builder)->createUnionType(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
||||||
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
|
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
|
||||||
fromRust(Flags), DINodeArray(unwrapDI<MDTuple>(Elements)), RunTimeLang,
|
fromRust(Flags), DINodeArray(unwrapDI<MDTuple>(Elements)), RunTimeLang,
|
||||||
|
@ -1313,28 +1314,28 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateUnionType(
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateTemplateTypeParameter(
|
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateTemplateTypeParameter(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, LLVMMetadataRef Ty) {
|
size_t NameLen, LLVMMetadataRef Ty) {
|
||||||
bool IsDefault = false; // FIXME: should we ever set this true?
|
bool IsDefault = false; // FIXME: should we ever set this true?
|
||||||
return wrap(Builder->createTemplateTypeParameter(
|
return wrap(unwrap(Builder)->createTemplateTypeParameter(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
|
||||||
unwrapDI<DIType>(Ty), IsDefault));
|
unwrapDI<DIType>(Ty), IsDefault));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
LLVMRustDIBuilderCreateNameSpace(LLVMRustDIBuilderRef Builder,
|
LLVMRustDIBuilderCreateNameSpace(LLVMDIBuilderRef Builder,
|
||||||
LLVMMetadataRef Scope, const char *Name,
|
LLVMMetadataRef Scope, const char *Name,
|
||||||
size_t NameLen, bool ExportSymbols) {
|
size_t NameLen, bool ExportSymbols) {
|
||||||
return wrap(Builder->createNameSpace(
|
return wrap(unwrap(Builder)->createNameSpace(
|
||||||
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen), ExportSymbols));
|
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen), ExportSymbols));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void LLVMRustDICompositeTypeReplaceArrays(
|
extern "C" void LLVMRustDICompositeTypeReplaceArrays(
|
||||||
LLVMRustDIBuilderRef Builder, LLVMMetadataRef CompositeTy,
|
LLVMDIBuilderRef Builder, LLVMMetadataRef CompositeTy,
|
||||||
LLVMMetadataRef Elements, LLVMMetadataRef Params) {
|
LLVMMetadataRef Elements, LLVMMetadataRef Params) {
|
||||||
DICompositeType *Tmp = unwrapDI<DICompositeType>(CompositeTy);
|
DICompositeType *Tmp = unwrapDI<DICompositeType>(CompositeTy);
|
||||||
Builder->replaceArrays(Tmp, DINodeArray(unwrap<MDTuple>(Elements)),
|
unwrap(Builder)->replaceArrays(Tmp, DINodeArray(unwrap<MDTuple>(Elements)),
|
||||||
DINodeArray(unwrap<MDTuple>(Params)));
|
DINodeArray(unwrap<MDTuple>(Params)));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" LLVMMetadataRef
|
extern "C" LLVMMetadataRef
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue