LLVM  16.0.0git
Public Member Functions | List of all members
llvm::CGSCCAnalysisManagerModuleProxy::Result Class Reference

We need a specialized result for the CGSCCAnalysisManagerModuleProxy so it can have access to the call graph in order to walk all the SCCs when invalidating things. More...

#include "llvm/Analysis/CGSCCPassManager.h"

Public Member Functions

 Result (CGSCCAnalysisManager &InnerAM, LazyCallGraph &G)
 
CGSCCAnalysisManagergetManager ()
 Accessor for the analysis manager. More...
 
bool invalidate (Module &M, const PreservedAnalyses &PA, ModuleAnalysisManager::Invalidator &Inv)
 Handler for invalidation of the Module. More...
 

Detailed Description

We need a specialized result for the CGSCCAnalysisManagerModuleProxy so it can have access to the call graph in order to walk all the SCCs when invalidating things.

Definition at line 173 of file CGSCCPassManager.h.

Constructor & Destructor Documentation

◆ Result()

Definition at line 175 of file CGSCCPassManager.h.

Member Function Documentation

◆ getManager()

CGSCCAnalysisManager& llvm::CGSCCAnalysisManagerModuleProxy::Result::getManager ( )
inline

Accessor for the analysis manager.

Definition at line 179 of file CGSCCPassManager.h.

◆ invalidate()

bool llvm::CGSCCAnalysisManagerModuleProxy::Result::invalidate ( Module M,
const PreservedAnalyses PA,
ModuleAnalysisManager::Invalidator Inv 
)

Handler for invalidation of the Module.

If the proxy analysis itself is preserved, then we assume that the set of SCCs in the Module hasn't changed. Thus any pointers to SCCs in the CGSCCAnalysisManager are still valid, and we don't need to call clear on the CGSCCAnalysisManager.

Regardless of whether this analysis is marked as preserved, all of the analyses in the CGSCCAnalysisManager are potentially invalidated based on the set of preserved analyses.

Definition at line 580 of file CGSCCPassManager.cpp.

References llvm::PreservedAnalyses::abandon(), llvm::PreservedAnalyses::allAnalysesInSetPreserved(), llvm::PreservedAnalyses::areAllPreserved(), G, llvm::PreservedAnalyses::getChecker(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::Invalidator::invalidate(), and M.


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