Ver Fonte

Prune include of DataLayout.h from include/clang/Basic/TargetInfo.h. NFC

Summary:
Use a forward declaration of DataLayout instead of including
DataLayout.h in clangs TargetInfo.h. This reduces include
dependencies toward DataLayout.h (and other headers such as
DerivedTypes.h, Type.h that is included by DataLayout.h).

Needed to move implemantation of TargetInfo::resetDataLayout
from TargetInfo.h to TargetInfo.cpp.

Reviewers: rnk

Reviewed By: rnk

Subscribers: jvesely, nhaehnle, cfe-commits, llvm-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D69262

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@375438 91177308-0d34-0410-b5e6-96231b3b80d8
Bjorn Pettersson há 5 anos atrás
pai
commit
08b8248b46

+ 4 - 4
include/clang/Basic/TargetInfo.h

@@ -19,14 +19,15 @@
 #include "clang/Basic/Specifiers.h"
 #include "clang/Basic/Specifiers.h"
 #include "clang/Basic/TargetCXXABI.h"
 #include "clang/Basic/TargetCXXABI.h"
 #include "clang/Basic/TargetOptions.h"
 #include "clang/Basic/TargetOptions.h"
+#include "llvm/ADT/APFloat.h"
 #include "llvm/ADT/APInt.h"
 #include "llvm/ADT/APInt.h"
+#include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/Optional.h"
 #include "llvm/ADT/SmallSet.h"
 #include "llvm/ADT/SmallSet.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Triple.h"
 #include "llvm/ADT/Triple.h"
-#include "llvm/IR/DataLayout.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/VersionTuple.h"
 #include "llvm/Support/VersionTuple.h"
 #include <cassert>
 #include <cassert>
@@ -35,6 +36,7 @@
 
 
 namespace llvm {
 namespace llvm {
 struct fltSemantics;
 struct fltSemantics;
+class DataLayout;
 }
 }
 
 
 namespace clang {
 namespace clang {
@@ -198,9 +200,7 @@ protected:
   // TargetInfo Constructor.  Default initializes all fields.
   // TargetInfo Constructor.  Default initializes all fields.
   TargetInfo(const llvm::Triple &T);
   TargetInfo(const llvm::Triple &T);
 
 
-  void resetDataLayout(StringRef DL) {
-    DataLayout.reset(new llvm::DataLayout(DL));
-  }
+  void resetDataLayout(StringRef DL);
 
 
 public:
 public:
   /// Construct a target for the given options.
   /// Construct a target for the given options.

+ 5 - 0
lib/Basic/TargetInfo.cpp

@@ -17,6 +17,7 @@
 #include "clang/Basic/LangOptions.h"
 #include "clang/Basic/LangOptions.h"
 #include "llvm/ADT/APFloat.h"
 #include "llvm/ADT/APFloat.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/IR/DataLayout.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/TargetParser.h"
 #include "llvm/Support/TargetParser.h"
 #include <cstdlib>
 #include <cstdlib>
@@ -136,6 +137,10 @@ TargetInfo::TargetInfo(const llvm::Triple &T) : TargetOpts(), Triple(T) {
 // Out of line virtual dtor for TargetInfo.
 // Out of line virtual dtor for TargetInfo.
 TargetInfo::~TargetInfo() {}
 TargetInfo::~TargetInfo() {}
 
 
+void TargetInfo::resetDataLayout(StringRef DL) {
+  DataLayout.reset(new llvm::DataLayout(DL));
+}
+
 bool
 bool
 TargetInfo::checkCFProtectionBranchSupported(DiagnosticsEngine &Diags) const {
 TargetInfo::checkCFProtectionBranchSupported(DiagnosticsEngine &Diags) const {
   Diags.Report(diag::err_opt_not_valid_on_target) << "cf-protection=branch";
   Diags.Report(diag::err_opt_not_valid_on_target) << "cf-protection=branch";

+ 1 - 0
lib/Basic/Targets/AMDGPU.cpp

@@ -17,6 +17,7 @@
 #include "clang/Basic/MacroBuilder.h"
 #include "clang/Basic/MacroBuilder.h"
 #include "clang/Basic/TargetBuiltins.h"
 #include "clang/Basic/TargetBuiltins.h"
 #include "llvm/ADT/StringSwitch.h"
 #include "llvm/ADT/StringSwitch.h"
+#include "llvm/IR/DataLayout.h"
 
 
 using namespace clang;
 using namespace clang;
 using namespace clang::targets;
 using namespace clang::targets;

+ 1 - 0
lib/Frontend/InitPreprocessor.cpp

@@ -24,6 +24,7 @@
 #include "clang/Lex/PreprocessorOptions.h"
 #include "clang/Lex/PreprocessorOptions.h"
 #include "clang/Serialization/ASTReader.h"
 #include "clang/Serialization/ASTReader.h"
 #include "llvm/ADT/APFloat.h"
 #include "llvm/ADT/APFloat.h"
+#include "llvm/IR/DataLayout.h"
 using namespace clang;
 using namespace clang;
 
 
 static bool MacroBodyEndsInBackslash(StringRef MacroBody) {
 static bool MacroBodyEndsInBackslash(StringRef MacroBody) {

+ 1 - 0
unittests/AST/DeclTest.cpp

@@ -16,6 +16,7 @@
 #include "clang/Basic/LLVM.h"
 #include "clang/Basic/LLVM.h"
 #include "clang/Tooling/Tooling.h"
 #include "clang/Tooling/Tooling.h"
 #include "gtest/gtest.h"
 #include "gtest/gtest.h"
+#include "llvm/IR/DataLayout.h"
 
 
 using namespace clang::ast_matchers;
 using namespace clang::ast_matchers;
 using namespace clang::tooling;
 using namespace clang::tooling;