diff --git a/src/rustllvm/ArchiveWrapper.cpp b/src/rustllvm/ArchiveWrapper.cpp index d3f2907bfc3..1de0f59109e 100644 --- a/src/rustllvm/ArchiveWrapper.cpp +++ b/src/rustllvm/ArchiveWrapper.cpp @@ -11,10 +11,7 @@ #include "rustllvm.h" #include "llvm/Object/Archive.h" - -#if LLVM_VERSION_MINOR >= 7 #include "llvm/Object/ArchiveWriter.h" -#endif using namespace llvm; using namespace llvm::object; @@ -34,13 +31,8 @@ struct LLVMRustArchiveMember { ~LLVMRustArchiveMember() {} }; -#if LLVM_VERSION_MINOR >= 6 typedef OwningBinary RustArchive; #define GET_ARCHIVE(a) ((a)->getBinary()) -#else -typedef Archive RustArchive; -#define GET_ARCHIVE(a) (a) -#endif extern "C" void* LLVMRustOpenArchive(char *path) { @@ -52,7 +44,6 @@ LLVMRustOpenArchive(char *path) { return nullptr; } -#if LLVM_VERSION_MINOR >= 6 ErrorOr> archive_or = Archive::create(buf_or.get()->getMemBufferRef()); @@ -63,14 +54,6 @@ LLVMRustOpenArchive(char *path) { OwningBinary *ret = new OwningBinary( std::move(archive_or.get()), std::move(buf_or.get())); -#else - std::error_code err; - Archive *ret = new Archive(std::move(buf_or.get()), err); - if (err) { - LLVMRustSetLastError(err.message().c_str()); - return nullptr; - } -#endif return ret; } @@ -137,16 +120,12 @@ LLVMRustArchiveChildName(const Archive::Child *child, size_t *size) { extern "C" const char* LLVMRustArchiveChildData(Archive::Child *child, size_t *size) { StringRef buf; -#if LLVM_VERSION_MINOR >= 7 ErrorOr buf_or_err = child->getBuffer(); if (buf_or_err.getError()) { LLVMRustSetLastError(buf_or_err.getError().message().c_str()); return NULL; } buf = buf_or_err.get(); -#else - buf = child->getBuffer(); -#endif *size = buf.size(); return buf.data(); } @@ -172,7 +151,6 @@ LLVMRustWriteArchive(char *Dst, const LLVMRustArchiveMember **NewMembers, bool WriteSymbtab, Archive::Kind Kind) { -#if LLVM_VERSION_MINOR >= 7 std::vector Members; for (size_t i = 0; i < NumMembers; i++) { @@ -196,8 +174,5 @@ LLVMRustWriteArchive(char *Dst, if (!pair.second) return 0; LLVMRustSetLastError(pair.second.message().c_str()); -#else - LLVMRustSetLastError("writing archives not supported with this LLVM version"); -#endif return -1; } diff --git a/src/rustllvm/ExecutionEngineWrapper.cpp b/src/rustllvm/ExecutionEngineWrapper.cpp index 8b01cac820e..b26ab446019 100644 --- a/src/rustllvm/ExecutionEngineWrapper.cpp +++ b/src/rustllvm/ExecutionEngineWrapper.cpp @@ -90,13 +90,8 @@ extern "C" LLVMExecutionEngineRef LLVMBuildExecutionEngine(LLVMModuleRef mod) RustJITMemoryManager *mm = new RustJITMemoryManager; ExecutionEngine *ee = - #if LLVM_VERSION_MINOR >= 6 EngineBuilder(std::unique_ptr(unwrap(mod))) .setMCJITMemoryManager(std::unique_ptr(mm)) - #else - EngineBuilder(unwrap(mod)) - .setMCJITMemoryManager(mm) - #endif .setEngineKind(EngineKind::JIT) .setErrorStr(&error_str) .setTargetOptions(options) diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index b3d4e35d7b0..3564f338a02 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -15,12 +15,8 @@ #include "llvm/Support/CBindingWrapping.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/Host.h" -#if LLVM_VERSION_MINOR >= 7 #include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/Analysis/TargetTransformInfo.h" -#else -#include "llvm/Target/TargetLibraryInfo.h" -#endif #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetSubtargetInfo.h" #include "llvm/Transforms/IPO/PassManagerBuilder.h" @@ -49,7 +45,7 @@ LLVMInitializePasses() { initializeVectorization(Registry); initializeIPO(Registry); initializeAnalysis(Registry); -#if LLVM_VERSION_MINOR <= 7 +#if LLVM_VERSION_MINOR == 7 initializeIPA(Registry); #endif initializeTransformUtils(Registry); @@ -223,17 +219,8 @@ LLVMRustAddAnalysisPasses(LLVMTargetMachineRef TM, LLVMPassManagerRef PMR, LLVMModuleRef M) { PassManagerBase *PM = unwrap(PMR); -#if LLVM_VERSION_MINOR >= 7 PM->add(createTargetTransformInfoWrapperPass( unwrap(TM)->getTargetIRAnalysis())); -#else -#if LLVM_VERSION_MINOR == 6 - PM->add(new DataLayoutPass()); -#else - PM->add(new DataLayoutPass(unwrap(M))); -#endif - unwrap(TM)->addAnalysisPasses(*PM); -#endif } extern "C" void @@ -242,10 +229,8 @@ LLVMRustConfigurePassManagerBuilder(LLVMPassManagerBuilderRef PMB, bool MergeFunctions, bool SLPVectorize, bool LoopVectorize) { -#if LLVM_VERSION_MINOR >= 6 // Ignore mergefunc for now as enabling it causes crashes. //unwrap(PMB)->MergeFunctions = MergeFunctions; -#endif unwrap(PMB)->SLPVectorize = SLPVectorize; unwrap(PMB)->OptLevel = OptLevel; unwrap(PMB)->LoopVectorize = LoopVectorize; @@ -258,11 +243,7 @@ LLVMRustAddBuilderLibraryInfo(LLVMPassManagerBuilderRef PMB, LLVMModuleRef M, bool DisableSimplifyLibCalls) { Triple TargetTriple(unwrap(M)->getTargetTriple()); -#if LLVM_VERSION_MINOR >= 7 TargetLibraryInfoImpl *TLI = new TargetLibraryInfoImpl(TargetTriple); -#else - TargetLibraryInfo *TLI = new TargetLibraryInfo(TargetTriple); -#endif if (DisableSimplifyLibCalls) TLI->disableAllFunctions(); unwrap(PMB)->LibraryInfo = TLI; @@ -275,17 +256,10 @@ LLVMRustAddLibraryInfo(LLVMPassManagerRef PMB, LLVMModuleRef M, bool DisableSimplifyLibCalls) { Triple TargetTriple(unwrap(M)->getTargetTriple()); -#if LLVM_VERSION_MINOR >= 7 TargetLibraryInfoImpl TLII(TargetTriple); if (DisableSimplifyLibCalls) TLII.disableAllFunctions(); unwrap(PMB)->add(new TargetLibraryInfoWrapperPass(TLII)); -#else - TargetLibraryInfo *TLI = new TargetLibraryInfo(TargetTriple); - if (DisableSimplifyLibCalls) - TLI->disableAllFunctions(); - unwrap(PMB)->add(TLI); -#endif } // Unfortunately, the LLVM C API doesn't provide an easy way of iterating over @@ -323,25 +297,16 @@ LLVMRustWriteOutputFile(LLVMTargetMachineRef Target, PassManager *PM = unwrap(PMR); std::string ErrorInfo; -#if LLVM_VERSION_MINOR >= 6 std::error_code EC; raw_fd_ostream OS(path, EC, sys::fs::F_None); if (EC) ErrorInfo = EC.message(); -#else - raw_fd_ostream OS(path, ErrorInfo, sys::fs::F_None); -#endif if (ErrorInfo != "") { LLVMRustSetLastError(ErrorInfo.c_str()); return false; } -#if LLVM_VERSION_MINOR >= 7 unwrap(Target)->addPassesToEmitFile(*PM, OS, FileType, false); -#else - formatted_raw_ostream FOS(OS); - unwrap(Target)->addPassesToEmitFile(*PM, FOS, FileType, false); -#endif PM->run(*unwrap(M)); // Apparently `addPassesToEmitFile` adds a pointer to our on-the-stack output @@ -358,14 +323,10 @@ LLVMRustPrintModule(LLVMPassManagerRef PMR, PassManager *PM = unwrap(PMR); std::string ErrorInfo; -#if LLVM_VERSION_MINOR >= 6 std::error_code EC; raw_fd_ostream OS(path, EC, sys::fs::F_None); if (EC) ErrorInfo = EC.message(); -#else - raw_fd_ostream OS(path, ErrorInfo, sys::fs::F_None); -#endif formatted_raw_ostream FOS(OS); @@ -428,22 +389,10 @@ extern "C" void LLVMRustSetDataLayoutFromTargetMachine(LLVMModuleRef Module, LLVMTargetMachineRef TMR) { TargetMachine *Target = unwrap(TMR); -#if LLVM_VERSION_MINOR >= 7 unwrap(Module)->setDataLayout(Target->createDataLayout()); -#elif LLVM_VERSION_MINOR >= 6 - if (const DataLayout *DL = Target->getSubtargetImpl()->getDataLayout()) - unwrap(Module)->setDataLayout(DL); -#else - if (const DataLayout *DL = Target->getDataLayout()) - unwrap(Module)->setDataLayout(DL); -#endif } extern "C" LLVMTargetDataRef LLVMRustGetModuleDataLayout(LLVMModuleRef M) { -#if LLVM_VERSION_MINOR >= 7 return wrap(&unwrap(M)->getDataLayout()); -#else - return wrap(unwrap(M)->getDataLayout()); -#endif } diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 697b2d3f539..fadd95c9a72 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -243,7 +243,6 @@ extern "C" LLVMValueRef LLVMInlineAsm(LLVMTypeRef Ty, typedef DIBuilder* DIBuilderRef; -#if LLVM_VERSION_MINOR >= 6 typedef struct LLVMOpaqueMetadata *LLVMMetadataRef; namespace llvm { @@ -253,29 +252,15 @@ inline Metadata **unwrap(LLVMMetadataRef *Vals) { return reinterpret_cast(Vals); } } -#else -typedef LLVMValueRef LLVMMetadataRef; -#endif template DIT* unwrapDIptr(LLVMMetadataRef ref) { return (DIT*) (ref ? unwrap(ref) : NULL); } -#if LLVM_VERSION_MINOR <= 6 -template -DIT unwrapDI(LLVMMetadataRef ref) { - return DIT(ref ? unwrap(ref) : NULL); -} -#else #define DIDescriptor DIScope #define DIArray DINodeArray #define unwrapDI unwrapDIptr -#endif - -#if LLVM_VERSION_MINOR <= 5 -#define DISubroutineType DICompositeType -#endif extern "C" uint32_t LLVMRustDebugMetadataVersion() { return DEBUG_METADATA_VERSION; @@ -339,16 +324,10 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateSubroutineType( LLVMMetadataRef File, LLVMMetadataRef ParameterTypes) { return wrap(Builder->createSubroutineType( -#if LLVM_VERSION_MINOR <= 7 +#if LLVM_VERSION_MINOR == 7 unwrapDI(File), #endif -#if LLVM_VERSION_MINOR >= 7 DITypeRefArray(unwrap(ParameterTypes)))); -#elif LLVM_VERSION_MINOR >= 6 - unwrapDI(ParameterTypes))); -#else - unwrapDI(ParameterTypes))); -#endif } extern "C" LLVMMetadataRef LLVMDIBuilderCreateFunction( @@ -435,11 +414,7 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateStructType( AlignInBits, Flags, unwrapDI(DerivedFrom), -#if LLVM_VERSION_MINOR >= 7 DINodeArray(unwrapDI(Elements)), -#else - unwrapDI(Elements), -#endif RunTimeLang, unwrapDI(VTableHolder), UniqueId @@ -473,9 +448,6 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock( return wrap(Builder->createLexicalBlock( unwrapDI(Scope), unwrapDI(File), Line, Col -#if LLVM_VERSION_MINOR == 5 - , 0 -#endif )); } @@ -490,11 +462,7 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateStaticVariable( bool isLocalToUnit, LLVMValueRef Val, LLVMMetadataRef Decl = NULL) { -#if LLVM_VERSION_MINOR >= 6 return wrap(Builder->createGlobalVariable(unwrapDI(Context), -#else - return wrap(Builder->createStaticVariable(unwrapDI(Context), -#endif Name, LinkageName, unwrapDI(File), @@ -518,25 +486,6 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateVariable( int64_t* AddrOps, unsigned AddrOpsCount, unsigned ArgNo) { -#if LLVM_VERSION_MINOR == 5 - if (AddrOpsCount > 0) { - SmallVector addr_ops; - llvm::Type *Int64Ty = Type::getInt64Ty(unwrap(Scope)->getContext()); - for (unsigned i = 0; i < AddrOpsCount; ++i) - addr_ops.push_back(ConstantInt::get(Int64Ty, AddrOps[i])); - - return wrap(Builder->createComplexVariable( - Tag, - unwrapDI(Scope), - Name, - unwrapDI(File), - LineNo, - unwrapDI(Ty), - addr_ops, - ArgNo - )); - } -#endif #if LLVM_VERSION_MINOR >= 8 if (Tag == 0x100) { // DW_TAG_auto_variable return wrap(Builder->createAutoVariable( @@ -568,11 +517,7 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateArrayType( LLVMMetadataRef Subscripts) { return wrap(Builder->createArrayType(Size, AlignInBits, unwrapDI(Ty), -#if LLVM_VERSION_MINOR >= 7 DINodeArray(unwrapDI(Subscripts)) -#else - unwrapDI(Subscripts) -#endif )); } @@ -584,11 +529,7 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateVectorType( LLVMMetadataRef Subscripts) { return wrap(Builder->createVectorType(Size, AlignInBits, unwrapDI(Ty), -#if LLVM_VERSION_MINOR >= 7 DINodeArray(unwrapDI(Subscripts)) -#else - unwrapDI(Subscripts) -#endif )); } @@ -603,18 +544,9 @@ extern "C" LLVMMetadataRef LLVMDIBuilderGetOrCreateArray( DIBuilderRef Builder, LLVMMetadataRef* Ptr, unsigned Count) { -#if LLVM_VERSION_MINOR >= 7 Metadata **DataValue = unwrap(Ptr); return wrap(Builder->getOrCreateArray( ArrayRef(DataValue, Count)).get()); -#else - return wrap(Builder->getOrCreateArray( -#if LLVM_VERSION_MINOR >= 6 - ArrayRef(unwrap(Ptr), Count))); -#else - ArrayRef(reinterpret_cast(Ptr), Count))); -#endif -#endif } extern "C" LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd( @@ -627,18 +559,10 @@ extern "C" LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd( LLVMBasicBlockRef InsertAtEnd) { return wrap(Builder->insertDeclare( unwrap(Val), -#if LLVM_VERSION_MINOR >= 7 unwrap(VarInfo), -#else - unwrapDI(VarInfo), -#endif -#if LLVM_VERSION_MINOR >= 6 Builder->createExpression( llvm::ArrayRef(AddrOps, AddrOpsCount)), -#endif -#if LLVM_VERSION_MINOR >= 7 DebugLoc(cast(unwrap(DL)->getMetadata())), -#endif unwrap(InsertAtEnd))); } @@ -650,22 +574,12 @@ extern "C" LLVMValueRef LLVMDIBuilderInsertDeclareBefore( unsigned AddrOpsCount, LLVMValueRef DL, LLVMValueRef InsertBefore) { -#if LLVM_VERSION_MINOR >= 6 -#endif return wrap(Builder->insertDeclare( unwrap(Val), -#if LLVM_VERSION_MINOR >= 7 unwrap(VarInfo), -#else - unwrapDI(VarInfo), -#endif -#if LLVM_VERSION_MINOR >= 6 Builder->createExpression( llvm::ArrayRef(AddrOps, AddrOpsCount)), -#endif -#if LLVM_VERSION_MINOR >= 7 DebugLoc(cast(unwrap(DL)->getMetadata())), -#endif unwrap(InsertBefore))); } @@ -695,11 +609,7 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateEnumerationType( LineNumber, SizeInBits, AlignInBits, -#if LLVM_VERSION_MINOR >= 7 DINodeArray(unwrapDI(Elements)), -#else - unwrapDI(Elements), -#endif unwrapDI(ClassType))); } @@ -724,11 +634,7 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateUnionType( SizeInBits, AlignInBits, Flags, -#if LLVM_VERSION_MINOR >= 7 DINodeArray(unwrapDI(Elements)), -#else - unwrapDI(Elements), -#endif RunTimeLang, UniqueId )); @@ -747,12 +653,6 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateTemplateTypeParameter( unwrapDI(Scope), Name, unwrapDI(Ty) -#if LLVM_VERSION_MINOR <= 6 - , - unwrapDI(File), - LineNo, - ColumnNo -#endif )); } @@ -785,15 +685,8 @@ extern "C" void LLVMDICompositeTypeSetTypeArray( LLVMMetadataRef CompositeType, LLVMMetadataRef TypeArray) { -#if LLVM_VERSION_MINOR >= 7 DICompositeType *tmp = unwrapDI(CompositeType); Builder->replaceArrays(tmp, DINodeArray(unwrap(TypeArray))); -#elif LLVM_VERSION_MINOR >= 6 - DICompositeType tmp = unwrapDI(CompositeType); - Builder->replaceArrays(tmp, unwrapDI(TypeArray)); -#else - unwrapDI(CompositeType).setTypeArray(unwrapDI(TypeArray)); -#endif } extern "C" LLVMValueRef LLVMDIBuilderCreateDebugLocation( @@ -810,15 +703,7 @@ extern "C" LLVMValueRef LLVMDIBuilderCreateDebugLocation( unwrapDIptr(Scope), unwrapDIptr(InlinedAt)); -#if LLVM_VERSION_MINOR >= 6 - return wrap(MetadataAsValue::get(context, debug_loc.getAsMDNode( -#if LLVM_VERSION_MINOR <= 6 - context -#endif - ))); -#else - return wrap(debug_loc.getAsMDNode(context)); -#endif + return wrap(MetadataAsValue::get(context, debug_loc.getAsMDNode())); } extern "C" void LLVMWriteTypeToString(LLVMTypeRef Type, RustStringRef str) { @@ -838,40 +723,22 @@ extern "C" void LLVMWriteValueToString(LLVMValueRef Value, RustStringRef str) { extern "C" bool LLVMRustLinkInExternalBitcode(LLVMModuleRef dst, char *bc, size_t len) { Module *Dst = unwrap(dst); -#if LLVM_VERSION_MINOR >= 6 std::unique_ptr buf = MemoryBuffer::getMemBufferCopy(StringRef(bc, len)); -#if LLVM_VERSION_MINOR >= 7 ErrorOr> Src = llvm::getLazyBitcodeModule(std::move(buf), Dst->getContext()); -#else - ErrorOr Src = llvm::getLazyBitcodeModule(std::move(buf), Dst->getContext()); -#endif -#else - MemoryBuffer* buf = MemoryBuffer::getMemBufferCopy(StringRef(bc, len)); - ErrorOr Src = llvm::getLazyBitcodeModule(buf, Dst->getContext()); -#endif if (!Src) { LLVMRustSetLastError(Src.getError().message().c_str()); -#if LLVM_VERSION_MINOR == 5 - delete buf; -#endif return false; } std::string Err; -#if LLVM_VERSION_MINOR >= 6 raw_string_ostream Stream(Err); DiagnosticPrinterRawOStream DP(Stream); #if LLVM_VERSION_MINOR >= 8 if (Linker::linkModules(*Dst, std::move(Src.get()))) { -#elif LLVM_VERSION_MINOR >= 7 +#else if (Linker::LinkModules(Dst, Src->get(), [&](const DiagnosticInfo &DI) { DI.print(DP); })) { -#else - if (Linker::LinkModules(Dst, *Src, [&](const DiagnosticInfo &DI) { DI.print(DP); })) { -#endif -#else - if (Linker::LinkModules(Dst, *Src, Linker::DestroySource, &Err)) { #endif LLVMRustSetLastError(Err.c_str()); return false; @@ -975,11 +842,7 @@ extern "C" void LLVMWriteDebugLocToString( RustStringRef str) { raw_rust_string_ostream os(str); -#if LLVM_VERSION_MINOR >= 7 unwrap(dl)->print(os); -#else - unwrap(dl)->print(*unwrap(C), os); -#endif } DEFINE_SIMPLE_CONVERSION_FUNCTIONS(SMDiagnostic, LLVMSMDiagnosticRef)