diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-04-08 16:52:00 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-04-08 16:52:00 +0000 |
commit | 10a4972a8d872f33ec109936543ec9fc583a56e3 (patch) | |
tree | a13c98b59628de16d487226becdb8f44c8a4fb3d /clang/lib/Frontend | |
parent | 56737722e43464b896b9e7e628a8c3ce841da605 (diff) | |
download | bcm5719-llvm-10a4972a8d872f33ec109936543ec9fc583a56e3.tar.gz bcm5719-llvm-10a4972a8d872f33ec109936543ec9fc583a56e3.zip |
revert SVN r265702, r265640
Revert the two changes to thread CodeGenOptions into the TargetInfo allocation
and to fix the layering violation by moving CodeGenOptions into Basic.
Code Generation is arguably not particularly "basic". This addresses Richard's
post-commit review comments. This change purely does the mechanical revert and
will be followed up with an alternate approach to thread the desired information
into TargetInfo.
llvm-svn: 265806
Diffstat (limited to 'clang/lib/Frontend')
-rw-r--r-- | clang/lib/Frontend/ASTUnit.cpp | 12 | ||||
-rw-r--r-- | clang/lib/Frontend/CMakeLists.txt | 1 | ||||
-rw-r--r-- | clang/lib/Frontend/ChainedIncludesSource.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Frontend/CodeGenOptions.cpp | 32 | ||||
-rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 6 |
5 files changed, 40 insertions, 14 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp index c7f63652562..61e80d5d729 100644 --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -1058,8 +1058,7 @@ bool ASTUnit::Parse(std::shared_ptr<PCHContainerOperations> PCHContainerOps, // Create the target instance. Clang->setTarget(TargetInfo::CreateTargetInfo( - Clang->getDiagnostics(), Clang->getInvocation().TargetOpts, - Clang->getInvocation().getCodeGenOpts())); + Clang->getDiagnostics(), Clang->getInvocation().TargetOpts)); if (!Clang->hasTarget()) return true; @@ -1519,8 +1518,7 @@ ASTUnit::getMainBufferWithPrecompiledPreamble( // Create the target instance. Clang->setTarget(TargetInfo::CreateTargetInfo( - Clang->getDiagnostics(), Clang->getInvocation().TargetOpts, - Clang->getInvocation().getCodeGenOpts())); + Clang->getDiagnostics(), Clang->getInvocation().TargetOpts)); if (!Clang->hasTarget()) { llvm::sys::fs::remove(FrontendOpts.OutputFile); Preamble.clear(); @@ -1783,8 +1781,7 @@ ASTUnit *ASTUnit::LoadFromCompilerInvocationAction( // Create the target instance. Clang->setTarget(TargetInfo::CreateTargetInfo( - Clang->getDiagnostics(), Clang->getInvocation().TargetOpts, - Clang->getInvocation().getCodeGenOpts())); + Clang->getDiagnostics(), Clang->getInvocation().TargetOpts)); if (!Clang->hasTarget()) return nullptr; @@ -2367,8 +2364,7 @@ void ASTUnit::CodeComplete( // Create the target instance. Clang->setTarget(TargetInfo::CreateTargetInfo( - Clang->getDiagnostics(), Clang->getInvocation().TargetOpts, - Clang->getInvocation().getCodeGenOpts())); + Clang->getDiagnostics(), Clang->getInvocation().TargetOpts)); if (!Clang->hasTarget()) { Clang->setInvocation(nullptr); return; diff --git a/clang/lib/Frontend/CMakeLists.txt b/clang/lib/Frontend/CMakeLists.txt index d6b94d3b0ee..5c19cea028b 100644 --- a/clang/lib/Frontend/CMakeLists.txt +++ b/clang/lib/Frontend/CMakeLists.txt @@ -14,6 +14,7 @@ add_clang_library(clangFrontend CacheTokens.cpp ChainedDiagnosticConsumer.cpp ChainedIncludesSource.cpp + CodeGenOptions.cpp CompilerInstance.cpp CompilerInvocation.cpp CreateInvocationFromCommandLine.cpp diff --git a/clang/lib/Frontend/ChainedIncludesSource.cpp b/clang/lib/Frontend/ChainedIncludesSource.cpp index 3707976a21b..1c1081fbe08 100644 --- a/clang/lib/Frontend/ChainedIncludesSource.cpp +++ b/clang/lib/Frontend/ChainedIncludesSource.cpp @@ -152,8 +152,7 @@ IntrusiveRefCntPtr<ExternalSemaSource> clang::createChainedIncludesSource( Clang->setInvocation(CInvok.release()); Clang->setDiagnostics(Diags.get()); Clang->setTarget(TargetInfo::CreateTargetInfo( - Clang->getDiagnostics(), Clang->getInvocation().TargetOpts, - Clang->getCodeGenOpts())); + Clang->getDiagnostics(), Clang->getInvocation().TargetOpts)); Clang->createFileManager(); Clang->createSourceManager(Clang->getFileManager()); Clang->createPreprocessor(TU_Prefix); diff --git a/clang/lib/Frontend/CodeGenOptions.cpp b/clang/lib/Frontend/CodeGenOptions.cpp new file mode 100644 index 00000000000..50bb9f951be --- /dev/null +++ b/clang/lib/Frontend/CodeGenOptions.cpp @@ -0,0 +1,32 @@ +//===--- CodeGenOptions.cpp -----------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "clang/Frontend/CodeGenOptions.h" +#include <string.h> + +namespace clang { + +CodeGenOptions::CodeGenOptions() { +#define CODEGENOPT(Name, Bits, Default) Name = Default; +#define ENUM_CODEGENOPT(Name, Type, Bits, Default) set##Name(Default); +#include "clang/Frontend/CodeGenOptions.def" + + RelocationModel = "pic"; + memcpy(CoverageVersion, "402*", 4); +} + +bool CodeGenOptions::isNoBuiltinFunc(const char *Name) const { + StringRef FuncName(Name); + for (unsigned i = 0, e = NoBuiltinFuncs.size(); i != e; ++i) + if (FuncName.equals(NoBuiltinFuncs[i])) + return true; + return false; +} + +} // end namespace clang diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index 76f2f9bc6b2..cac73befff0 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -830,8 +830,7 @@ bool CompilerInstance::ExecuteAction(FrontendAction &Act) { // Create the target instance. setTarget(TargetInfo::CreateTargetInfo(getDiagnostics(), - getInvocation().TargetOpts, - getInvocation().getCodeGenOpts())); + getInvocation().TargetOpts)); if (!hasTarget()) return false; @@ -839,8 +838,7 @@ bool CompilerInstance::ExecuteAction(FrontendAction &Act) { if (getLangOpts().CUDA && !getFrontendOpts().AuxTriple.empty()) { std::shared_ptr<TargetOptions> TO(new TargetOptions); TO->Triple = getFrontendOpts().AuxTriple; - setAuxTarget(TargetInfo::CreateTargetInfo(getDiagnostics(), TO, - getInvocation().getCodeGenOpts())); + setAuxTarget(TargetInfo::CreateTargetInfo(getDiagnostics(), TO)); } // Inform the target of the language options. |