diff options
author | Devang Patel <dpatel@apple.com> | 2008-08-27 20:51:49 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2008-08-27 20:51:49 +0000 |
commit | f6a112fd65ef3255a602e07f6210c6f0df2d5081 (patch) | |
tree | c7303cde2c9b9ae8dbb34e14aa549141ccf7c71f | |
parent | f2075e053142cf60be2df91c4ea675a913333fe5 (diff) | |
download | external_llvm-f6a112fd65ef3255a602e07f6210c6f0df2d5081.tar.gz external_llvm-f6a112fd65ef3255a602e07f6210c6f0df2d5081.tar.bz2 external_llvm-f6a112fd65ef3255a602e07f6210c6f0df2d5081.zip |
Backout 55429
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55432 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/opt/opt.cpp | 52 |
1 files changed, 4 insertions, 48 deletions
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index fcf98ae1bb..1d8ce576d6 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -22,8 +22,6 @@ #include "llvm/Analysis/CallGraph.h" #include "llvm/Target/TargetData.h" #include "llvm/Target/TargetMachine.h" -#include "llvm/Target/TargetMachineRegistry.h" -#include "llvm/Target/SubtargetFeature.h" #include "llvm/Support/PassNameParser.h" #include "llvm/System/Signals.h" #include "llvm/Support/ManagedStatic.h" @@ -95,22 +93,6 @@ QuietA("quiet", cl::desc("Alias for -q"), cl::aliasopt(Quiet)); static cl::opt<bool> AnalyzeOnly("analyze", cl::desc("Only perform analysis, no optimization")); -static cl::opt<const TargetMachineRegistry::entry*, false, - TargetMachineRegistry::Parser> -MArch("march", cl::desc("Architecture to generate code for:")); - -static cl::opt<std::string> -MCPU("mcpu", - cl::desc("Target a specific cpu type (-mcpu=help for details)"), - cl::value_desc("cpu-name"), - cl::init("")); - -static cl::list<std::string> -MAttrs("mattr", - cl::CommaSeparated, - cl::desc("Target specific attributes (-mattr=help for details)"), - cl::value_desc("a1,+a2,-a3,...")); - // ---------- Define Printers for module and function passes ------------ namespace { @@ -326,36 +308,6 @@ void AddStandardCompilePasses(PassManager &PM) { //===----------------------------------------------------------------------===// // main for opt // - -TargetMachine *getTargetMachine(Module &Mod) { - - if (MArch == 0) { - std::string Err; - MArch = - TargetMachineRegistry::getClosestStaticTargetForModule(Mod, Err); - if (MArch == 0) { - std::cerr << "Error auto-selecting target for module '" - << Err << "'. Please use the -march option to explicitly " - << "pick a target.\n"; - return NULL; - } - } - - // Package up features to be passed to target/subtarget - std::string FeaturesStr; - if (MCPU.size() || MAttrs.size()) { - SubtargetFeatures Features; - Features.setCPU(MCPU); - for (unsigned i = 0; i != MAttrs.size(); ++i) - Features.AddFeature(MAttrs[i]); - FeaturesStr = Features.getString(); - } - - TargetMachine *Target = MArch->CtorFn(Mod, FeaturesStr); - assert(Target && "Could not allocate target machine!"); - return Target; -} - int main(int argc, char **argv) { llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { @@ -363,6 +315,10 @@ int main(int argc, char **argv) { "llvm .bc -> .bc modular optimizer and analysis printer\n"); sys::PrintStackTraceOnErrorSignal(); + // Allocate a full target machine description only if necessary. + // FIXME: The choice of target should be controllable on the command line. + std::auto_ptr<TargetMachine> target; + std::string ErrorMessage; // Load the input module... |