clang 22.0.0git
clang::CowCompilerInvocation Class Reference

Same as CompilerInvocation, but with copy-on-write optimization. More...

#include "clang/Frontend/CompilerInvocation.h"

Inheritance diagram for clang::CowCompilerInvocation:
[legend]

Public Member Functions

 CowCompilerInvocation ()=default
 CowCompilerInvocation (const CowCompilerInvocation &X)
 CowCompilerInvocation (CowCompilerInvocation &&)=default
CowCompilerInvocationoperator= (const CowCompilerInvocation &X)
 ~CowCompilerInvocation ()=default
 CowCompilerInvocation (const CompilerInvocation &X)
 CowCompilerInvocation (CompilerInvocation &&X)
LangOptionsgetMutLangOpts ()
 Mutable getters.
TargetOptionsgetMutTargetOpts ()
DiagnosticOptionsgetMutDiagnosticOpts ()
HeaderSearchOptionsgetMutHeaderSearchOpts ()
PreprocessorOptionsgetMutPreprocessorOpts ()
AnalyzerOptionsgetMutAnalyzerOpts ()
MigratorOptionsgetMutMigratorOpts ()
APINotesOptionsgetMutAPINotesOpts ()
CodeGenOptionsgetMutCodeGenOpts ()
FileSystemOptionsgetMutFileSystemOpts ()
FrontendOptionsgetMutFrontendOpts ()
DependencyOutputOptionsgetMutDependencyOutputOpts ()
PreprocessorOutputOptionsgetMutPreprocessorOutputOpts ()
Public Member Functions inherited from clang::CompilerInvocationBase
const LangOptionsgetLangOpts () const
 Const getters.
const TargetOptionsgetTargetOpts () const
const DiagnosticOptionsgetDiagnosticOpts () const
const HeaderSearchOptionsgetHeaderSearchOpts () const
const PreprocessorOptionsgetPreprocessorOpts () const
const AnalyzerOptionsgetAnalyzerOpts () const
const MigratorOptionsgetMigratorOpts () const
const APINotesOptionsgetAPINotesOpts () const
const CodeGenOptionsgetCodeGenOpts () const
const FileSystemOptionsgetFileSystemOpts () const
const FrontendOptionsgetFrontendOpts () const
const DependencyOutputOptionsgetDependencyOutputOpts () const
const PreprocessorOutputOptionsgetPreprocessorOutputOpts () const
void generateCC1CommandLine (llvm::SmallVectorImpl< const char * > &Args, StringAllocator SA) const
 Generate cc1-compatible command line arguments from this instance.
void generateCC1CommandLine (ArgumentConsumer Consumer) const
 Generate cc1-compatible command line arguments from this instance.
std::vector< std::string > getCC1CommandLine () const
 Generate cc1-compatible command line arguments from this instance, wrapping the result as a std::vector<std::string>.

Additional Inherited Members

using StringAllocator = llvm::function_ref<const char *(const Twine &)>
 Command line generation.
using ArgumentConsumer = llvm::function_ref<void(const Twine &)>
Protected Member Functions inherited from clang::CompilerInvocationBase
 CompilerInvocationBase ()
 CompilerInvocationBase (EmptyConstructor)
 CompilerInvocationBase (const CompilerInvocationBase &X)=delete
 CompilerInvocationBase (CompilerInvocationBase &&X)=default
CompilerInvocationBaseoperator= (const CompilerInvocationBase &X)=delete
CompilerInvocationBasedeep_copy_assign (const CompilerInvocationBase &X)
CompilerInvocationBaseshallow_copy_assign (const CompilerInvocationBase &X)
CompilerInvocationBaseoperator= (CompilerInvocationBase &&X)=default
 ~CompilerInvocationBase ()=default
Protected Attributes inherited from clang::CompilerInvocationBase
std::shared_ptr< LangOptionsLangOpts
 Options controlling the language variant.
std::shared_ptr< TargetOptionsTargetOpts
 Options controlling the target.
std::shared_ptr< DiagnosticOptionsDiagnosticOpts
 Options controlling the diagnostic engine.
std::shared_ptr< HeaderSearchOptionsHSOpts
 Options controlling the #include directive.
