mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-09 20:37:25 +03:00
Adapt to latest LLVM 8 changes
This commit is contained in:
parent
704f774a8b
commit
306bda36fd
8 changed files with 21 additions and 19 deletions
|
@ -315,7 +315,7 @@ void outputIR2ObjRelevantCmdlineArgs(llvm::raw_ostream &hash_os) {
|
|||
#else
|
||||
hash_os << opts::getCodeModel();
|
||||
#endif
|
||||
#if LDC_LLVM_VER >= 900
|
||||
#if LDC_LLVM_VER >= 800
|
||||
const auto framePointerUsage = opts::framePointerUsage();
|
||||
if (framePointerUsage.hasValue())
|
||||
hash_os << framePointerUsage.getValue();
|
||||
|
|
|
@ -37,7 +37,7 @@ Optional<CodeModel::Model> getCodeModel() { return ::getCodeModel(); }
|
|||
CodeModel::Model getCodeModel() { return ::CMModel; }
|
||||
#endif
|
||||
|
||||
#if LDC_LLVM_VER >= 900
|
||||
#if LDC_LLVM_VER >= 800
|
||||
llvm::Optional<llvm::FramePointer::FP> framePointerUsage() {
|
||||
if (::FramePointerUsage.getNumOccurrences() == 0)
|
||||
return llvm::None;
|
||||
|
@ -89,5 +89,9 @@ CodeModel::Model GetCodeModelFromCMModel() { return ::CMModel; }
|
|||
#if LDC_LLVM_VER >= 700
|
||||
std::string GetCPUStr() { return ::getCPUStr(); }
|
||||
#endif
|
||||
|
||||
#if LDC_LLVM_VER >= 800
|
||||
std::vector<std::string> GetMAttrs() { return ::MAttrs; }
|
||||
#endif
|
||||
}
|
||||
#endif // LDC_WITH_LLD && LDC_LLVM_VER >= 500
|
||||
|
|
|
@ -23,7 +23,7 @@ llvm::Optional<llvm::CodeModel::Model> getCodeModel();
|
|||
#else
|
||||
llvm::CodeModel::Model getCodeModel();
|
||||
#endif
|
||||
#if LDC_LLVM_VER >= 900
|
||||
#if LDC_LLVM_VER >= 800
|
||||
llvm::Optional<llvm::FramePointer::FP> framePointerUsage();
|
||||
#else
|
||||
llvm::cl::boolOrDefault disableFPElim();
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include "gen/llvm.h"
|
||||
#include "ir/irfunction.h"
|
||||
#include "llvm/Bitcode/BitcodeWriter.h"
|
||||
#include "llvm/IR/TypeBuilder.h"
|
||||
#include "llvm/Transforms/Utils/Cloning.h"
|
||||
#include "llvm/Transforms/Utils/ModuleUtils.h"
|
||||
|
||||
|
@ -374,15 +373,14 @@ getArrayAndSize(llvm::Module &module, llvm::Type *elemType,
|
|||
llvm::ConstantInt::get(module.getContext(), APInt(32, elements.size())));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void createStaticArray(llvm::Module &mod, llvm::GlobalVariable *var,
|
||||
void createStaticI8Array(llvm::Module &mod, llvm::GlobalVariable *var,
|
||||
llvm::GlobalVariable *varLen, // can be null
|
||||
llvm::ArrayRef<T> arr) {
|
||||
llvm::ArrayRef<uint8_t> arr) {
|
||||
assert(nullptr != var);
|
||||
const auto dataLen = arr.size();
|
||||
auto gvar = new llvm::GlobalVariable(
|
||||
mod,
|
||||
llvm::ArrayType::get(llvm::TypeBuilder<T, false>::get(mod.getContext()),
|
||||
llvm::ArrayType::get(llvm::IntegerType::get(mod.getContext(), 8),
|
||||
dataLen),
|
||||
true, llvm::GlobalValue::InternalLinkage,
|
||||
llvm::ConstantDataArray::get(mod.getContext(), arr), ".str");
|
||||
|
@ -724,7 +722,7 @@ void setupModuleBitcodeData(const llvm::Module &srcModule, IRState *irs,
|
|||
irs->module, llvm::IntegerType::get(irs->context(), 32), true,
|
||||
llvm::GlobalValue::PrivateLinkage, nullptr, ".rtcompile_irsize");
|
||||
|
||||
createStaticArray(irs->module, runtimeCompiledIr, runtimeCompiledIrSize,
|
||||
createStaticI8Array(irs->module, runtimeCompiledIr, runtimeCompiledIrSize,
|
||||
llvm::ArrayRef<uint8_t>(
|
||||
reinterpret_cast<uint8_t *>(str.data()), str.size()));
|
||||
|
||||
|
|
|
@ -469,7 +469,7 @@ void applyTargetMachineAttributes(llvm::Function &func,
|
|||
func.addFnAttr("no-infs-fp-math", TO.NoInfsFPMath ? "true" : "false");
|
||||
func.addFnAttr("no-nans-fp-math", TO.NoNaNsFPMath ? "true" : "false");
|
||||
|
||||
#if LDC_LLVM_VER >= 900
|
||||
#if LDC_LLVM_VER >= 800
|
||||
switch (whichFramePointersToEmit()) {
|
||||
case llvm::FramePointer::None:
|
||||
func.addFnAttr("no-frame-pointer-elim", "false");
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include "llvm/Transforms/Instrumentation.h"
|
||||
#if LDC_LLVM_VER >= 900
|
||||
#if LDC_LLVM_VER >= 800
|
||||
#include "llvm/Transforms/Instrumentation/MemorySanitizer.h"
|
||||
#include "llvm/Transforms/Instrumentation/ThreadSanitizer.h"
|
||||
#endif
|
||||
|
@ -126,7 +126,7 @@ bool willCrossModuleInline() {
|
|||
return enableCrossModuleInlining == llvm::cl::BOU_TRUE;
|
||||
}
|
||||
|
||||
#if LDC_LLVM_VER >= 900
|
||||
#if LDC_LLVM_VER >= 800
|
||||
llvm::FramePointer::FP whichFramePointersToEmit() {
|
||||
auto option = opts::framePointerUsage();
|
||||
if (option)
|
||||
|
@ -193,7 +193,7 @@ static void addAddressSanitizerPasses(const PassManagerBuilder &Builder,
|
|||
|
||||
static void addMemorySanitizerPass(const PassManagerBuilder &Builder,
|
||||
PassManagerBase &PM) {
|
||||
#if LDC_LLVM_VER >= 900
|
||||
#if LDC_LLVM_VER >= 800
|
||||
PM.add(createMemorySanitizerLegacyPassPass());
|
||||
#else
|
||||
PM.add(createMemorySanitizerPass());
|
||||
|
@ -214,7 +214,7 @@ static void addMemorySanitizerPass(const PassManagerBuilder &Builder,
|
|||
|
||||
static void addThreadSanitizerPass(const PassManagerBuilder &Builder,
|
||||
PassManagerBase &PM) {
|
||||
#if LDC_LLVM_VER >= 900
|
||||
#if LDC_LLVM_VER >= 800
|
||||
PM.add(createThreadSanitizerLegacyPassPass());
|
||||
#else
|
||||
PM.add(createThreadSanitizerPass());
|
||||
|
|
|
@ -34,7 +34,7 @@ bool willInline();
|
|||
|
||||
bool willCrossModuleInline();
|
||||
|
||||
#if LDC_LLVM_VER >= 900
|
||||
#if LDC_LLVM_VER >= 800
|
||||
llvm::FramePointer::FP whichFramePointersToEmit();
|
||||
#else
|
||||
bool willEliminateFramePointer();
|
||||
|
|
|
@ -211,7 +211,7 @@ if (platform.system() != 'Windows') and lit.util.which('gdb', config.environment
|
|||
config.substitutions.append( ('%_gdb_dflags', gdb_dflags) )
|
||||
|
||||
# Add substitutions for functionality across different LLVM versions
|
||||
if config.llvm_version >= 900:
|
||||
if config.llvm_version >= 800:
|
||||
config.substitutions.append( ('%disable_fp_elim', '-frame-pointer=all') )
|
||||
config.substitutions.append( ('%enable_fp_elim', '-frame-pointer=none') )
|
||||
else:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue