Author: adrian Date: Fri Sep 18 17:10:59 2015 New Revision: 248053 URL: http://llvm.org/viewvc/llvm-project?rev=248053&view=rev Log: Simplify the interface of PCHContainerGenerator and friends by passing in a CompilerInstance instead of all its individual members.
NFC. Modified: cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h cfe/trunk/include/clang/Frontend/PCHContainerOperations.h cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp cfe/trunk/lib/Frontend/FrontendActions.cpp cfe/trunk/lib/Frontend/PCHContainerOperations.cpp Modified: cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h?rev=248053&r1=248052&r2=248053&view=diff ============================================================================== --- cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h (original) +++ cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h Fri Sep 18 17:10:59 2015 @@ -23,10 +23,9 @@ class ObjectFilePCHContainerWriter : pub /// PCHGenerator that produces a wrapper file format /// that also contains full debug info for the module. std::unique_ptr<ASTConsumer> CreatePCHContainerGenerator( - DiagnosticsEngine &Diags, const HeaderSearchOptions &HSO, - const PreprocessorOptions &PPO, const TargetOptions &TO, - const LangOptions &LO, const std::string &MainFileName, - const std::string &OutputFileName, llvm::raw_pwrite_stream *OS, + DiagnosticsEngine &Diags, const CompilerInstance &CI, + const std::string &MainFileName, const std::string &OutputFileName, + llvm::raw_pwrite_stream *OS, std::shared_ptr<PCHBuffer> Buffer) const override; }; Modified: cfe/trunk/include/clang/Frontend/PCHContainerOperations.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/PCHContainerOperations.h?rev=248053&r1=248052&r2=248053&view=diff ============================================================================== --- cfe/trunk/include/clang/Frontend/PCHContainerOperations.h (original) +++ cfe/trunk/include/clang/Frontend/PCHContainerOperations.h Fri Sep 18 17:10:59 2015 @@ -27,10 +27,7 @@ namespace clang { class ASTConsumer; class CodeGenOptions; class DiagnosticsEngine; -class HeaderSearchOptions; -class LangOptions; -class PreprocessorOptions; -class TargetOptions; +class CompilerInstance; struct PCHBuffer { bool IsComplete; @@ -49,11 +46,9 @@ public: /// PCHGenerator that produces a wrapper file format containing a /// serialized AST bitstream. virtual std::unique_ptr<ASTConsumer> CreatePCHContainerGenerator( - DiagnosticsEngine &Diags, const HeaderSearchOptions &HSO, - const PreprocessorOptions &PPO, const TargetOptions &TO, - const LangOptions &LO, const std::string &MainFileName, - const std::string &OutputFileName, llvm::raw_pwrite_stream *OS, - std::shared_ptr<PCHBuffer> Buffer) const = 0; + DiagnosticsEngine &Diags, const CompilerInstance &CI, + const std::string &MainFileName, const std::string &OutputFileName, + llvm::raw_pwrite_stream *OS, std::shared_ptr<PCHBuffer> Buffer) const = 0; }; /// This abstract interface provides operations for unwrapping @@ -78,10 +73,9 @@ class RawPCHContainerWriter : public PCH /// Return an ASTConsumer that can be chained with a /// PCHGenerator that writes the module to a flat file. std::unique_ptr<ASTConsumer> CreatePCHContainerGenerator( - DiagnosticsEngine &Diags, const HeaderSearchOptions &HSO, - const PreprocessorOptions &PPO, const TargetOptions &TO, - const LangOptions &LO, const std::string &MainFileName, - const std::string &OutputFileName, llvm::raw_pwrite_stream *OS, + DiagnosticsEngine &Diags, const CompilerInstance &CI, + const std::string &MainFileName, const std::string &OutputFileName, + llvm::raw_pwrite_stream *OS, std::shared_ptr<PCHBuffer> Buffer) const override; }; Modified: cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp?rev=248053&r1=248052&r2=248053&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp (original) +++ cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp Fri Sep 18 17:10:59 2015 @@ -18,6 +18,7 @@ #include "clang/Basic/TargetInfo.h" #include "clang/CodeGen/BackendUtil.h" #include "clang/Frontend/CodeGenOptions.h" +#include "clang/Frontend/CompilerInstance.h" #include "clang/Serialization/ASTWriter.h" #include "llvm/ADT/StringRef.h" #include "llvm/Bitcode/BitstreamReader.h" @@ -115,15 +116,15 @@ class PCHContainerGenerator : public AST }; public: - PCHContainerGenerator(DiagnosticsEngine &diags, - const HeaderSearchOptions &HSO, - const PreprocessorOptions &PPO, const TargetOptions &TO, - const LangOptions &LO, const std::string &MainFileName, + PCHContainerGenerator(DiagnosticsEngine &diags, const CompilerInstance &CI, + const std::string &MainFileName, const std::string &OutputFileName, raw_pwrite_stream *OS, std::shared_ptr<PCHBuffer> Buffer) - : Diags(diags), Ctx(nullptr), HeaderSearchOpts(HSO), PreprocessorOpts(PPO), - TargetOpts(TO), LangOpts(LO), OS(OS), Buffer(Buffer) { + : Diags(diags), Ctx(nullptr), HeaderSearchOpts(CI.getHeaderSearchOpts()), + PreprocessorOpts(CI.getPreprocessorOpts()), + TargetOpts(CI.getTargetOpts()), LangOpts(CI.getLangOpts()), OS(OS), + Buffer(Buffer) { // The debug info output isn't affected by CodeModel and // ThreadModel, but the backend expects them to be nonempty. CodeGenOpts.CodeModel = "default"; @@ -252,13 +253,11 @@ public: std::unique_ptr<ASTConsumer> ObjectFilePCHContainerWriter::CreatePCHContainerGenerator( - DiagnosticsEngine &Diags, const HeaderSearchOptions &HSO, - const PreprocessorOptions &PPO, const TargetOptions &TO, - const LangOptions &LO, const std::string &MainFileName, - const std::string &OutputFileName, llvm::raw_pwrite_stream *OS, - std::shared_ptr<PCHBuffer> Buffer) const { - return llvm::make_unique<PCHContainerGenerator>( - Diags, HSO, PPO, TO, LO, MainFileName, OutputFileName, OS, Buffer); + DiagnosticsEngine &Diags, const CompilerInstance &CI, + const std::string &MainFileName, const std::string &OutputFileName, + llvm::raw_pwrite_stream *OS, std::shared_ptr<PCHBuffer> Buffer) const { + return llvm::make_unique<PCHContainerGenerator>(Diags, CI, MainFileName, + OutputFileName, OS, Buffer); } void ObjectFilePCHContainerReader::ExtractPCH( Modified: cfe/trunk/lib/Frontend/FrontendActions.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/FrontendActions.cpp?rev=248053&r1=248052&r2=248053&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/FrontendActions.cpp (original) +++ cfe/trunk/lib/Frontend/FrontendActions.cpp Fri Sep 18 17:10:59 2015 @@ -92,11 +92,8 @@ GeneratePCHAction::CreateASTConsumer(Com std::vector<std::unique_ptr<ASTConsumer>> Consumers; Consumers.push_back(llvm::make_unique<PCHGenerator>( CI.getPreprocessor(), OutputFile, nullptr, Sysroot, Buffer)); - Consumers.push_back( - CI.getPCHContainerWriter().CreatePCHContainerGenerator( - CI.getDiagnostics(), CI.getHeaderSearchOpts(), - CI.getPreprocessorOpts(), CI.getTargetOpts(), CI.getLangOpts(), - InFile, OutputFile, OS, Buffer)); + Consumers.push_back(CI.getPCHContainerWriter().CreatePCHContainerGenerator( + CI.getDiagnostics(), CI, InFile, OutputFile, OS, Buffer)); return llvm::make_unique<MultiplexConsumer>(std::move(Consumers)); } @@ -140,11 +137,8 @@ GenerateModuleAction::CreateASTConsumer( CI.getPreprocessor(), OutputFile, Module, Sysroot, Buffer, /*AllowASTWithErrors*/false, /*IncludeTimestamps*/+CI.getFrontendOpts().BuildingImplicitModule)); - Consumers.push_back( - CI.getPCHContainerWriter().CreatePCHContainerGenerator( - CI.getDiagnostics(), CI.getHeaderSearchOpts(), - CI.getPreprocessorOpts(), CI.getTargetOpts(), CI.getLangOpts(), - InFile, OutputFile, OS, Buffer)); + Consumers.push_back(CI.getPCHContainerWriter().CreatePCHContainerGenerator( + CI.getDiagnostics(), CI, InFile, OutputFile, OS, Buffer)); return llvm::make_unique<MultiplexConsumer>(std::move(Consumers)); } Modified: cfe/trunk/lib/Frontend/PCHContainerOperations.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/PCHContainerOperations.cpp?rev=248053&r1=248052&r2=248053&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/PCHContainerOperations.cpp (original) +++ cfe/trunk/lib/Frontend/PCHContainerOperations.cpp Fri Sep 18 17:10:59 2015 @@ -27,13 +27,7 @@ class RawPCHContainerGenerator : public raw_pwrite_stream *OS; public: - RawPCHContainerGenerator(DiagnosticsEngine &Diags, - const HeaderSearchOptions &HSO, - const PreprocessorOptions &PPO, - const TargetOptions &TO, const LangOptions &LO, - const std::string &MainFileName, - const std::string &OutputFileName, - llvm::raw_pwrite_stream *OS, + RawPCHContainerGenerator(llvm::raw_pwrite_stream *OS, std::shared_ptr<PCHBuffer> Buffer) : Buffer(Buffer), OS(OS) {} @@ -54,13 +48,10 @@ public: } // anonymous namespace std::unique_ptr<ASTConsumer> RawPCHContainerWriter::CreatePCHContainerGenerator( - DiagnosticsEngine &Diags, const HeaderSearchOptions &HSO, - const PreprocessorOptions &PPO, const TargetOptions &TO, - const LangOptions &LO, const std::string &MainFileName, - const std::string &OutputFileName, llvm::raw_pwrite_stream *OS, - std::shared_ptr<PCHBuffer> Buffer) const { - return llvm::make_unique<RawPCHContainerGenerator>( - Diags, HSO, PPO, TO, LO, MainFileName, OutputFileName, OS, Buffer); + DiagnosticsEngine &Diags, const CompilerInstance &CI, + const std::string &MainFileName, const std::string &OutputFileName, + llvm::raw_pwrite_stream *OS, std::shared_ptr<PCHBuffer> Buffer) const { + return llvm::make_unique<RawPCHContainerGenerator>(OS, Buffer); } void RawPCHContainerReader::ExtractPCH( _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits