diff options
author | Pirama Arumuga Nainar <pirama@google.com> | 2015-05-06 11:46:36 -0700 |
---|---|---|
committer | Pirama Arumuga Nainar <pirama@google.com> | 2015-05-18 10:52:30 -0700 |
commit | 2c3e0051c31c3f5b2328b447eadf1cf9c4427442 (patch) | |
tree | c0104029af14e9f47c2ef58ca60e6137691f3c9b /bindings | |
parent | e1bc145815f4334641be19f1c45ecf85d25b6e5a (diff) | |
download | external_llvm-2c3e0051c31c3f5b2328b447eadf1cf9c4427442.zip external_llvm-2c3e0051c31c3f5b2328b447eadf1cf9c4427442.tar.gz external_llvm-2c3e0051c31c3f5b2328b447eadf1cf9c4427442.tar.bz2 |
Update aosp/master LLVM for rebase to r235153
Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7
(cherry picked from commit 0c7f116bb6950ef819323d855415b2f2b0aad987)
Diffstat (limited to 'bindings')
-rw-r--r-- | bindings/go/llvm/DIBuilderBindings.cpp | 77 |
1 files changed, 41 insertions, 36 deletions
diff --git a/bindings/go/llvm/DIBuilderBindings.cpp b/bindings/go/llvm/DIBuilderBindings.cpp index f39198d..cfae605 100644 --- a/bindings/go/llvm/DIBuilderBindings.cpp +++ b/bindings/go/llvm/DIBuilderBindings.cpp @@ -21,12 +21,6 @@ using namespace llvm; DEFINE_SIMPLE_CONVERSION_FUNCTIONS(DIBuilder, LLVMDIBuilderRef) -namespace { -template <typename T> T unwrapDI(LLVMMetadataRef v) { - return v ? T(unwrap<MDNode>(v)) : T(); -} -} - LLVMDIBuilderRef LLVMNewDIBuilder(LLVMModuleRef mref) { Module *m = unwrap(mref); return wrap(new DIBuilder(*m)); @@ -64,8 +58,8 @@ LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(LLVMDIBuilderRef Dref, unsigned Line, unsigned Column) { DIBuilder *D = unwrap(Dref); - DILexicalBlock LB = D->createLexicalBlock( - unwrapDI<DIDescriptor>(Scope), unwrapDI<DIFile>(File), Line, Column); + auto *LB = D->createLexicalBlock(unwrap<MDLocalScope>(Scope), + unwrap<MDFile>(File), Line, Column); return wrap(LB); } @@ -75,7 +69,7 @@ LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile(LLVMDIBuilderRef Dref, unsigned Discriminator) { DIBuilder *D = unwrap(Dref); DILexicalBlockFile LBF = D->createLexicalBlockFile( - unwrapDI<DIDescriptor>(Scope), unwrapDI<DIFile>(File), Discriminator); + unwrap<MDLocalScope>(Scope), unwrap<MDFile>(File), Discriminator); return wrap(LBF); } @@ -86,9 +80,10 @@ LLVMMetadataRef LLVMDIBuilderCreateFunction( unsigned ScopeLine, unsigned Flags, int IsOptimized, LLVMValueRef Func) { DIBuilder *D = unwrap(Dref); DISubprogram SP = D->createFunction( - unwrapDI<DIDescriptor>(Scope), Name, LinkageName, unwrapDI<DIFile>(File), - Line, unwrapDI<DICompositeType>(CompositeType), IsLocalToUnit, - IsDefinition, ScopeLine, Flags, IsOptimized, unwrap<Function>(Func)); + unwrap<MDScope>(Scope), Name, LinkageName, + File ? unwrap<MDFile>(File) : nullptr, Line, + unwrap<MDSubroutineType>(CompositeType), IsLocalToUnit, IsDefinition, + ScopeLine, Flags, IsOptimized, unwrap<Function>(Func)); return wrap(SP); } @@ -98,8 +93,8 @@ LLVMMetadataRef LLVMDIBuilderCreateLocalVariable( int AlwaysPreserve, unsigned Flags, unsigned ArgNo) { DIBuilder *D = unwrap(Dref); DIVariable V = D->createLocalVariable( - Tag, unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line, - unwrapDI<DIType>(Ty), AlwaysPreserve, Flags, ArgNo); + Tag, unwrap<MDScope>(Scope), Name, unwrap<MDFile>(File), Line, + unwrap<MDType>(Ty), AlwaysPreserve, Flags, ArgNo); return wrap(V); } @@ -119,7 +114,7 @@ LLVMMetadataRef LLVMDIBuilderCreatePointerType(LLVMDIBuilderRef Dref, uint64_t AlignInBits, const char *Name) { DIBuilder *D = unwrap(Dref); - DIDerivedType T = D->createPointerType(unwrapDI<DIType>(PointeeType), + DIDerivedType T = D->createPointerType(unwrap<MDType>(PointeeType), SizeInBits, AlignInBits, Name); return wrap(T); } @@ -128,8 +123,9 @@ LLVMMetadataRef LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref, LLVMMetadataRef File, LLVMMetadataRef ParameterTypes) { DIBuilder *D = unwrap(Dref); - DICompositeType CT = D->createSubroutineType( - unwrapDI<DIFile>(File), unwrapDI<DITypeArray>(ParameterTypes)); + DICompositeType CT = + D->createSubroutineType(File ? unwrap<MDFile>(File) : nullptr, + DITypeArray(unwrap<MDTuple>(ParameterTypes))); return wrap(CT); } @@ -140,9 +136,10 @@ LLVMMetadataRef LLVMDIBuilderCreateStructType( LLVMMetadataRef ElementTypes) { DIBuilder *D = unwrap(Dref); DICompositeType CT = D->createStructType( - unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line, - SizeInBits, AlignInBits, Flags, unwrapDI<DIType>(DerivedFrom), - unwrapDI<DIArray>(ElementTypes)); + unwrap<MDScope>(Scope), Name, File ? unwrap<MDFile>(File) : nullptr, Line, + SizeInBits, AlignInBits, Flags, + DerivedFrom ? unwrap<MDType>(DerivedFrom) : nullptr, + ElementTypes ? DIArray(unwrap<MDTuple>(ElementTypes)) : nullptr); return wrap(CT); } @@ -153,8 +150,8 @@ LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType( unsigned Flags) { DIBuilder *D = unwrap(Dref); DICompositeType CT = D->createReplaceableCompositeType( - Tag, Name, unwrapDI<DIDescriptor>(Scope), unwrapDI<DIFile>(File), Line, - RuntimeLang, SizeInBits, AlignInBits, Flags); + Tag, Name, unwrap<MDScope>(Scope), File ? unwrap<MDFile>(File) : nullptr, + Line, RuntimeLang, SizeInBits, AlignInBits, Flags); return wrap(CT); } @@ -166,8 +163,8 @@ LLVMDIBuilderCreateMemberType(LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, unsigned Flags, LLVMMetadataRef Ty) { DIBuilder *D = unwrap(Dref); DIDerivedType DT = D->createMemberType( - unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), Line, - SizeInBits, AlignInBits, OffsetInBits, Flags, unwrapDI<DIType>(Ty)); + unwrap<MDScope>(Scope), Name, File ? unwrap<MDFile>(File) : nullptr, Line, + SizeInBits, AlignInBits, OffsetInBits, Flags, unwrap<MDType>(Ty)); return wrap(DT); } @@ -178,8 +175,8 @@ LLVMMetadataRef LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Dref, LLVMMetadataRef Subscripts) { DIBuilder *D = unwrap(Dref); DICompositeType CT = - D->createArrayType(SizeInBits, AlignInBits, unwrapDI<DIType>(ElementType), - unwrapDI<DIArray>(Subscripts)); + D->createArrayType(SizeInBits, AlignInBits, unwrap<MDType>(ElementType), + DIArray(unwrap<MDTuple>(Subscripts))); return wrap(CT); } @@ -188,9 +185,9 @@ LLVMMetadataRef LLVMDIBuilderCreateTypedef(LLVMDIBuilderRef Dref, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Context) { DIBuilder *D = unwrap(Dref); - DIDerivedType DT = - D->createTypedef(unwrapDI<DIType>(Ty), Name, unwrapDI<DIFile>(File), Line, - unwrapDI<DIDescriptor>(Context)); + DIDerivedType DT = D->createTypedef( + unwrap<MDType>(Ty), Name, File ? unwrap<MDFile>(File) : nullptr, Line, + Context ? unwrap<MDScope>(Context) : nullptr); return wrap(DT); } @@ -208,7 +205,7 @@ LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(LLVMDIBuilderRef Dref, Metadata **DataValue = unwrap(Data); ArrayRef<Metadata *> Elements(DataValue, Length); DIArray A = D->getOrCreateArray(Elements); - return wrap(A); + return wrap(A.get()); } LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(LLVMDIBuilderRef Dref, @@ -218,7 +215,7 @@ LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(LLVMDIBuilderRef Dref, Metadata **DataValue = unwrap(Data); ArrayRef<Metadata *> Elements(DataValue, Length); DITypeArray A = D->getOrCreateTypeArray(Elements); - return wrap(A); + return wrap(A.get()); } LLVMMetadataRef LLVMDIBuilderCreateExpression(LLVMDIBuilderRef Dref, @@ -233,10 +230,14 @@ LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(LLVMDIBuilderRef Dref, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMBasicBlockRef Block) { + // Fail immediately here until the llgo folks update their bindings. The + // called function is going to assert out anyway. + llvm_unreachable("DIBuilder API change requires a DebugLoc"); + DIBuilder *D = unwrap(Dref); - Instruction *Instr = - D->insertDeclare(unwrap(Storage), unwrapDI<DIVariable>(VarInfo), - unwrapDI<DIExpression>(Expr), unwrap(Block)); + Instruction *Instr = D->insertDeclare( + unwrap(Storage), unwrap<MDLocalVariable>(VarInfo), + unwrap<MDExpression>(Expr), /* DebugLoc */ nullptr, unwrap(Block)); return wrap(Instr); } @@ -245,9 +246,13 @@ LLVMValueRef LLVMDIBuilderInsertValueAtEnd(LLVMDIBuilderRef Dref, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMBasicBlockRef Block) { + // Fail immediately here until the llgo folks update their bindings. The + // called function is going to assert out anyway. + llvm_unreachable("DIBuilder API change requires a DebugLoc"); + DIBuilder *D = unwrap(Dref); Instruction *Instr = D->insertDbgValueIntrinsic( - unwrap(Val), Offset, unwrapDI<DIVariable>(VarInfo), - unwrapDI<DIExpression>(Expr), unwrap(Block)); + unwrap(Val), Offset, unwrap<MDLocalVariable>(VarInfo), + unwrap<MDExpression>(Expr), /* DebugLoc */ nullptr, unwrap(Block)); return wrap(Instr); } |