LLVM 22.0.0git
PassSupport.h File Reference
#include "llvm/ADT/StringRef.h"
#include "llvm/PassInfo.h"
#include "llvm/PassRegistry.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/Threading.h"
#include <functional>

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...
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

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Macros

#define INITIALIZE_PASS_BEGIN(passName, arg, name, cfg, analysis)
#define INITIALIZE_PASS_DEPENDENCY(depName)
#define INITIALIZE_PASS_END(passName, arg, name, cfg, analysis)
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
#define INITIALIZE_PASS_WITH_OPTIONS_BEGIN(PassName, Arg, Name, Cfg, Analysis)
#define INITIALIZE_PASS_WITH_OPTIONS(PassName, Arg, Name, Cfg, Analysis)

Functions

template<class PassName>
Passllvm::callDefaultCtor ()

Macro Definition Documentation

◆ INITIALIZE_PASS

#define INITIALIZE_PASS ( passName,
arg,
name,
cfg,
analysis )
Value:
INITIALIZE_PASS_BEGIN(passName, arg, name, cfg, analysis) \
INITIALIZE_PASS_END(passName, arg, name, cfg, analysis)
module summary analysis
#define INITIALIZE_PASS_BEGIN(passName, arg, name, cfg, analysis)
Definition PassSupport.h:39
static const char * name

Definition at line 56 of file PassSupport.h.

◆ INITIALIZE_PASS_BEGIN

#define INITIALIZE_PASS_BEGIN ( passName,
arg,
name,
cfg,
analysis )
Value:
static void initialize##passName##PassOnce(PassRegistry &Registry) {
static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringLiteral > StandardNames)
Initialize the set of available library functions based on the specified target triple.

Definition at line 39 of file PassSupport.h.

Referenced by INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_BEGIN().

◆ INITIALIZE_PASS_DEPENDENCY

#define INITIALIZE_PASS_DEPENDENCY ( depName)
Value:
initialize##depName##Pass(Registry);
Shrink Wrap Pass

Definition at line 42 of file PassSupport.h.

Referenced by INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_DEPENDENCY(), INITIALIZE_PASS_DEPENDENCY(), llvm::initializeLazyBFIPassPass(), llvm::initializeLazyBPIPassPass(), and llvm::initializeLoopPassPass().

◆ 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); \
} \
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)); \
}
The llvm::once_flag structure.
Definition Threading.h:67

Definition at line 44 of file PassSupport.h.

Referenced by INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_DEPENDENCY(), INITIALIZE_PASS_DEPENDENCY(), INITIALIZE_PASS_END(), INITIALIZE_PASS_END(), and INITIALIZE_PASS_END().

◆ INITIALIZE_PASS_WITH_OPTIONS

#define INITIALIZE_PASS_WITH_OPTIONS ( PassName,
Arg,
Name,
Cfg,
Analysis )
Value:
INITIALIZE_PASS_END(PassName, Arg, Name, Cfg, Analysis)
block Block Frequency Analysis
#define INITIALIZE_PASS_WITH_OPTIONS_BEGIN(PassName, Arg, Name, Cfg, Analysis)
Definition PassSupport.h:60
static const char PassName[]

Definition at line 64 of file PassSupport.h.

◆ INITIALIZE_PASS_WITH_OPTIONS_BEGIN

#define INITIALIZE_PASS_WITH_OPTIONS_BEGIN ( PassName,
Arg,
Name,
Cfg,
Analysis )
Value:
PassName::registerOptions();

Definition at line 60 of file PassSupport.h.