clang: clang::BackendConsumer Class Reference (original) (raw)
#include "[/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/BackendConsumer.h](BackendConsumer%5F8h%5Fsource.html)"
Public Member Functions | |
---|---|
BackendConsumer (CompilerInstance &CI, BackendAction Action, IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS, llvm::LLVMContext &C, SmallVector< LinkModule, 4 > LinkModules, StringRef InFile, std::unique_ptr< raw_pwrite_stream > OS, CoverageSourceInfo *CoverageInfo, llvm::Module *CurLinkModule=nullptr) | |
llvm::Module * | getModule () const |
std::unique_ptr< llvm::Module > | takeModule () |
CodeGenerator * | getCodeGenerator () |
void | HandleCXXStaticMemberVarInstantiation (VarDecl *VD) override |
HandleCXXStaticMemberVarInstantiation - Tell the consumer that this. | |
void | Initialize (ASTContext &Ctx) override |
Initialize - This is called to initialize the consumer, providing the ASTContext. | |
bool | HandleTopLevelDecl (DeclGroupRef D) override |
HandleTopLevelDecl - Handle the specified top-level declaration. | |
void | HandleInlineFunctionDefinition (FunctionDecl *D) override |
This callback is invoked each time an inline (method or friend) function definition in a class is completed. | |
void | HandleInterestingDecl (DeclGroupRef D) override |
HandleInterestingDecl - Handle the specified interesting declaration. | |
void | HandleTranslationUnit (ASTContext &C) override |
HandleTranslationUnit - This method is called when the ASTs for entire translation unit have been parsed. | |
void | HandleTagDeclDefinition (TagDecl *D) override |
HandleTagDeclDefinition - This callback is invoked each time a TagDecl (e.g. | |
void | HandleTagDeclRequiredDefinition (const TagDecl *D) override |
This callback is invoked the first time each TagDecl is required to be complete. | |
void | CompleteTentativeDefinition (VarDecl *D) override |
CompleteTentativeDefinition - Callback invoked at the end of a translation unit to notify the consumer that the given tentative definition should be completed. | |
void | CompleteExternalDeclaration (DeclaratorDecl *D) override |
CompleteExternalDeclaration - Callback invoked at the end of a translation unit to notify the consumer that the given external declaration should be completed. | |
void | AssignInheritanceModel (CXXRecordDecl *RD) override |
Callback invoked when an MSInheritanceAttr has been attached to a CXXRecordDecl. | |
void | HandleVTable (CXXRecordDecl *RD) override |
Callback involved at the end of a translation unit to notify the consumer that a vtable for the given C++ class is required. | |
bool | LinkInModules (llvm::Module *M) |
const FullSourceLoc | getBestLocationFromDebugLoc (const llvm::DiagnosticInfoWithLocationBase &D, bool &BadDebugInfo, StringRef &Filename, unsigned &Line, unsigned &Column) const |
Get the best possible source location to represent a diagnostic that may have associated debug info. | |
std::optional< FullSourceLoc > | getFunctionSourceLocation (const llvm::Function &F) const |
void | DiagnosticHandlerImpl (const llvm::DiagnosticInfo &DI) |
This function is invoked when the backend needs to report something to the user. | |
bool | InlineAsmDiagHandler (const llvm::DiagnosticInfoInlineAsm &D) |
Specialized handler for InlineAsm diagnostic. | |
void | SrcMgrDiagHandler (const llvm::DiagnosticInfoSrcMgr &D) |
Specialized handler for diagnostics reported using SMDiagnostic. | |
bool | StackSizeDiagHandler (const llvm::DiagnosticInfoStackSize &D) |
Specialized handler for StackSize diagnostic. | |
bool | ResourceLimitDiagHandler (const llvm::DiagnosticInfoResourceLimit &D) |
Specialized handler for ResourceLimit diagnostic. | |
void | UnsupportedDiagHandler (const llvm::DiagnosticInfoUnsupported &D) |
Specialized handler for unsupported backend feature diagnostic. | |
void | EmitOptimizationMessage (const llvm::DiagnosticInfoOptimizationBase &D, unsigned DiagID) |
Specialized handlers for optimization remarks. | |
void | OptimizationRemarkHandler (const llvm::DiagnosticInfoOptimizationBase &D) |
void | OptimizationRemarkHandler (const llvm::OptimizationRemarkAnalysisFPCommute &D) |
void | OptimizationRemarkHandler (const llvm::OptimizationRemarkAnalysisAliasing &D) |
void | OptimizationFailureHandler (const llvm::DiagnosticInfoOptimizationFailure &D) |
void | DontCallDiagHandler (const llvm::DiagnosticInfoDontCall &D) |
void | MisExpectDiagHandler (const llvm::DiagnosticInfoMisExpect &D) |
Specialized handler for misexpect warnings. | |
![]() |
|
ASTConsumer ()=default | |
virtual | ~ASTConsumer () |
virtual void | Initialize (ASTContext &Context) |
Initialize - This is called to initialize the consumer, providing the ASTContext. | |
virtual bool | HandleTopLevelDecl (DeclGroupRef D) |
HandleTopLevelDecl - Handle the specified top-level declaration. | |
virtual void | HandleInlineFunctionDefinition (FunctionDecl *D) |
This callback is invoked each time an inline (method or friend) function definition in a class is completed. | |
virtual void | HandleInterestingDecl (DeclGroupRef D) |
HandleInterestingDecl - Handle the specified interesting declaration. | |
virtual void | HandleTranslationUnit (ASTContext &Ctx) |
HandleTranslationUnit - This method is called when the ASTs for entire translation unit have been parsed. | |
virtual void | HandleTagDeclDefinition (TagDecl *D) |
HandleTagDeclDefinition - This callback is invoked each time a TagDecl (e.g. | |
virtual void | HandleTagDeclRequiredDefinition (const TagDecl *D) |
This callback is invoked the first time each TagDecl is required to be complete. | |
virtual void | HandleCXXImplicitFunctionInstantiation (FunctionDecl *D) |
Invoked when a function is implicitly instantiated. | |
virtual void | HandleTopLevelDeclInObjCContainer (DeclGroupRef D) |
Handle the specified top-level declaration that occurred inside and ObjC container. | |
virtual void | HandleImplicitImportDecl (ImportDecl *D) |
Handle an ImportDecl that was implicitly created due to an inclusion directive. | |
virtual void | CompleteTentativeDefinition (VarDecl *D) |
CompleteTentativeDefinition - Callback invoked at the end of a translation unit to notify the consumer that the given tentative definition should be completed. | |
virtual void | CompleteExternalDeclaration (DeclaratorDecl *D) |
CompleteExternalDeclaration - Callback invoked at the end of a translation unit to notify the consumer that the given external declaration should be completed. | |
virtual void | AssignInheritanceModel (CXXRecordDecl *RD) |
Callback invoked when an MSInheritanceAttr has been attached to a CXXRecordDecl. | |
virtual void | HandleCXXStaticMemberVarInstantiation (VarDecl *D) |
HandleCXXStaticMemberVarInstantiation - Tell the consumer that this. | |
virtual void | HandleVTable (CXXRecordDecl *RD) |
Callback involved at the end of a translation unit to notify the consumer that a vtable for the given C++ class is required. | |
virtual ASTMutationListener * | GetASTMutationListener () |
If the consumer is interested in entities getting modified after their initial creation, it should return a pointer to an ASTMutationListener here. | |
virtual ASTDeserializationListener * | GetASTDeserializationListener () |
If the consumer is interested in entities being deserialized from AST files, it should return a pointer to a ASTDeserializationListener here. | |
virtual void | PrintStats () |
PrintStats - If desired, print any statistics. | |
virtual bool | shouldSkipFunctionBody (Decl *D) |
This callback is called for each function if the Parser was initialized with SkipFunctionBodies set to true. | |
Definition at line 27 of file BackendConsumer.h.
◆ AssignInheritanceModel()
void clang::BackendConsumer::AssignInheritanceModel ( CXXRecordDecl * RD) | overridevirtual |
---|
◆ CompleteExternalDeclaration()
void clang::BackendConsumer::CompleteExternalDeclaration ( DeclaratorDecl * D) | overridevirtual |
---|
CompleteExternalDeclaration - Callback invoked at the end of a translation unit to notify the consumer that the given external declaration should be completed.
Reimplemented from clang::ASTConsumer.
Definition at line 339 of file CodeGenAction.cpp.
References D.
◆ CompleteTentativeDefinition()
void clang::BackendConsumer::CompleteTentativeDefinition ( VarDecl * D) | overridevirtual |
---|
CompleteTentativeDefinition - Callback invoked at the end of a translation unit to notify the consumer that the given tentative definition should be completed.
The variable declaration itself will be a tentative definition. If it had an incomplete array type, its type will have already been changed to an array of size 1. However, the declaration remains a tentative definition and has not been modified by the introduction of an implicit zero initializer.
Reimplemented from clang::ASTConsumer.
Definition at line 335 of file CodeGenAction.cpp.
References D.
◆ DiagnosticHandlerImpl()
void BackendConsumer::DiagnosticHandlerImpl | ( | const llvm::DiagnosticInfo & | DI | ) |
---|
This function is invoked when the backend needs to report something to the user.
Definition at line 762 of file CodeGenAction.cpp.
References clang::StreamingDiagnostic::AddString(), ComputeDiagID, ComputeDiagRemarkID, DontCallDiagHandler(), InlineAsmDiagHandler(), Loc, MisExpectDiagHandler(), OptimizationFailureHandler(), OptimizationRemarkHandler(), clang::DiagnosticsEngine::Report(), ResourceLimitDiagHandler(), SrcMgrDiagHandler(), StackSizeDiagHandler(), and UnsupportedDiagHandler().
Referenced by clang::ClangDiagnosticHandler::handleDiagnostics().
◆ DontCallDiagHandler()
void BackendConsumer::DontCallDiagHandler | ( | const llvm::DiagnosticInfoDontCall & | D | ) |
---|
◆ EmitOptimizationMessage()
void BackendConsumer::EmitOptimizationMessage | ( | const llvm::DiagnosticInfoOptimizationBase & | D, |
---|---|---|---|
unsigned | DiagID | ||
) |
◆ getBestLocationFromDebugLoc()
const FullSourceLoc BackendConsumer::getBestLocationFromDebugLoc | ( | const llvm::DiagnosticInfoWithLocationBase & | D, |
---|---|---|---|
bool & | BadDebugInfo, | ||
StringRef & | Filename, | ||
unsigned & | Line, | ||
unsigned & | Column | ||
) | const |
Get the best possible source location to represent a diagnostic that may have associated debug info.
Definition at line 539 of file CodeGenAction.cpp.
References clang::Column, D, Filename, clang::SourceManager::getFileManager(), getFunctionSourceLocation(), clang::Decl::getLocation(), clang::FileManager::getOptionalFileRef(), clang::ASTContext::getSourceManager(), clang::SourceLocation::isInvalid(), clang::Line, Loc, clang::DiagnosticsEngine::Report(), and clang::SourceManager::translateFileLineCol().
Referenced by EmitOptimizationMessage(), MisExpectDiagHandler(), and UnsupportedDiagHandler().
◆ getCodeGenerator()
◆ getFunctionSourceLocation()
std::optional< FullSourceLoc > BackendConsumer::getFunctionSourceLocation | ( | const llvm::Function & | F | ) | const |
---|
◆ getModule()
llvm::Module * clang::BackendConsumer::getModule | ( | ) | const |
---|
◆ HandleCXXStaticMemberVarInstantiation()
void clang::BackendConsumer::HandleCXXStaticMemberVarInstantiation ( VarDecl * D) | overridevirtual |
---|
◆ HandleInlineFunctionDefinition()
void clang::BackendConsumer::HandleInlineFunctionDefinition ( FunctionDecl * D) | overridevirtual |
---|
◆ HandleInterestingDecl()
void clang::BackendConsumer::HandleInterestingDecl ( DeclGroupRef D) | overridevirtual |
---|
HandleInterestingDecl - Handle the specified interesting declaration.
This is called by the AST reader when deserializing things that might interest the consumer. The default implementation forwards to HandleTopLevelDecl.
Reimplemented from clang::ASTConsumer.
Definition at line 190 of file CodeGenAction.cpp.
References D, and HandleTopLevelDecl().
◆ HandleTagDeclDefinition()
void clang::BackendConsumer::HandleTagDeclDefinition ( TagDecl * D) | overridevirtual |
---|
◆ HandleTagDeclRequiredDefinition()
void clang::BackendConsumer::HandleTagDeclRequiredDefinition ( const TagDecl * D) | overridevirtual |
---|
◆ HandleTopLevelDecl()
bool clang::BackendConsumer::HandleTopLevelDecl ( DeclGroupRef D) | overridevirtual |
---|
◆ HandleTranslationUnit()
void clang::BackendConsumer::HandleTranslationUnit ( ASTContext & Ctx) | overridevirtual |
---|
HandleTranslationUnit - This method is called when the ASTs for entire translation unit have been parsed.
Reimplemented from clang::ASTConsumer.
Definition at line 233 of file CodeGenAction.cpp.
References clang::C, clang::TargetOptions::CPU, clang::CodeGenOptions::DiagnosticsHotnessThreshold, clang::CodeGenOptions::DiagnosticsMisExpectTolerance, E, clang::EmbedBitcode(), clang::emitBackendOutput(), clang::TargetOptions::Features, clang::CompilerInstance::getFrontendTimer(), getModule(), llvm::hash_value(), LinkInModules(), Loc, clang::CodeGenOptions::OptRecordFile, clang::CodeGenOptions::OptRecordFormat, clang::CodeGenOptions::OptRecordPasses, clang::CodeGenOptions::ProfileNone, and clang::reportOptRecordError().
◆ HandleVTable()
void clang::BackendConsumer::HandleVTable ( CXXRecordDecl * RD) | overridevirtual |
---|
Callback involved at the end of a translation unit to notify the consumer that a vtable for the given C++ class is required.
Parameters
RD | The class whose vtable was used. |
---|
Reimplemented from clang::ASTConsumer.
Definition at line 347 of file CodeGenAction.cpp.
◆ Initialize()
void clang::BackendConsumer::Initialize ( ASTContext & Context) | overridevirtual |
---|
◆ InlineAsmDiagHandler()
bool BackendConsumer::InlineAsmDiagHandler | ( | const llvm::DiagnosticInfoInlineAsm & | D | ) |
---|
◆ LinkInModules()
bool clang::BackendConsumer::LinkInModules | ( | llvm::Module * | M | ) |
---|
◆ MisExpectDiagHandler()
void BackendConsumer::MisExpectDiagHandler | ( | const llvm::DiagnosticInfoMisExpect & | D | ) |
---|
◆ OptimizationFailureHandler()
void BackendConsumer::OptimizationFailureHandler | ( | const llvm::DiagnosticInfoOptimizationFailure & | D | ) |
---|
◆ OptimizationRemarkHandler() [1/3]
void BackendConsumer::OptimizationRemarkHandler | ( | const llvm::DiagnosticInfoOptimizationBase & | D | ) |
---|
◆ OptimizationRemarkHandler() [2/3]
void BackendConsumer::OptimizationRemarkHandler | ( | const llvm::OptimizationRemarkAnalysisAliasing & | D | ) |
---|
◆ OptimizationRemarkHandler() [3/3]
void BackendConsumer::OptimizationRemarkHandler | ( | const llvm::OptimizationRemarkAnalysisFPCommute & | D | ) |
---|
◆ ResourceLimitDiagHandler()
bool BackendConsumer::ResourceLimitDiagHandler | ( | const llvm::DiagnosticInfoResourceLimit & | D | ) |
---|
◆ SrcMgrDiagHandler()
void BackendConsumer::SrcMgrDiagHandler | ( | const llvm::DiagnosticInfoSrcMgr & | D | ) |
---|
Specialized handler for diagnostics reported using SMDiagnostic.
Definition at line 425 of file CodeGenAction.cpp.
References clang::StreamingDiagnostic::AddString(), clang::Column, ComputeDiagID, ConvertBackendLocation(), D, clang::SourceLocation::getFromRawEncoding(), clang::SourceLocation::getLocWithOffset(), clang::ASTContext::getSourceManager(), clang::SourceLocation::isValid(), Loc, clang::Decl::print(), Range, and clang::DiagnosticsEngine::Report().
Referenced by DiagnosticHandlerImpl().
◆ StackSizeDiagHandler()
bool BackendConsumer::StackSizeDiagHandler | ( | const llvm::DiagnosticInfoStackSize & | D | ) |
---|
◆ takeModule()
std::unique_ptr< llvm::Module > clang::BackendConsumer::takeModule | ( | ) |
---|
◆ UnsupportedDiagHandler()
void BackendConsumer::UnsupportedDiagHandler | ( | const llvm::DiagnosticInfoUnsupported & | D | ) |
---|
The documentation for this class was generated from the following files:
- lib/CodeGen/BackendConsumer.h
- lib/CodeGen/CodeGenAction.cpp