Mercurial > hg > CbC > CbC_llvm
diff lib/Target/Lanai/LanaiTargetMachine.cpp @ 121:803732b1fca8
LLVM 5.0
author | kono |
---|---|
date | Fri, 27 Oct 2017 17:07:41 +0900 |
parents | 1172e4bd9c6f |
children | 3a76565eade5 |
line wrap: on
line diff
--- a/lib/Target/Lanai/LanaiTargetMachine.cpp Fri Nov 25 19:14:25 2016 +0900 +++ b/lib/Target/Lanai/LanaiTargetMachine.cpp Fri Oct 27 17:07:41 2017 +0900 @@ -53,15 +53,23 @@ return *RM; } +static CodeModel::Model getEffectiveCodeModel(Optional<CodeModel::Model> CM) { + if (CM) + return *CM; + return CodeModel::Medium; +} + LanaiTargetMachine::LanaiTargetMachine(const Target &T, const Triple &TT, StringRef Cpu, StringRef FeatureString, const TargetOptions &Options, Optional<Reloc::Model> RM, - CodeModel::Model CodeModel, - CodeGenOpt::Level OptLevel) + Optional<CodeModel::Model> CodeModel, + CodeGenOpt::Level OptLevel, bool JIT) : LLVMTargetMachine(T, computeDataLayout(), TT, Cpu, FeatureString, Options, - getEffectiveRelocModel(RM), CodeModel, OptLevel), - Subtarget(TT, Cpu, FeatureString, *this, Options, CodeModel, OptLevel), + getEffectiveRelocModel(RM), + getEffectiveCodeModel(CodeModel), OptLevel), + Subtarget(TT, Cpu, FeatureString, *this, Options, getCodeModel(), + OptLevel), TLOF(new LanaiTargetObjectFile()) { initAsmInfo(); } @@ -76,7 +84,7 @@ // Lanai Code Generator Pass Configuration Options. class LanaiPassConfig : public TargetPassConfig { public: - LanaiPassConfig(LanaiTargetMachine *TM, PassManagerBase *PassManager) + LanaiPassConfig(LanaiTargetMachine &TM, PassManagerBase *PassManager) : TargetPassConfig(TM, *PassManager) {} LanaiTargetMachine &getLanaiTargetMachine() const { @@ -91,7 +99,7 @@ TargetPassConfig * LanaiTargetMachine::createPassConfig(PassManagerBase &PassManager) { - return new LanaiPassConfig(this, &PassManager); + return new LanaiPassConfig(*this, &PassManager); } // Install an instruction selector pass.