diff options
Diffstat (limited to 'llvm/lib/Target/Lanai/LanaiTargetMachine.cpp')
| -rw-r--r-- | llvm/lib/Target/Lanai/LanaiTargetMachine.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp b/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp index f89464826b3..bb418f3110c 100644 --- a/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp +++ b/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp @@ -47,18 +47,23 @@ static std::string computeDataLayout(const Triple &TT) { "-S64"; // 64 bit natural stack alignment } -LanaiTargetMachine::LanaiTargetMachine(const Target &TheTarget, - const Triple &TargetTriple, +static Reloc::Model getEffectiveRelocModel(const Triple &TT, + Optional<Reloc::Model> RM) { + if (!RM.hasValue()) + return Reloc::Static; + return *RM; +} + +LanaiTargetMachine::LanaiTargetMachine(const Target &T, const Triple &TT, StringRef Cpu, StringRef FeatureString, const TargetOptions &Options, - Reloc::Model RelocationModel, + Optional<Reloc::Model> RM, CodeModel::Model CodeModel, CodeGenOpt::Level OptLevel) - : LLVMTargetMachine(TheTarget, computeDataLayout(TargetTriple), - TargetTriple, Cpu, FeatureString, Options, - RelocationModel, CodeModel, OptLevel), - Subtarget(TargetTriple, Cpu, FeatureString, *this, Options, - RelocationModel, CodeModel, OptLevel), + : LLVMTargetMachine(T, computeDataLayout(TargetTriple), TT, Cpu, + FeatureString, Options, getEffectiveRelocModel(TT, RM), + CodeModel, OptLevel), + Subtarget(TT, Cpu, FeatureString, *this, Options, CodeModel, OptLevel), TLOF(new LanaiTargetObjectFile()) { initAsmInfo(); } |