std::shared_ptr< PreprocessorOptionsPPOpts
 Options controlling the preprocessor (aside from #include handling).
std::shared_ptr< AnalyzerOptionsAnalyzerOpts
 Options controlling the static analyzer.
std::shared_ptr< MigratorOptionsMigratorOpts
std::shared_ptr< APINotesOptionsAPINotesOpts
 Options controlling API notes.
std::shared_ptr< CodeGenOptionsCodeGenOpts
 Options controlling IRgen and the backend.
std::shared_ptr< FileSystemOptionsFSOpts
 Options controlling file system operations.
std::shared_ptr< FrontendOptionsFrontendOpts
 Options controlling the frontend itself.
std::shared_ptr< DependencyOutputOptionsDependencyOutputOpts
 Options controlling dependency output.
std::shared_ptr< PreprocessorOutputOptionsPreprocessorOutputOpts
 Options controlling preprocessed output.

Detailed Description

Same as CompilerInvocation, but with copy-on-write optimization.

Definition at line 346 of file CompilerInvocation.h.

Constructor & Destructor Documentation

◆ CowCompilerInvocation() [1/5]

clang::CowCompilerInvocation::CowCompilerInvocation ( )
default

◆ CowCompilerInvocation() [2/5]

clang::CowCompilerInvocation::CowCompilerInvocation ( const CowCompilerInvocation & X)
inline

◆ CowCompilerInvocation() [3/5]

clang::CowCompilerInvocation::CowCompilerInvocation ( CowCompilerInvocation && )
default

◆ ~CowCompilerInvocation()

clang::CowCompilerInvocation::~CowCompilerInvocation ( )
default

◆ CowCompilerInvocation() [4/5]

clang::CowCompilerInvocation::CowCompilerInvocation ( const CompilerInvocation & X)
inline

◆ CowCompilerInvocation() [5/5]

clang::CowCompilerInvocation::CowCompilerInvocation ( CompilerInvocation && X)
inline

Member Function Documentation

◆ getMutAnalyzerOpts()

AnalyzerOptions & CowCompilerInvocation::getMutAnalyzerOpts ( )

◆ getMutAPINotesOpts()

APINotesOptions & CowCompilerInvocation::getMutAPINotesOpts ( )

◆ getMutCodeGenOpts()

CodeGenOptions & CowCompilerInvocation::getMutCodeGenOpts ( )

Definition at line 230 of file CompilerInvocation.cpp.

References clang::CompilerInvocationBase::CodeGenOpts, and ensureOwned().

Referenced by optimizeCWD().

◆ getMutDependencyOutputOpts()

DependencyOutputOptions & CowCompilerInvocation::getMutDependencyOutputOpts ( )

◆ getMutDiagnosticOpts()

DiagnosticOptions & CowCompilerInvocation::getMutDiagnosticOpts ( )

◆ getMutFileSystemOpts()

FileSystemOptions & CowCompilerInvocation::getMutFileSystemOpts ( )

Definition at line 234 of file CompilerInvocation.cpp.

References ensureOwned(), and clang::CompilerInvocationBase::FSOpts.

Referenced by optimizeCWD().

◆ getMutFrontendOpts()

FrontendOptions & CowCompilerInvocation::getMutFrontendOpts ( )

◆ getMutHeaderSearchOpts()

HeaderSearchOptions & CowCompilerInvocation::getMutHeaderSearchOpts ( )

Definition at line 210 of file CompilerInvocation.cpp.

References ensureOwned(), and clang::CompilerInvocationBase::HSOpts.

◆ getMutLangOpts()

LangOptions & CowCompilerInvocation::getMutLangOpts ( )

Mutable getters.

Definition at line 198 of file CompilerInvocation.cpp.

References ensureOwned(), and clang::CompilerInvocationBase::LangOpts.

◆ getMutMigratorOpts()

MigratorOptions & CowCompilerInvocation::getMutMigratorOpts ( )

◆ getMutPreprocessorOpts()

PreprocessorOptions & CowCompilerInvocation::getMutPreprocessorOpts ( )

Definition at line 214 of file CompilerInvocation.cpp.

References ensureOwned(), and clang::CompilerInvocationBase::PPOpts.

◆ getMutPreprocessorOutputOpts()

PreprocessorOutputOptions & CowCompilerInvocation::getMutPreprocessorOutputOpts ( )

◆ getMutTargetOpts()

TargetOptions & CowCompilerInvocation::getMutTargetOpts ( )

◆ operator=()

CowCompilerInvocation & clang::CowCompilerInvocation::operator= ( const CowCompilerInvocation & X)
inline

The documentation for this class was generated from the following files: