diff options
Diffstat (limited to 'lib/Target/Target.cpp')
-rw-r--r-- | lib/Target/Target.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/lib/Target/Target.cpp b/lib/Target/Target.cpp index 1b74e8cba4fea..5d1616d037798 100644 --- a/lib/Target/Target.cpp +++ b/lib/Target/Target.cpp @@ -24,6 +24,9 @@ using namespace llvm; +// Avoid including "llvm-c/Core.h" for compile time, fwd-declare this instead. +extern "C" LLVMContextRef LLVMGetGlobalContext(void); + inline TargetLibraryInfoImpl *unwrap(LLVMTargetLibraryInfoRef P) { return reinterpret_cast<TargetLibraryInfoImpl*>(P); } @@ -42,11 +45,20 @@ void LLVMInitializeTarget(LLVMPassRegistryRef R) { initializeTarget(*unwrap(R)); } +LLVMTargetDataRef LLVMGetModuleDataLayout(LLVMModuleRef M) { + return wrap(&unwrap(M)->getDataLayout()); +} + +void LLVMSetModuleDataLayout(LLVMModuleRef M, LLVMTargetDataRef DL) { + unwrap(M)->setDataLayout(*unwrap(DL)); +} + LLVMTargetDataRef LLVMCreateTargetData(const char *StringRep) { return wrap(new DataLayout(StringRep)); } -void LLVMAddTargetData(LLVMTargetDataRef TD, LLVMPassManagerRef PM) { +void LLVMDisposeTargetData(LLVMTargetDataRef TD) { + delete unwrap(TD); } void LLVMAddTargetLibraryInfo(LLVMTargetLibraryInfoRef TLI, @@ -72,11 +84,11 @@ unsigned LLVMPointerSizeForAS(LLVMTargetDataRef TD, unsigned AS) { } LLVMTypeRef LLVMIntPtrType(LLVMTargetDataRef TD) { - return wrap(unwrap(TD)->getIntPtrType(getGlobalContext())); + return wrap(unwrap(TD)->getIntPtrType(*unwrap(LLVMGetGlobalContext()))); } LLVMTypeRef LLVMIntPtrTypeForAS(LLVMTargetDataRef TD, unsigned AS) { - return wrap(unwrap(TD)->getIntPtrType(getGlobalContext(), AS)); + return wrap(unwrap(TD)->getIntPtrType(*unwrap(LLVMGetGlobalContext()), AS)); } LLVMTypeRef LLVMIntPtrTypeInContext(LLVMContextRef C, LLVMTargetDataRef TD) { @@ -127,7 +139,3 @@ unsigned long long LLVMOffsetOfElement(LLVMTargetDataRef TD, LLVMTypeRef StructT StructType *STy = unwrap<StructType>(StructTy); return unwrap(TD)->getStructLayout(STy)->getElementOffset(Element); } - -void LLVMDisposeTargetData(LLVMTargetDataRef TD) { - delete unwrap(TD); -} |