From: whitequark Date: Fri, 27 Oct 2017 11:51:40 +0000 (+0000) Subject: [LLVM-C] Publicly expose getters of MetadataType, TokenType X-Git-Tag: llvmorg-6.0.0-rc1~4745 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=131f98f054e480cf2533e9754f625c131dc72c95;p=platform%2Fupstream%2Fllvm.git [LLVM-C] Publicly expose getters of MetadataType, TokenType Patch by Robert Widmann. Expose getters for MetadataType and TokenType publicly in the C API. Discovered a need for these while trying to wrap the intrinsics API. Differential Revision: https://reviews.llvm.org/D38809 llvm-svn: 316762 --- diff --git a/llvm/include/llvm-c/Core.h b/llvm/include/llvm-c/Core.h index 22cef23..8238c09 100644 --- a/llvm/include/llvm-c/Core.h +++ b/llvm/include/llvm-c/Core.h @@ -1137,6 +1137,16 @@ LLVMTypeRef LLVMLabelTypeInContext(LLVMContextRef C); LLVMTypeRef LLVMX86MMXTypeInContext(LLVMContextRef C); /** + * Create a token type in a context. + */ +LLVMTypeRef LLVMTokenTypeInContext(LLVMContextRef C); + +/** + * Create a metadata type in a context. + */ +LLVMTypeRef LLVMMetadataTypeInContext(LLVMContextRef C); + +/** * These are similar to the above functions except they operate on the * global context. */ diff --git a/llvm/lib/IR/Core.cpp b/llvm/lib/IR/Core.cpp index 54c73b0..d3c33ed 100644 --- a/llvm/lib/IR/Core.cpp +++ b/llvm/lib/IR/Core.cpp @@ -452,9 +452,6 @@ LLVMTypeRef LLVMPPCFP128TypeInContext(LLVMContextRef C) { LLVMTypeRef LLVMX86MMXTypeInContext(LLVMContextRef C) { return (LLVMTypeRef) Type::getX86_MMXTy(*unwrap(C)); } -LLVMTypeRef LLVMTokenTypeInContext(LLVMContextRef C) { - return (LLVMTypeRef) Type::getTokenTy(*unwrap(C)); -} LLVMTypeRef LLVMHalfType(void) { return LLVMHalfTypeInContext(LLVMGetGlobalContext()); @@ -620,6 +617,12 @@ LLVMTypeRef LLVMVoidTypeInContext(LLVMContextRef C) { LLVMTypeRef LLVMLabelTypeInContext(LLVMContextRef C) { return wrap(Type::getLabelTy(*unwrap(C))); } +LLVMTypeRef LLVMTokenTypeInContext(LLVMContextRef C) { + return wrap(Type::getTokenTy(*unwrap(C))); +} +LLVMTypeRef LLVMMetadataTypeInContext(LLVMContextRef C) { + return wrap(Type::getMetadataTy(*unwrap(C))); +} LLVMTypeRef LLVMVoidType(void) { return LLVMVoidTypeInContext(LLVMGetGlobalContext()); diff --git a/llvm/tools/llvm-c-test/echo.cpp b/llvm/tools/llvm-c-test/echo.cpp index 966c008..885f9c0 100644 --- a/llvm/tools/llvm-c-test/echo.cpp +++ b/llvm/tools/llvm-c-test/echo.cpp @@ -142,7 +142,7 @@ struct TypeCloner { LLVMGetVectorSize(Src) ); case LLVMMetadataTypeKind: - break; + return LLVMMetadataTypeInContext(Ctx); case LLVMX86_MMXTypeKind: return LLVMX86MMXTypeInContext(Ctx); default: