LLVM  6.0.0svn
Classes | Namespaces | Macros | Functions
PassSupport.h File Reference
#include "Pass.h"
#include "llvm/InitializePasses.h"
#include "llvm/PassInfo.h"
#include "llvm/PassRegistry.h"
#include "llvm/Support/Atomic.h"
#include "llvm/Support/Threading.h"
#include <functional>
Include dependency graph for PassSupport.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::RegisterPass< passName >
 RegisterPass<t> template - This template class is used to notify the system that a Pass is available for use, and registers it into the internal database maintained by the PassManager. More...
 
class  llvm::RegisterAGBase
 RegisterAnalysisGroup - Register a Pass as a member of an analysis group. More...
 
struct  llvm::RegisterAnalysisGroup< Interface, Default >
 
struct  llvm::PassRegistrationListener
 PassRegistrationListener class - This class is meant to be derived from by clients that are interested in which passes get registered and unregistered at runtime (which can be because of the RegisterPass constructors being run as the program starts up, or may be because a shared object just got loaded). More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
 
#define INITIALIZE_PASS_BEGIN(passName, arg, name, cfg, analysis)   static void *initialize##passName##PassOnce(PassRegistry &Registry) {
 
#define INITIALIZE_PASS_DEPENDENCY(depName)   initialize##depName##Pass(Registry);
 
#define INITIALIZE_AG_DEPENDENCY(depName)   initialize##depName##AnalysisGroup(Registry);
 
#define INITIALIZE_PASS_END(passName, arg, name, cfg, analysis)
 
#define INITIALIZE_PASS_WITH_OPTIONS(PassName, Arg, Name, Cfg, Analysis)
 
#define INITIALIZE_PASS_WITH_OPTIONS_BEGIN(PassName, Arg, Name, Cfg, Analysis)
 
#define INITIALIZE_ANALYSIS_GROUP(agName, name, defaultPass)
 
#define INITIALIZE_AG_PASS(passName, agName, arg, name, cfg, analysis, def)
 
#define INITIALIZE_AG_PASS_BEGIN(passName, agName, arg, n, cfg, analysis, def)
 
#define INITIALIZE_AG_PASS_END(passName, agName, arg, n, cfg, analysis, def)
 

Functions

template<typename PassName >
Passllvm::callDefaultCtor ()
 

Macro Definition Documentation

◆ INITIALIZE_AG_DEPENDENCY

#define INITIALIZE_AG_DEPENDENCY (   depName)    initialize##depName##AnalysisGroup(Registry);

Definition at line 52 of file PassSupport.h.

◆ INITIALIZE_AG_PASS

#define INITIALIZE_AG_PASS (   passName,
  agName,
  arg,
  name,
  cfg,
  analysis,
  def 
)
Value:
static void *initialize##passName##PassOnce(PassRegistry &Registry) { \
if (!def) \
initialize##agName##AnalysisGroup(Registry); \
PassInfo *PI = new PassInfo( \
name, arg, &passName::ID, \
PassInfo::NormalCtor_t(callDefaultCtor<passName>), cfg, analysis); \
Registry.registerPass(*PI, true); \
\
PassInfo *AI = new PassInfo(name, &agName::ID); \
Registry.registerAnalysisGroup(&agName::ID, &passName::ID, *AI, def, \
true); \
return AI; \
} \
static llvm::once_flag Initialize##passName##PassFlag; \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
llvm::call_once(Initialize##passName##PassFlag, \
initialize##passName##PassOnce, std::ref(Registry)); \
}
void call_once(once_flag &flag, Function &&F, Args &&... ArgList)
Execute the function specified as a parameter once.
Definition: Threading.h:99
std::once_flag once_flag
Definition: Threading.h:69
demanded Demanded bits analysis
print lazy value Lazy Value Info Printer Pass
static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringRef > StandardNames)
initialize - Initialize the set of available library functions based on the specified target triple...
static const char * name

Definition at line 152 of file PassSupport.h.

◆ INITIALIZE_AG_PASS_BEGIN

#define INITIALIZE_AG_PASS_BEGIN (   passName,
  agName,
  arg,
  n,
  cfg,
  analysis,
  def 
)
Value:
static void *initialize##passName##PassOnce(PassRegistry &Registry) { \
if (!def) \
initialize##agName##AnalysisGroup(Registry);
static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringRef > StandardNames)
initialize - Initialize the set of available library functions based on the specified target triple...

Definition at line 172 of file PassSupport.h.

◆ INITIALIZE_AG_PASS_END

