Add TargetOptions and use it when constructing targets.
 - This ended up being hard to factor, sorry for the large diff.

 - Some post-commit cleanup to come.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88833 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/clang-cc/Options.h b/tools/clang-cc/Options.h
index b3fe36f..461c46e 100644
--- a/tools/clang-cc/Options.h
+++ b/tools/clang-cc/Options.h
@@ -25,6 +25,7 @@
 class PreprocessorOptions;
 class PreprocessorOutputOptions;
 class TargetInfo;
+class TargetOptions;
 
 void InitializeAnalyzerOptions(AnalyzerOptions &Opts);
 
@@ -34,8 +35,7 @@
 
 void InitializeFrontendOptions(FrontendOptions &Opts);
 
-void InitializeCodeGenOptions(CodeGenOptions &Opts,
-                              const TargetInfo &Target);
+void InitializeCodeGenOptions(CodeGenOptions &Opts);
 
 void InitializeHeaderSearchOptions(HeaderSearchOptions &Opts,
                                    llvm::StringRef BuiltinIncludePath,
@@ -50,6 +50,8 @@
 
 void InitializePreprocessorOutputOptions(PreprocessorOutputOptions &Opts);
 
+void InitializeTargetOptions(TargetOptions &Opts);
+
 } // end namespace clang
 
 #endif