LLVM API Documentation
A module analysis which acts as a proxy for a CGSCC analysis manager. More...
#include <CGSCCPassManager.h>
Classes | |
class | Result |
Public Member Functions | |
CGSCCAnalysisManagerModuleProxy (CGSCCAnalysisManager &CGAM) | |
CGSCCAnalysisManagerModuleProxy (const CGSCCAnalysisManagerModuleProxy &Arg) | |
CGSCCAnalysisManagerModuleProxy (CGSCCAnalysisManagerModuleProxy &&Arg) | |
CGSCCAnalysisManagerModuleProxy & | operator= (CGSCCAnalysisManagerModuleProxy RHS) |
Result | run (Module *M) |
Run the analysis pass and create our proxy result object. | |
Static Public Member Functions | |
static void * | ID () |
A module analysis which acts as a proxy for a CGSCC analysis manager.
This primarily proxies invalidation information from the module analysis manager and module pass manager to a CGSCC analysis manager. You should never use a CGSCC analysis manager from within (transitively) a module pass manager unless your parent module pass has received a proxy result object for it.
Definition at line 162 of file CGSCCPassManager.h.
llvm::CGSCCAnalysisManagerModuleProxy::CGSCCAnalysisManagerModuleProxy | ( | CGSCCAnalysisManager & | CGAM | ) | [inline, explicit] |
Definition at line 198 of file CGSCCPassManager.h.
llvm::CGSCCAnalysisManagerModuleProxy::CGSCCAnalysisManagerModuleProxy | ( | const CGSCCAnalysisManagerModuleProxy & | Arg | ) | [inline] |
Definition at line 202 of file CGSCCPassManager.h.
llvm::CGSCCAnalysisManagerModuleProxy::CGSCCAnalysisManagerModuleProxy | ( | CGSCCAnalysisManagerModuleProxy && | Arg | ) | [inline] |
Definition at line 205 of file CGSCCPassManager.h.
static void* llvm::CGSCCAnalysisManagerModuleProxy::ID | ( | ) | [inline, static] |
Definition at line 196 of file CGSCCPassManager.h.
Referenced by llvm::CGSCCAnalysisManagerModuleProxy::Result::invalidate(), and llvm::FunctionAnalysisManagerCGSCCProxy::Result::invalidate().
CGSCCAnalysisManagerModuleProxy& llvm::CGSCCAnalysisManagerModuleProxy::operator= | ( | CGSCCAnalysisManagerModuleProxy | RHS | ) | [inline] |
Definition at line 208 of file CGSCCPassManager.h.
References std::swap().
Run the analysis pass and create our proxy result object.
This doesn't do any interesting work, it is primarily used to insert our proxy result object into the module analysis cache so that we can proxy invalidation to the CGSCC analysis manager.
In debug builds, it will also assert that the analysis manager is empty as no queries should arrive at the CGSCC analysis manager prior to this analysis being requested.
Definition at line 114 of file CGSCCPassManager.cpp.
References llvm::CGSCCAnalysisManager::empty().