LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Macros | Functions
PassSupport.h File Reference
#include "Pass.h"
#include "llvm/InitializePasses.h"
#include "llvm/PassRegistry.h"
#include "llvm/Support/Atomic.h"
#include "llvm/Support/Valgrind.h"
#include <vector>
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

class  llvm::PassInfo
 
struct  llvm::RegisterPass< passName >
 
class  llvm::RegisterAGBase
 
struct  llvm::RegisterAnalysisGroup< Interface, Default >
 
struct  llvm::PassRegistrationListener
 

Namespaces

 llvm
 List of target independent CodeGen pass IDs.
 

Macros

#define CALL_ONCE_INITIALIZATION(function)
 
#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_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 >
Pass * llvm::callDefaultCtor ()
 

Macro Definition Documentation

#define CALL_ONCE_INITIALIZATION (   function)
Value:
static volatile sys::cas_flag initialized = 0; \
sys::cas_flag old_val = sys::CompareAndSwap(&initialized, 1, 0); \
if (old_val == 0) { \
function(Registry); \
TsanHappensBefore(&initialized); \
initialized = 2; \
} else { \
sys::cas_flag tmp = initialized; \
while (tmp != 2) { \
tmp = initialized; \
} \
} \
TsanHappensAfter(&initialized);
#define TsanHappensAfter(cv)
Definition: Valgrind.h:56
#define TsanHappensBefore(cv)
Definition: Valgrind.h:52
cas_flag CompareAndSwap(volatile cas_flag *ptr, cas_flag new_value, cas_flag old_value)
* if(!EatIfPresent(lltok::kw_thread_local)) return false
void MemoryFence()
Definition: Atomic.cpp:28
#define TsanIgnoreWritesEnd()
Definition: Valgrind.h:64
#define TsanIgnoreWritesBegin()
Definition: Valgrind.h:60
uint32_t cas_flag
Definition: Atomic.h:26
print Print MemDeps of function

Definition at line 133 of file PassSupport.h.

Referenced by llvm::initializeHexagonCFGOptimizerPass(), llvm::initializeHexagonDAGToDAGISelPass(), llvm::initializeHexagonExpandPredSpillCodePass(), llvm::initializeHexagonSplitTFRCondSetsPass(), and llvm::initializePPCDAGToDAGISelPass().

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

Definition at line 169 of file PassSupport.h.

#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; \
} \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
CALL_ONCE_INITIALIZATION(initialize##passName##PassOnce) \
}
* if(!EatIfPresent(lltok::kw_thread_local)) return false
static void initialize(TargetLibraryInfo &TLI, const Triple &T, const char **StandardNames)

Definition at line 268 of file PassSupport.h.

#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);
* if(!EatIfPresent(lltok::kw_thread_local)) return false
static void initialize(TargetLibraryInfo &TLI, const Triple &T, const char **StandardNames)

Definition at line 285 of file PassSupport.h.

#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; \
} \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
CALL_ONCE_INITIALIZATION(initialize##passName##PassOnce) \
}
ID
LLVM Calling Convention Representation.
Definition: CallingConv.h:26
static void initialize(TargetLibraryInfo &TLI, const Triple &T, const char **StandardNames)
#define CALL_ONCE_INITIALIZATION(function)
Definition: PassSupport.h:133

Definition at line 289 of file PassSupport.h.

#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; \
} \
void llvm::initialize##agName##AnalysisGroup(PassRegistry &Registry) { \
CALL_ONCE_INITIALIZATION(initialize##agName##AnalysisGroupOnce) \
}
ID
LLVM Calling Convention Representation.
Definition: CallingConv.h:26
static void initialize(TargetLibraryInfo &TLI, const Triple &T, const char **StandardNames)
#define CALL_ONCE_INITIALIZATION(function)
Definition: PassSupport.h:133

Definition at line 256 of file PassSupport.h.

#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; \
} \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
CALL_ONCE_INITIALIZATION(initialize##passName##PassOnce) \
}
ID
LLVM Calling Convention Representation.
Definition: CallingConv.h:26
static void initialize(TargetLibraryInfo &TLI, const Triple &T, const char **StandardNames)
#define CALL_ONCE_INITIALIZATION(function)
Definition: PassSupport.h:133

Definition at line 153 of file PassSupport.h.

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

Definition at line 164 of file PassSupport.h.

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

Definition at line 167 of file PassSupport.h.

#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; \
} \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
CALL_ONCE_INITIALIZATION(initialize##passName##PassOnce) \
}
ID
LLVM Calling Convention Representation.
Definition: CallingConv.h:26
static void initialize(TargetLibraryInfo &TLI, const Triple &T, const char **StandardNames)
#define CALL_ONCE_INITIALIZATION(function)
Definition: PassSupport.h:133

Definition at line 172 of file PassSupport.h.