mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-27 13:20:29 +00:00
Move the pass initialization helper functions into the llvm namespace, and add
a header declaring them all. This is also where we will declare per-library pass-set initializer functions down the road. llvm-svn: 115900
This commit is contained in:
parent
1ce29574c2
commit
a8a7bf484f
@ -23,6 +23,7 @@
|
||||
|
||||
#include "Pass.h"
|
||||
#include "llvm/PassRegistry.h"
|
||||
#include "llvm/InitializePasses.h"
|
||||
#include <vector>
|
||||
|
||||
namespace llvm {
|
||||
@ -128,7 +129,7 @@ private:
|
||||
};
|
||||
|
||||
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis) \
|
||||
void initialize##passName##Pass(PassRegistry &Registry) { \
|
||||
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
|
||||
PassInfo *PI = new PassInfo(name, arg, & passName ::ID, \
|
||||
PassInfo::NormalCtor_t(callDefaultCtor< passName >), cfg, analysis); \
|
||||
Registry.registerPass(*PI); \
|
||||
@ -211,14 +212,14 @@ struct RegisterAnalysisGroup : public RegisterAGBase {
|
||||
};
|
||||
|
||||
#define INITIALIZE_ANALYSIS_GROUP(agName, name) \
|
||||
void initialize##agName##AnalysisGroup(PassRegistry &Registry) { \
|
||||
void llvm::initialize##agName##AnalysisGroup(PassRegistry &Registry) { \
|
||||
PassInfo *AI = new PassInfo(name, & agName :: ID); \
|
||||
Registry.registerAnalysisGroup(& agName ::ID, 0, *AI, false); \
|
||||
} \
|
||||
static RegisterAnalysisGroup<agName> agName##_info (name)
|
||||
|
||||
#define INITIALIZE_AG_PASS(passName, agName, arg, name, cfg, analysis, def) \
|
||||
void initialize##passName##Pass(PassRegistry &Registry) { \
|
||||
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
|
||||
PassInfo *PI = new PassInfo(name, arg, & passName ::ID, \
|
||||
PassInfo::NormalCtor_t(callDefaultCtor< passName >), cfg, analysis); \
|
||||
Registry.registerPass(*PI); \
|
||||
|
@ -48,10 +48,11 @@ namespace {
|
||||
}
|
||||
};
|
||||
char PrintDbgInfo::ID = 0;
|
||||
INITIALIZE_PASS(PrintDbgInfo, "print-dbginfo",
|
||||
"Print debug info in human readable form", false, false);
|
||||
}
|
||||
|
||||
INITIALIZE_PASS(PrintDbgInfo, "print-dbginfo",
|
||||
"Print debug info in human readable form", false, false);
|
||||
|
||||
FunctionPass *llvm::createDbgInfoPrinterPass() { return new PrintDbgInfo(); }
|
||||
|
||||
void PrintDbgInfo::printVariableDeclaration(const Value *V) {
|
||||
|
@ -123,21 +123,14 @@ struct RegionViewer
|
||||
static char ID;
|
||||
RegionViewer() : DOTGraphTraitsViewer<RegionInfo, false>("reg", ID){}
|
||||
};
|
||||
|
||||
char RegionViewer::ID = 0;
|
||||
INITIALIZE_PASS(RegionViewer, "view-regions", "View regions of function",
|
||||
true, true);
|
||||
|
||||
struct RegionOnlyViewer
|
||||
: public DOTGraphTraitsViewer<RegionInfo, true> {
|
||||
static char ID;
|
||||
RegionOnlyViewer() : DOTGraphTraitsViewer<RegionInfo, true>("regonly", ID){}
|
||||
};
|
||||
|
||||
char RegionOnlyViewer::ID = 0;
|
||||
INITIALIZE_PASS(RegionOnlyViewer, "view-regions-only",
|
||||
"View regions of function (with no function bodies)",
|
||||
true, true);
|
||||
|
||||
struct RegionPrinter
|
||||
: public DOTGraphTraitsPrinter<RegionInfo, false> {
|
||||
@ -145,12 +138,19 @@ struct RegionPrinter
|
||||
RegionPrinter() :
|
||||
DOTGraphTraitsPrinter<RegionInfo, false>("reg", ID) {}
|
||||
};
|
||||
char RegionPrinter::ID = 0;
|
||||
} //end anonymous namespace
|
||||
|
||||
char RegionPrinter::ID = 0;
|
||||
INITIALIZE_PASS(RegionPrinter, "dot-regions",
|
||||
"Print regions of function to 'dot' file", true, true);
|
||||
|
||||
INITIALIZE_PASS(RegionViewer, "view-regions", "View regions of function",
|
||||
true, true);
|
||||
|
||||
INITIALIZE_PASS(RegionOnlyViewer, "view-regions-only",
|
||||
"View regions of function (with no function bodies)",
|
||||
true, true);
|
||||
|
||||
namespace {
|
||||
|
||||
struct RegionOnlyPrinter
|
||||
|
@ -48,11 +48,10 @@ namespace {
|
||||
};
|
||||
|
||||
char InstNamer::ID = 0;
|
||||
INITIALIZE_PASS(InstNamer, "instnamer",
|
||||
"Assign names to anonymous instructions", false, false);
|
||||
}
|
||||
|
||||
|
||||
INITIALIZE_PASS(InstNamer, "instnamer",
|
||||
"Assign names to anonymous instructions", false, false);
|
||||
char &llvm::InstructionNamerID = InstNamer::ID;
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user