diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/include/clang/CodeGen/CodeGenABITypes.h | 2 | ||||
| -rw-r--r-- | clang/lib/CodeGen/BackendUtil.cpp | 5 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CodeGenABITypes.cpp | 15 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 7 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CodeGenModule.h | 11 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CodeGenTypes.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CodeGenTypes.h | 5 | ||||
| -rw-r--r-- | clang/lib/CodeGen/ModuleBuilder.cpp | 11 | ||||
| -rw-r--r-- | clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp | 5 | 
9 files changed, 24 insertions, 38 deletions
diff --git a/clang/include/clang/CodeGen/CodeGenABITypes.h b/clang/include/clang/CodeGen/CodeGenABITypes.h index 4e76cd4d5b0..2557f9c8e6f 100644 --- a/clang/include/clang/CodeGen/CodeGenABITypes.h +++ b/clang/include/clang/CodeGen/CodeGenABITypes.h @@ -50,7 +50,7 @@ class CodeGenModule;  class CodeGenABITypes  {  public: -  CodeGenABITypes(ASTContext &C, llvm::Module &M, const llvm::DataLayout &TD, +  CodeGenABITypes(ASTContext &C, llvm::Module &M,                    CoverageSourceInfo *CoverageInfo = nullptr);    ~CodeGenABITypes(); diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index 5754bb63dd7..90da637ab80 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -608,7 +608,7 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action,    if (UsesCodeGen && !TM)      return;    if (TM) -    TheModule->setDataLayout(*TM->getDataLayout()); +    TheModule->setDataLayout(TM->createDataLayout());    CreatePasses();    switch (Action) { @@ -670,8 +670,7 @@ void clang::EmitBackendOutput(DiagnosticsEngine &Diags,    // If an optional clang TargetInfo description string was passed in, use it to    // verify the LLVM TargetMachine's DataLayout.    if (AsmHelper.TM && !TDesc.empty()) { -    std::string DLDesc = -        AsmHelper.TM->getDataLayout()->getStringRepresentation(); +    std::string DLDesc = M->getDataLayout().getStringRepresentation();      if (DLDesc != TDesc) {        unsigned DiagID = Diags.getCustomDiagID(            DiagnosticsEngine::Error, "backend data layout '%0' does not match " diff --git a/clang/lib/CodeGen/CodeGenABITypes.cpp b/clang/lib/CodeGen/CodeGenABITypes.cpp index 755e8aa628c..5305a29011a 100644 --- a/clang/lib/CodeGen/CodeGenABITypes.cpp +++ b/clang/lib/CodeGen/CodeGenABITypes.cpp @@ -26,17 +26,12 @@  using namespace clang;  using namespace CodeGen; -CodeGenABITypes::CodeGenABITypes(ASTContext &C, -                                 llvm::Module &M, -                                 const llvm::DataLayout &TD, +CodeGenABITypes::CodeGenABITypes(ASTContext &C, llvm::Module &M,                                   CoverageSourceInfo *CoverageInfo) -  : CGO(new CodeGenOptions), -    HSO(new HeaderSearchOptions), -    PPO(new PreprocessorOptions), -    CGM(new CodeGen::CodeGenModule(C, *HSO, *PPO, *CGO, -                                   M, TD, C.getDiagnostics(), -                                   CoverageInfo)) { -} +    : CGO(new CodeGenOptions), HSO(new HeaderSearchOptions), +      PPO(new PreprocessorOptions), +      CGM(new CodeGen::CodeGenModule(C, *HSO, *PPO, *CGO, M, C.getDiagnostics(), +                                     CoverageInfo)) {}  CodeGenABITypes::~CodeGenABITypes()  { diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index a179ad42eac..f6bd6a4069b 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -77,12 +77,11 @@ static CGCXXABI *createCXXABI(CodeGenModule &CGM) {  CodeGenModule::CodeGenModule(ASTContext &C, const HeaderSearchOptions &HSO,                               const PreprocessorOptions &PPO,                               const CodeGenOptions &CGO, llvm::Module &M, -                             const llvm::DataLayout &TD,                               DiagnosticsEngine &diags,                               CoverageSourceInfo *CoverageInfo)      : Context(C), LangOpts(C.getLangOpts()), HeaderSearchOpts(HSO),        PreprocessorOpts(PPO), CodeGenOpts(CGO), TheModule(M), Diags(diags), -      TheDataLayout(TD), Target(C.getTargetInfo()), ABI(createCXXABI(*this)), +      Target(C.getTargetInfo()), ABI(createCXXABI(*this)),        VMContext(M.getContext()), TBAA(nullptr), TheTargetCodeGenInfo(nullptr),        Types(*this), VTables(*this), ObjCRuntime(nullptr),        OpenCLRuntime(nullptr), OpenMPRuntime(nullptr), CUDARuntime(nullptr), @@ -1893,8 +1892,8 @@ void CodeGenModule::EmitTentativeDefinition(const VarDecl *D) {  }  CharUnits CodeGenModule::GetTargetTypeStoreSize(llvm::Type *Ty) const { -    return Context.toCharUnitsFromBits( -      TheDataLayout.getTypeStoreSizeInBits(Ty)); +  return Context.toCharUnitsFromBits( +      getDataLayout().getTypeStoreSizeInBits(Ty));  }  unsigned CodeGenModule::GetGlobalVarAddressSpace(const VarDecl *D, diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h index dd167a29f5a..848188d72a9 100644 --- a/clang/lib/CodeGen/CodeGenModule.h +++ b/clang/lib/CodeGen/CodeGenModule.h @@ -285,7 +285,6 @@ private:    const CodeGenOptions &CodeGenOpts;    llvm::Module &TheModule;    DiagnosticsEngine &Diags; -  const llvm::DataLayout &TheDataLayout;    const TargetInfo &Target;    std::unique_ptr<CGCXXABI> ABI;    llvm::LLVMContext &VMContext; @@ -492,11 +491,9 @@ private:    std::unique_ptr<CoverageMappingModuleGen> CoverageMapping;  public: -  CodeGenModule(ASTContext &C, -                const HeaderSearchOptions &headersearchopts, +  CodeGenModule(ASTContext &C, const HeaderSearchOptions &headersearchopts,                  const PreprocessorOptions &ppopts, -                const CodeGenOptions &CodeGenOpts, -                llvm::Module &M, const llvm::DataLayout &TD, +                const CodeGenOptions &CodeGenOpts, llvm::Module &M,                  DiagnosticsEngine &Diags,                  CoverageSourceInfo *CoverageInfo = nullptr); @@ -614,7 +611,9 @@ public:    const CodeGenOptions &getCodeGenOpts() const { return CodeGenOpts; }    llvm::Module &getModule() const { return TheModule; }    DiagnosticsEngine &getDiags() const { return Diags; } -  const llvm::DataLayout &getDataLayout() const { return TheDataLayout; } +  const llvm::DataLayout &getDataLayout() const { +    return TheModule.getDataLayout(); +  }    const TargetInfo &getTarget() const { return Target; }    const llvm::Triple &getTriple() const;    bool supportsCOMDAT() const; diff --git a/clang/lib/CodeGen/CodeGenTypes.cpp b/clang/lib/CodeGen/CodeGenTypes.cpp index a4a8654eb36..41aa0c1d8af 100644 --- a/clang/lib/CodeGen/CodeGenTypes.cpp +++ b/clang/lib/CodeGen/CodeGenTypes.cpp @@ -31,7 +31,6 @@ using namespace CodeGen;  CodeGenTypes::CodeGenTypes(CodeGenModule &cgm)    : CGM(cgm), Context(cgm.getContext()), TheModule(cgm.getModule()), -    TheDataLayout(cgm.getDataLayout()),      Target(cgm.getTarget()), TheCXXABI(cgm.getCXXABI()),      TheABIInfo(cgm.getTargetCodeGenInfo().getABIInfo()) {    SkippedLayout = false; diff --git a/clang/lib/CodeGen/CodeGenTypes.h b/clang/lib/CodeGen/CodeGenTypes.h index 1580e21d11d..2c37e00ce53 100644 --- a/clang/lib/CodeGen/CodeGenTypes.h +++ b/clang/lib/CodeGen/CodeGenTypes.h @@ -122,7 +122,6 @@ class CodeGenTypes {    // Some of this stuff should probably be left on the CGM.    ASTContext &Context;    llvm::Module &TheModule; -  const llvm::DataLayout &TheDataLayout;    const TargetInfo &Target;    CGCXXABI &TheCXXABI; @@ -168,7 +167,9 @@ public:    CodeGenTypes(CodeGenModule &cgm);    ~CodeGenTypes(); -  const llvm::DataLayout &getDataLayout() const { return TheDataLayout; } +  const llvm::DataLayout &getDataLayout() const { +    return TheModule.getDataLayout(); +  }    ASTContext &getContext() const { return Context; }    const ABIInfo &getABIInfo() const { return TheABIInfo; }    const TargetInfo &getTarget() const { return Target; } diff --git a/clang/lib/CodeGen/ModuleBuilder.cpp b/clang/lib/CodeGen/ModuleBuilder.cpp index def56a96312..05788236a16 100644 --- a/clang/lib/CodeGen/ModuleBuilder.cpp +++ b/clang/lib/CodeGen/ModuleBuilder.cpp @@ -30,7 +30,6 @@ using namespace clang;  namespace {    class CodeGeneratorImpl : public CodeGenerator {      DiagnosticsEngine &Diags; -    std::unique_ptr<const llvm::DataLayout> TD;      ASTContext *Ctx;      const HeaderSearchOptions &HeaderSearchOpts; // Only used for debug info.      const PreprocessorOptions &PreprocessorOpts; // Only used for debug info. @@ -100,13 +99,9 @@ namespace {        M->setTargetTriple(Ctx->getTargetInfo().getTriple().getTriple());        M->setDataLayout(Ctx->getTargetInfo().getTargetDescription()); -      TD.reset( -          new llvm::DataLayout(Ctx->getTargetInfo().getTargetDescription())); -      Builder.reset(new CodeGen::CodeGenModule(Context, -                                               HeaderSearchOpts, -                                               PreprocessorOpts, -                                               CodeGenOpts, *M, *TD, -                                               Diags, CoverageInfo)); +      Builder.reset(new CodeGen::CodeGenModule(Context, HeaderSearchOpts, +                                               PreprocessorOpts, CodeGenOpts, +                                               *M, Diags, CoverageInfo));        for (size_t i = 0, e = CodeGenOpts.DependentLibraries.size(); i < e; ++i)          HandleDependentLibrary(CodeGenOpts.DependentLibraries[i]); diff --git a/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp b/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp index 9c9b1234a66..629cac13428 100644 --- a/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp +++ b/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp @@ -75,9 +75,8 @@ public:      VMContext.reset(new llvm::LLVMContext());      M.reset(new llvm::Module(MainFileName, *VMContext));      M->setDataLayout(Ctx->getTargetInfo().getTargetDescription()); -    Builder.reset(new CodeGen::CodeGenModule(*Ctx, HeaderSearchOpts, -                                             PreprocessorOpts, CodeGenOpts, *M, -                                             M->getDataLayout(), Diags)); +    Builder.reset(new CodeGen::CodeGenModule( +        *Ctx, HeaderSearchOpts, PreprocessorOpts, CodeGenOpts, *M, Diags));    }    /// Emit a container holding the serialized AST.  | 