#define INITIALIZE_AG_PASS_END (   passName,
  agName,
  arg,
  n,
  cfg,
  analysis,
  def 
)
Value:
PassInfo *PI = new PassInfo( \
n, arg, &passName::ID, \
PassInfo::NormalCtor_t(callDefaultCtor<passName>), cfg, analysis); \
Registry.registerPass(*PI, true); \
\
PassInfo *AI = new PassInfo(n, &agName::ID); \
Registry.registerAnalysisGroup(&agName::ID, &passName::ID, *AI, def, true); \
return AI; \
} \
static llvm::once_flag Initialize##passName##PassFlag; \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
llvm::call_once(Initialize##passName##PassFlag, \
initialize##passName##PassOnce, std::ref(Registry)); \
}
void call_once(once_flag &flag, Function &&F, Args &&... ArgList)
Execute the function specified as a parameter once.
Definition: Threading.h:99
std::once_flag once_flag
Definition: Threading.h:69
demanded Demanded bits analysis
print lazy value Lazy Value Info Printer Pass
static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringRef > StandardNames)
initialize - Initialize the set of available library functions based on the specified target triple...

Definition at line 177 of file PassSupport.h.

◆ INITIALIZE_ANALYSIS_GROUP

#define INITIALIZE_ANALYSIS_GROUP (   agName,
  name,
  defaultPass 
)
Value:
static void *initialize##agName##AnalysisGroupOnce(PassRegistry &Registry) { \
initialize##defaultPass##Pass(Registry); \
PassInfo *AI = new PassInfo(name, &agName::ID); \
Registry.registerAnalysisGroup(&agName::ID, 0, *AI, false, true); \
return AI; \
} \
static llvm::once_flag Initialize##agName##AnalysisGroupFlag; \
void llvm::initialize##agName##AnalysisGroup(PassRegistry &Registry) { \
llvm::call_once(Initialize##agName##AnalysisGroupFlag, \
initialize##agName##AnalysisGroupOnce, \
std::ref(Registry)); \
}
void call_once(once_flag &flag, Function &&F, Args &&... ArgList)
Execute the function specified as a parameter once.
Definition: Threading.h:99
std::once_flag once_flag
Definition: Threading.h:69
print lazy value Lazy Value Info Printer Pass
static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringRef > StandardNames)
initialize - Initialize the set of available library functions based on the specified target triple...
static const char * name

Definition at line 138 of file PassSupport.h.

◆ INITIALIZE_PASS

#define INITIALIZE_PASS (   passName,
  arg,
  name,
  cfg,
  analysis 
)
Value:
static void *initialize##passName##PassOnce(PassRegistry &Registry) { \
PassInfo *PI = new PassInfo( \
name, arg, &passName::ID, \
PassInfo::NormalCtor_t(callDefaultCtor<passName>), cfg, analysis); \
Registry.registerPass(*PI, true); \
return PI; \
} \
static llvm::once_flag Initialize##passName##PassFlag; \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
llvm::call_once(Initialize##passName##PassFlag, \
initialize##passName##PassOnce, std::ref(Registry)); \
}
void call_once(once_flag &flag, Function &&F, Args &&... ArgList)
Execute the function specified as a parameter once.
Definition: Threading.h:99
std::once_flag once_flag
Definition: Threading.h:69
demanded Demanded bits analysis
print lazy value Lazy Value Info Printer Pass
static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringRef > StandardNames)
initialize - Initialize the set of available library functions based on the specified target triple...
static const char * name

Definition at line 34 of file PassSupport.h.

Referenced by llvm::createARMConstantIslandPass(), llvm::createBarrierNoopPass(), overridePass(), llvm::TargetIRAnalysis::run(), llvm::CallGraphWrapperPass::runOnModule(), llvm::scavengeFrameVirtualRegs(), llvm::LoopPass::skipLoop(), llvm::CallGraphSCCPass::skipSCC(), llvm::TargetLibraryInfoWrapperPass::TargetLibraryInfoWrapperPass(), llvm::TBAAVerifier::visitTBAAMetadata(), and llvm::AssumptionCacheTracker::~AssumptionCacheTracker().

◆ INITIALIZE_PASS_BEGIN

#define INITIALIZE_PASS_BEGIN (   passName,
  arg,
  name,
  cfg,
  analysis 
)    static void *initialize##passName##PassOnce(PassRegistry &Registry) {

Definition at line 48 of file PassSupport.h.

Referenced by llvm::createGVNPass(), llvm::SinkingPass::run(), and tryToUnrollLoop().

◆ INITIALIZE_PASS_DEPENDENCY

#define INITIALIZE_PASS_DEPENDENCY (   depName)    initialize##depName##Pass(Registry);

Definition at line 51 of file PassSupport.h.

