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.
- Public Member Functions inherited from clang::ASTConsumer
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: