From: Evan Cheng Date: Tue, 19 Jul 2011 06:37:41 +0000 (+0000) Subject: Match createTargetMachine API change. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2860e30d837ac361c126d4350b5d74f956160eba;p=clang Match createTargetMachine API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135469 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/BackendUtil.cpp b/lib/CodeGen/BackendUtil.cpp index 85f42db81f..d7326cdc7e 100644 --- a/lib/CodeGen/BackendUtil.cpp +++ b/lib/CodeGen/BackendUtil.cpp @@ -236,16 +236,6 @@ bool EmitAssemblyHelper::AddEmitPasses(BackendAction Action, TargetMachine::setFunctionSections(CodeGenOpts.FunctionSections); TargetMachine::setDataSections (CodeGenOpts.DataSections); - // FIXME: Parse this earlier. - if (CodeGenOpts.RelocationModel == "static") { - TargetMachine::setRelocationModel(llvm::Reloc::Static); - } else if (CodeGenOpts.RelocationModel == "pic") { - TargetMachine::setRelocationModel(llvm::Reloc::PIC_); - } else { - assert(CodeGenOpts.RelocationModel == "dynamic-no-pic" && - "Invalid PIC model!"); - TargetMachine::setRelocationModel(llvm::Reloc::DynamicNoPIC); - } // FIXME: Parse this earlier. if (CodeGenOpts.CodeModel == "small") { TargetMachine::setCodeModel(llvm::CodeModel::Small); @@ -287,8 +277,20 @@ bool EmitAssemblyHelper::AddEmitPasses(BackendAction Action, Features.AddFeature(*it); FeaturesStr = Features.getString(); } + + llvm::Reloc::Model RM = llvm::Reloc::Default; + if (CodeGenOpts.RelocationModel == "static") { + RM = llvm::Reloc::Static; + } else if (CodeGenOpts.RelocationModel == "pic") { + RM = llvm::Reloc::PIC_; + } else { + assert(CodeGenOpts.RelocationModel == "dynamic-no-pic" && + "Invalid PIC model!"); + RM = llvm::Reloc::DynamicNoPIC; + } + TargetMachine *TM = TheTarget->createTargetMachine(Triple, TargetOpts.CPU, - FeaturesStr); + FeaturesStr, RM); if (CodeGenOpts.RelaxAll) TM->setMCRelaxAll(true); diff --git a/tools/driver/cc1_main.cpp b/tools/driver/cc1_main.cpp index 9ad4af1436..db955c6a7f 100644 --- a/tools/driver/cc1_main.cpp +++ b/tools/driver/cc1_main.cpp @@ -127,6 +127,7 @@ int cc1_main(const char **ArgBegin, const char **ArgEnd, // Initialize targets first, so that --version shows registered targets. llvm::InitializeAllTargets(); llvm::InitializeAllMCAsmInfos(); + llvm::InitializeAllMCCodeGenInfos(); llvm::InitializeAllMCSubtargetInfos(); llvm::InitializeAllAsmPrinters(); llvm::InitializeAllAsmParsers(); diff --git a/tools/driver/cc1as_main.cpp b/tools/driver/cc1as_main.cpp index bfe2301b61..b0177c7029 100644 --- a/tools/driver/cc1as_main.cpp +++ b/tools/driver/cc1as_main.cpp @@ -361,6 +361,7 @@ int cc1as_main(const char **ArgBegin, const char **ArgEnd, // FIXME: We shouldn't need to initialize the Target(Machine)s. InitializeAllTargets(); InitializeAllMCAsmInfos(); + InitializeAllMCCodeGenInfos(); InitializeAllMCInstrInfos(); InitializeAllMCRegisterInfos(); InitializeAllMCSubtargetInfos();