Referenced by llvm::AAResultsWrapperPass::AAResultsWrapperPass(), llvm::addStringMetadataToLoop(), llvm::BasicAAWrapperPass::BasicAAWrapperPass(), checkRegOnlyPHIInputs(), llvm::createEarlyCSEPass(), llvm::createFalkorMarkStridedAccessesPass(), llvm::createGVNPass(), llvm::createHexagonGenInsert(), llvm::createMemCpyOptPass(), llvm::createMergedLoadStoreMotionPass(), llvm::createPAEvalPass(), llvm::createPGOInstrumentationGenLegacyPass(), llvm::createPlaceSafepointsPass(), llvm::createPPCCTRLoops(), llvm::createRewriteStatepointsForGCPass(), llvm::createSROAPass(), llvm::AAEvalLegacyPass::doFinalization(), llvm::CallGraphWrapperPass::dump(), llvm::AliasSetTracker::dump(), llvm::RegionInfoPass::dump(), eliminateTailRecursion(), findRetainForStoreStrongContraction(), formLCSSAOnAllLoops(), llvm::DOTGraphTraits< MachineBlockFrequencyInfo * >::getEdgeAttributes(), getStoreTarget(), hasProfileData(), hasUnsafeFPMath(), llvm::initializeLazyBFIPassPass(), llvm::initializeLazyBPIPassPass(), llvm::initializeLoopPassPass(), llvm::DenseMapInfo< VTableSlot >::isEqual(), moveBBContents(), parseCond(), patchAndReplaceAllUsesWith(), llvm::BlockFrequencyInfo::print(), llvm::printLoop(), llvm::LazyValueInfo::printLVI(), replaceDevirtTrigger(), llvm::PromotePass::run(), llvm::ArgumentPromotionPass::run(), llvm::PartiallyInlineLibCallsPass::run(), llvm::SinkingPass::run(), llvm::IndVarSimplifyPass::run(), llvm::LoopInstSimplifyPass::run(), llvm::GlobalOptPass::run(), llvm::BDCEPass::run(), llvm::InferFunctionAttrsPass::run(), llvm::GuardWideningPass::run(), llvm::LoopRotatePass::run(), llvm::LoopIdiomRecognizePass::run(), llvm::LoopSimplifyCFGPass::run(), llvm::LoopDeletionPass::run(), llvm::DSEPass::run(), llvm::AlwaysInlinerPass::run(), llvm::IPSCCPPass::run(), llvm::SCCPPass::run(), llvm::ADCEPass::run(), llvm::LoopStrengthReducePass::run(), llvm::InstrProfiling::run(), llvm::SimplifyCFGPass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::LICMPass::run(), llvm::PostOrderFunctionAttrsPass::run(), llvm::ModuleSummaryIndexAnalysis::run(), llvm::SCEVAA::run(), llvm::BitcodeWriterPass::run(), llvm::GlobalsAA::run(), llvm::IVUsersAnalysis::run(), llvm::GVNHoistPass::run(), llvm::GVNSinkPass::run(), llvm::MemoryDependenceAnalysis::run(), llvm::DependenceAnalysis::run(), llvm::ScalarEvolutionPrinterPass::run(), runImpl(), llvm::InstructionCombiningPass::runOnFunction(), shouldInstrumentBlock(), llvm::simplifyLoop(), SortCallTargets(), and tryToUnrollLoop().

◆ INITIALIZE_PASS_END

#define INITIALIZE_PASS_END (   passName,
  arg,
  name,
  cfg,
  analysis 
)
Value:
PassInfo *PI = new PassInfo( \
name, arg, &passName::ID, \
PassInfo::NormalCtor_t(callDefaultCtor<passName>), cfg, analysis); \
Registry.registerPass(*PI, true); \
return PI; \
} \
static llvm::once_flag Initialize##passName##PassFlag; \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
llvm::call_once(Initialize##passName##PassFlag, \
initialize##passName##PassOnce, std::ref(Registry)); \
}
void call_once(once_flag &flag, Function &&F, Args &&... ArgList)
Execute the function specified as a parameter once.
Definition: Threading.h:99
std::once_flag once_flag
Definition: Threading.h:69
demanded Demanded bits analysis
print lazy value Lazy Value Info Printer Pass
static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringRef > StandardNames)
initialize - Initialize the set of available library functions based on the specified target triple...
static const char * name

Definition at line 55 of file PassSupport.h.

◆ INITIALIZE_PASS_WITH_OPTIONS

#define INITIALIZE_PASS_WITH_OPTIONS (   PassName,
  Arg,
  Name,
  Cfg,
  Analysis 
)
Value:
INITIALIZE_PASS_BEGIN(PassName, Arg, Name, Cfg, Analysis) \
PassName::registerOptions(); \
INITIALIZE_PASS_END(PassName, Arg, Name, Cfg, Analysis)
const char * Name
#define INITIALIZE_PASS_BEGIN(passName, arg, name, cfg, analysis)
Definition: PassSupport.h:48
block Block Frequency Analysis

Definition at line 68 of file PassSupport.h.

◆ INITIALIZE_PASS_WITH_OPTIONS_BEGIN

#define INITIALIZE_PASS_WITH_OPTIONS_BEGIN (   PassName,
  Arg,
  Name,
  Cfg,
  Analysis 
)
Value:
INITIALIZE_PASS_BEGIN(PassName, Arg, Name, Cfg, Analysis) \
PassName::registerOptions();
const char * Name
#define INITIALIZE_PASS_BEGIN(passName, arg, name, cfg, analysis)
Definition: PassSupport.h:48
block Block Frequency Analysis

Definition at line 73 of file PassSupport.h.