Backend: Accept -mcpu and -mattr for use by TargetMachine.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64798 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 1fdfde4..24c4d7f 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -1204,6 +1204,14 @@
          llvm::cl::desc("Optimization level"),
          llvm::cl::init(0));
 
+static llvm::cl::opt<std::string>
+TargetCPU("mcpu",
+         llvm::cl::desc("Target a specific cpu type (-mcpu=help for details)"));
+
+static llvm::cl::list<std::string>
+TargetFeatures("mattr",
+        llvm::cl::desc("Target specific attributes (-mattr=help for details)"));
+
 static void InitializeCompileOptions(CompileOptions &Opts) {
   Opts.OptimizeSize = OptSize;
   if (OptSize) {
@@ -1222,6 +1230,10 @@
 #ifdef NDEBUG
   Opts.VerifyModule = 0;
 #endif
+
+  Opts.CPU = TargetCPU;
+  Opts.Features.insert(Opts.Features.end(),
+                       TargetFeatures.begin(), TargetFeatures.end());
 }
 
 //===----------------------------------------------------------------------===//