diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-07-25 21:20:54 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-07-25 21:20:54 +0000 |
commit | 5160d381669f1367290b802c90074cdf896d5c49 (patch) | |
tree | 19049000bd0091d2828d342eb74a67db8c095f19 /include/llvm-c | |
parent | 4b64e8a9e13ba782da2034e1dee52f077bdb759c (diff) | |
download | external_llvm-5160d381669f1367290b802c90074cdf896d5c49.zip external_llvm-5160d381669f1367290b802c90074cdf896d5c49.tar.gz external_llvm-5160d381669f1367290b802c90074cdf896d5c49.tar.bz2 |
Add LLVMAddTargetLibraryInfo to the C API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135975 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm-c')
-rw-r--r-- | include/llvm-c/Target.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/llvm-c/Target.h b/include/llvm-c/Target.h index 551cb94..7afaef1 100644 --- a/include/llvm-c/Target.h +++ b/include/llvm-c/Target.h @@ -29,6 +29,7 @@ extern "C" { enum LLVMByteOrdering { LLVMBigEndian, LLVMLittleEndian }; typedef struct LLVMOpaqueTargetData *LLVMTargetDataRef; +typedef struct LLVMOpaqueTargetLibraryInfotData *LLVMTargetLibraryInfoRef; typedef struct LLVMStructLayout *LLVMStructLayoutRef; /* Declare all of the target-initialization functions that are available. */ @@ -90,6 +91,11 @@ LLVMTargetDataRef LLVMCreateTargetData(const char *StringRep); See the method llvm::PassManagerBase::add. */ void LLVMAddTargetData(LLVMTargetDataRef, LLVMPassManagerRef); +/** Adds target library information to a pass manager. This does not take + ownership of the target library info. + See the method llvm::PassManagerBase::add. */ +void LLVMAddTargetLibraryInfo(LLVMTargetLibraryInfoRef, LLVMPassManagerRef); + /** Converts target data to a target layout string. The string must be disposed with LLVMDisposeMessage. See the constructor llvm::TargetData::TargetData. */ @@ -157,6 +163,7 @@ void LLVMDisposeTargetData(LLVMTargetDataRef); namespace llvm { class TargetData; + class TargetLibraryInfo; inline TargetData *unwrap(LLVMTargetDataRef P) { return reinterpret_cast<TargetData*>(P); @@ -165,6 +172,15 @@ namespace llvm { inline LLVMTargetDataRef wrap(const TargetData *P) { return reinterpret_cast<LLVMTargetDataRef>(const_cast<TargetData*>(P)); } + + inline TargetLibraryInfo *unwrap(LLVMTargetLibraryInfoRef P) { + return reinterpret_cast<TargetLibraryInfo*>(P); + } + + inline LLVMTargetLibraryInfoRef wrap(const TargetLibraryInfo *P) { + TargetLibraryInfo *X = const_cast<TargetLibraryInfo*>(P); + return reinterpret_cast<LLVMTargetLibraryInfoRef>(X); + } } #endif /* defined(__cplusplus) */ |