forked from OSchip/llvm-project
Use 'static const char' instead of 'static const int'.
Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
This commit is contained in:
parent
700a0381b5
commit
e95c6ad802
|
@ -263,7 +263,7 @@ href="#FunctionPass"><tt>FunctionPass</tt></a>'s operate a function at a
|
|||
time.</p>
|
||||
|
||||
<div class="doc_code"><pre>
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
Hello() : FunctionPass((intptr_t)&ID) {}
|
||||
</pre></div><p>
|
||||
|
||||
|
@ -285,7 +285,7 @@ to do our thing, so we just print out our message with the name of each
|
|||
function.</p>
|
||||
|
||||
<div class="doc_code"><pre>
|
||||
const int Hello::ID = 0;
|
||||
const char Hello::ID = 0;
|
||||
</pre></div>
|
||||
|
||||
<p> We initialize pass ID here. LLVM uses ID's address to identify pass so
|
||||
|
@ -311,7 +311,7 @@ argument "<tt>hello</tt>", and a name "<tt>Hello World Pass</tt>".</p>
|
|||
<b>namespace</b> {
|
||||
<b>struct Hello</b> : <b>public</b> <a href="#FunctionPass">FunctionPass</a> {
|
||||
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
Hello() : FunctionPass((intptr_t)&ID) {}
|
||||
|
||||
<b>virtual bool</b> <a href="#runOnFunction">runOnFunction</a>(Function &F) {
|
||||
|
|
|
@ -61,7 +61,7 @@ protected:
|
|||
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
|
||||
|
||||
public:
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
AliasAnalysis() : TD(0), AA(0) {}
|
||||
virtual ~AliasAnalysis(); // We want to be subclassed
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ protected:
|
|||
FunctionMapTy FunctionMap; // Map from a function to its node
|
||||
|
||||
public:
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
//===---------------------------------------------------------------------
|
||||
// Accessors...
|
||||
//
|
||||
|
|
|
@ -208,7 +208,7 @@ public:
|
|||
///
|
||||
class DominatorTree : public DominatorTreeBase {
|
||||
public:
|
||||
static const int ID; // Pass ID, replacement for typeid
|
||||
static const char ID; // Pass ID, replacement for typeid
|
||||
DominatorTree() : DominatorTreeBase((intptr_t)&ID, false) {}
|
||||
|
||||
BasicBlock *getRoot() const {
|
||||
|
@ -399,7 +399,7 @@ protected:
|
|||
|
||||
class ETForest : public ETForestBase {
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
|
||||
ETForest() : ETForestBase((intptr_t)&ID, false) {}
|
||||
|
||||
|
@ -477,7 +477,7 @@ public:
|
|||
///
|
||||
class DominanceFrontier : public DominanceFrontierBase {
|
||||
public:
|
||||
static const int ID; // Pass ID, replacement for typeid
|
||||
static const char ID; // Pass ID, replacement for typeid
|
||||
DominanceFrontier() :
|
||||
DominanceFrontierBase((intptr_t)& ID, false) {}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ class Type;
|
|||
class FindUsedTypes : public ModulePass {
|
||||
std::set<const Type *> UsedTypes;
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
FindUsedTypes() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
/// getTypes - After the pass has been run, return the set containing all of
|
||||
|
|
|
@ -45,7 +45,7 @@ class IntervalPartition : public FunctionPass {
|
|||
std::vector<Interval*> Intervals;
|
||||
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
|
||||
IntervalPartition() : FunctionPass((intptr_t)&ID), RootInterval(0) {}
|
||||
|
||||
|
|
|
@ -241,7 +241,7 @@ class LoopInfo : public FunctionPass {
|
|||
std::vector<Loop*> TopLevelLoops;
|
||||
friend class Loop;
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
|
||||
LoopInfo() : FunctionPass((intptr_t)&ID) {}
|
||||
~LoopInfo() { releaseMemory(); }
|
||||
|
|
|
@ -68,7 +68,7 @@ class LoopPass : public Pass {
|
|||
class LPPassManager : public FunctionPass, public PMDataManager {
|
||||
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
LPPassManager(int Depth);
|
||||
|
||||
/// run - Execute all of the passes scheduled for execution. Keep track of
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace llvm {
|
|||
/// compute the a post-dominator tree.
|
||||
///
|
||||
struct PostDominatorTree : public DominatorTreeBase {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
|
||||
PostDominatorTree() :
|
||||
DominatorTreeBase((intptr_t)&ID, true) {}
|
||||
|
@ -54,7 +54,7 @@ private:
|
|||
/// PostETForest Class - Concrete subclass of ETForestBase that is used to
|
||||
/// compute a forwards post-dominator ET-Forest.
|
||||
struct PostETForest : public ETForestBase {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
PostETForest() : ETForestBase((intptr_t)&ID, true) {}
|
||||
|
||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
|
@ -79,7 +79,7 @@ struct PostETForest : public ETForestBase {
|
|||
/// used to compute the a post-dominance frontier.
|
||||
///
|
||||
struct PostDominanceFrontier : public DominanceFrontierBase {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
PostDominanceFrontier()
|
||||
: DominanceFrontierBase((intptr_t) &ID, true) {}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace llvm {
|
|||
// entered.
|
||||
std::map<std::pair<BasicBlock*, BasicBlock*>, unsigned> EdgeCounts;
|
||||
public:
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
virtual ~ProfileInfo(); // We want to be subclassed
|
||||
|
||||
//===------------------------------------------------------------------===//
|
||||
|
|
|
@ -197,7 +197,7 @@ namespace llvm {
|
|||
class ScalarEvolution : public FunctionPass {
|
||||
void *Impl; // ScalarEvolution uses the pimpl pattern
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
ScalarEvolution() : FunctionPass((intptr_t)&ID), Impl(0) {}
|
||||
|
||||
/// getSCEV - Return a SCEV expression handle for the full generality of the
|
||||
|
|
|
@ -29,7 +29,7 @@ class Value;
|
|||
class Instruction;
|
||||
|
||||
struct ValueNumbering {
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
virtual ~ValueNumbering(); // We want to be subclassed
|
||||
|
||||
/// getEqualNumberNodes - Return nodes with the same value number as the
|
||||
|
|
|
@ -28,7 +28,7 @@ class PrintModulePass : public ModulePass {
|
|||
OStream *Out; // ostream to print on
|
||||
bool DeleteStream; // Delete the ostream in our dtor?
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
PrintModulePass() : ModulePass((intptr_t)&ID), Out(&cerr), DeleteStream(false) {}
|
||||
PrintModulePass(OStream *o, bool DS = false)
|
||||
: ModulePass((intptr_t)&ID), Out(o), DeleteStream(DS) {}
|
||||
|
@ -52,7 +52,7 @@ class PrintFunctionPass : public FunctionPass {
|
|||
OStream *Out; // ostream to print on
|
||||
bool DeleteStream; // Delete the ostream in our dtor?
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
PrintFunctionPass() : FunctionPass((intptr_t)&ID), Banner(""), Out(&cerr),
|
||||
DeleteStream(false) {}
|
||||
PrintFunctionPass(const std::string &B, OStream *o = &cout,
|
||||
|
|
|
@ -26,7 +26,7 @@ class WriteBytecodePass : public ModulePass {
|
|||
bool DeleteStream;
|
||||
bool CompressFile;
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
WriteBytecodePass()
|
||||
: ModulePass((intptr_t) &ID), Out(&cout), DeleteStream(false),
|
||||
CompressFile(false) {}
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace llvm {
|
|||
/// AsmPrinter - This class is intended to be used as a driving class for all
|
||||
/// asm writers.
|
||||
class AsmPrinter : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
|
||||
/// FunctionNumber - This provides a unique ID for each function emitted in
|
||||
/// this translation unit. It is autoincremented by SetupMachineFunction,
|
||||
|
|
|
@ -65,7 +65,7 @@ namespace llvm {
|
|||
BitVector JoinedLIs;
|
||||
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
LiveIntervals() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
struct CopyRec {
|
||||
|
|
|
@ -40,7 +40,7 @@ class MRegisterInfo;
|
|||
|
||||
class LiveVariables : public MachineFunctionPass {
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
LiveVariables() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
/// VarInfo - This represents the regions where a virtual register is live in
|
||||
|
|
|
@ -1022,7 +1022,7 @@ private:
|
|||
std::vector<GlobalVariable *> TypeInfos;
|
||||
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
|
||||
MachineModuleInfo();
|
||||
~MachineModuleInfo();
|
||||
|
|
|
@ -41,7 +41,7 @@ public:
|
|||
MachineBasicBlock *BB;
|
||||
std::vector<SDNode*> TopOrder;
|
||||
unsigned DAGSize;
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
|
||||
explicit SelectionDAGISel(TargetLowering &tli) :
|
||||
FunctionPass((intptr_t)&ID), TLI(tli), DAGSize(0) {}
|
||||
|
|
|
@ -336,7 +336,7 @@ private:
|
|||
class FPPassManager : public ModulePass, public PMDataManager {
|
||||
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
explicit FPPassManager(int Depth)
|
||||
: ModulePass((intptr_t)&ID), PMDataManager(Depth) { }
|
||||
|
||||
|
|
|
@ -202,7 +202,7 @@ public:
|
|||
/// requested alignment (if the global has one).
|
||||
unsigned getPreferredAlignmentLog(const GlobalVariable *GV) const;
|
||||
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
};
|
||||
|
||||
/// StructLayout - used to lazily calculate structure layout information for a
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace llvm {
|
|||
/// this interface are expected to chain to other implementations, such that
|
||||
/// multiple profilers can be support simultaniously.
|
||||
struct RSProfilers : public ModulePass {
|
||||
static const int ID; // Pass identification, replacement for typeinfo
|
||||
static const char ID; // Pass identification, replacement for typeinfo
|
||||
RSProfilers() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
/// isProfiling - This method returns true if the value passed it was
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace llvm {
|
|||
struct UnifyFunctionExitNodes : public FunctionPass {
|
||||
BasicBlock *ReturnBlock, *UnwindBlock, *UnreachableBlock;
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
UnifyFunctionExitNodes() : FunctionPass((intptr_t)&ID),
|
||||
ReturnBlock(0), UnwindBlock(0) {}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ using namespace llvm;
|
|||
namespace {
|
||||
RegisterAnalysisGroup<AliasAnalysis> Z("Alias Analysis");
|
||||
}
|
||||
const int AliasAnalysis::ID = 0;
|
||||
const char AliasAnalysis::ID = 0;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Default chaining methods
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace {
|
|||
const char *Name;
|
||||
Module *M;
|
||||
public:
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
AliasAnalysisCounter() : ModulePass((intptr_t) &ID) {
|
||||
No = May = Must = 0;
|
||||
NoMR = JustRef = JustMod = MR = 0;
|
||||
|
@ -108,7 +108,7 @@ namespace {
|
|||
}
|
||||
};
|
||||
|
||||
const int AliasAnalysisCounter::ID = 0;
|
||||
const char AliasAnalysisCounter::ID = 0;
|
||||
RegisterPass<AliasAnalysisCounter>
|
||||
X("count-aa", "Count Alias Analysis Query Responses");
|
||||
RegisterAnalysisGroup<AliasAnalysis> Y(X);
|
||||
|
|
|
@ -50,7 +50,7 @@ namespace {
|
|||
unsigned NoModRef, Mod, Ref, ModRef;
|
||||
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
AAEval() : FunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
|
@ -73,7 +73,7 @@ namespace {
|
|||
bool doFinalization(Module &M);
|
||||
};
|
||||
|
||||
const int AAEval::ID = 0;
|
||||
const char AAEval::ID = 0;
|
||||
RegisterPass<AAEval>
|
||||
X("aa-eval", "Exhaustive Alias Analysis Precision Evaluator");
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace {
|
|||
std::set<const Value*> Vals;
|
||||
|
||||
public:
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
AliasDebugger() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
bool runOnModule(Module &M) {
|
||||
|
@ -122,7 +122,7 @@ namespace {
|
|||
|
||||
};
|
||||
|
||||
const int AliasDebugger::ID = 0;
|
||||
const char AliasDebugger::ID = 0;
|
||||
RegisterPass<AliasDebugger> X("debug-aa", "AA use debugger");
|
||||
RegisterAnalysisGroup<AliasAnalysis> Y(X);
|
||||
}
|
||||
|
|
|
@ -555,7 +555,7 @@ namespace {
|
|||
class VISIBILITY_HIDDEN AliasSetPrinter : public FunctionPass {
|
||||
AliasSetTracker *Tracker;
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
AliasSetPrinter() : FunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
|
@ -573,6 +573,6 @@ namespace {
|
|||
return false;
|
||||
}
|
||||
};
|
||||
const int AliasSetPrinter::ID = 0;
|
||||
const char AliasSetPrinter::ID = 0;
|
||||
RegisterPass<AliasSetPrinter> X("print-alias-sets", "Alias Set Printer");
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace {
|
|||
/// such it doesn't follow many of the rules that other alias analyses must.
|
||||
///
|
||||
struct VISIBILITY_HIDDEN NoAA : public ImmutablePass, public AliasAnalysis {
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
NoAA() : ImmutablePass((intptr_t)&ID) {}
|
||||
|
||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
|
@ -77,7 +77,7 @@ namespace {
|
|||
};
|
||||
|
||||
// Register this pass...
|
||||
const int NoAA::ID = 0;
|
||||
const char NoAA::ID = 0;
|
||||
RegisterPass<NoAA>
|
||||
U("no-aa", "No Alias Analysis (always returns 'may' alias)");
|
||||
|
||||
|
@ -92,7 +92,7 @@ namespace {
|
|||
/// Because it doesn't chain to a previous alias analysis (like -no-aa), it
|
||||
/// derives from the NoAA class.
|
||||
struct VISIBILITY_HIDDEN BasicAliasAnalysis : public NoAA {
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
AliasResult alias(const Value *V1, unsigned V1Size,
|
||||
const Value *V2, unsigned V2Size);
|
||||
|
||||
|
@ -124,7 +124,7 @@ namespace {
|
|||
};
|
||||
|
||||
// Register this pass...
|
||||
const int BasicAliasAnalysis::ID = 0;
|
||||
const char BasicAliasAnalysis::ID = 0;
|
||||
RegisterPass<BasicAliasAnalysis>
|
||||
X("basicaa", "Basic Alias Analysis (default AA impl)");
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ struct DOTGraphTraits<const Function*> : public DefaultDOTGraphTraits {
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN CFGPrinter : public FunctionPass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
CFGPrinter() : FunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnFunction(Function &F) {
|
||||
|
@ -114,12 +114,12 @@ namespace {
|
|||
}
|
||||
};
|
||||
|
||||
const int CFGPrinter::ID = 0;
|
||||
const char CFGPrinter::ID = 0;
|
||||
RegisterPass<CFGPrinter> P1("print-cfg",
|
||||
"Print CFG of function to 'dot' file");
|
||||
|
||||
struct VISIBILITY_HIDDEN CFGOnlyPrinter : public CFGPrinter {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
virtual bool runOnFunction(Function &F) {
|
||||
bool OldCFGOnly = CFGOnly;
|
||||
CFGOnly = true;
|
||||
|
@ -134,7 +134,7 @@ namespace {
|
|||
}
|
||||
};
|
||||
|
||||
const int CFGOnlyPrinter::ID = 0;
|
||||
const char CFGOnlyPrinter::ID = 0;
|
||||
RegisterPass<CFGOnlyPrinter>
|
||||
P2("print-cfg-only",
|
||||
"Print CFG of function to 'dot' file (with no function bodies)");
|
||||
|
|
|
@ -76,7 +76,7 @@ namespace {
|
|||
class VISIBILITY_HIDDEN Andersens : public ModulePass, public AliasAnalysis,
|
||||
private InstVisitor<Andersens> {
|
||||
public:
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
Andersens() : ModulePass((intptr_t)&ID) {}
|
||||
private:
|
||||
/// Node class - This class is used to represent a memory object in the
|
||||
|
@ -339,7 +339,7 @@ namespace {
|
|||
void visitInstruction(Instruction &I);
|
||||
};
|
||||
|
||||
const int Andersens::ID = 0;
|
||||
const char Andersens::ID = 0;
|
||||
RegisterPass<Andersens> X("anders-aa",
|
||||
"Andersen's Interprocedural Alias Analysis");
|
||||
RegisterAnalysisGroup<AliasAnalysis> Y(X);
|
||||
|
|
|
@ -51,7 +51,7 @@ class VISIBILITY_HIDDEN BasicCallGraph : public CallGraph, public ModulePass {
|
|||
CallGraphNode *CallsExternalNode;
|
||||
|
||||
public:
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
BasicCallGraph() : ModulePass((intptr_t)&ID), Root(0),
|
||||
ExternalCallingNode(0), CallsExternalNode(0) {}
|
||||
|
||||
|
@ -190,15 +190,14 @@ private:
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
RegisterAnalysisGroup<CallGraph> X("Call Graph");
|
||||
RegisterPass<BasicCallGraph> Y("basiccg", "Basic CallGraph Construction");
|
||||
RegisterAnalysisGroup<CallGraph, true> Z(Y);
|
||||
|
||||
} //End anonymous namespace
|
||||
|
||||
const int CallGraph::ID = 0;
|
||||
const int BasicCallGraph::ID = 0;
|
||||
const char CallGraph::ID = 0;
|
||||
const char BasicCallGraph::ID = 0;
|
||||
|
||||
void CallGraph::initialize(Module &M) {
|
||||
Mod = &M;
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace llvm;
|
|||
class CGPassManager : public ModulePass, public PMDataManager {
|
||||
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
CGPassManager(int Depth)
|
||||
: ModulePass((intptr_t)&ID), PMDataManager(Depth) { }
|
||||
|
||||
|
@ -73,7 +73,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
const int CGPassManager::ID = 0;
|
||||
const char CGPassManager::ID = 0;
|
||||
/// run - Execute all of the passes scheduled for execution. Keep track of
|
||||
/// whether any of the passes modifies the module, and if so, return true.
|
||||
bool CGPassManager::runOnModule(Module &M) {
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include "llvm/Support/InstIterator.h"
|
||||
using namespace llvm;
|
||||
|
||||
const int FindUsedTypes::ID = 0;
|
||||
const char FindUsedTypes::ID = 0;
|
||||
static RegisterPass<FindUsedTypes>
|
||||
X("printusedtypes", "Find Used Types");
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ namespace {
|
|||
std::map<Function*, FunctionRecord> FunctionInfo;
|
||||
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
GlobalsModRef() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
bool runOnModule(Module &M) {
|
||||
|
@ -146,7 +146,7 @@ namespace {
|
|||
bool AnalyzeIndirectGlobalMemory(GlobalValue *GV);
|
||||
};
|
||||
|
||||
const int GlobalsModRef::ID = 0;
|
||||
const char GlobalsModRef::ID = 0;
|
||||
RegisterPass<GlobalsModRef> X("globalsmodref-aa",
|
||||
"Simple mod/ref analysis for globals");
|
||||
RegisterAnalysisGroup<AliasAnalysis> Y(X);
|
||||
|
|
|
@ -51,7 +51,7 @@ namespace {
|
|||
abort();
|
||||
}
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
InstCount() : FunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnFunction(Function &F);
|
||||
|
@ -63,7 +63,7 @@ namespace {
|
|||
|
||||
};
|
||||
|
||||
const int InstCount::ID = 0;
|
||||
const char InstCount::ID = 0;
|
||||
RegisterPass<InstCount> X("instcount",
|
||||
"Counts the various types of Instructions");
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include "llvm/Analysis/IntervalIterator.h"
|
||||
using namespace llvm;
|
||||
|
||||
const int IntervalPartition::ID = 0;
|
||||
const char IntervalPartition::ID = 0;
|
||||
static RegisterPass<IntervalPartition>
|
||||
X("intervals", "Interval Partition Construction", true);
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ using namespace llvm;
|
|||
namespace {
|
||||
// FIXME: This should not be a FunctionPass.
|
||||
struct VISIBILITY_HIDDEN LoadVN : public FunctionPass, public ValueNumbering {
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
LoadVN() : FunctionPass((intptr_t)&ID) {}
|
||||
|
||||
/// Pass Implementation stuff. This doesn't do any analysis.
|
||||
|
@ -83,7 +83,7 @@ namespace {
|
|||
std::vector<Value*> &RetVals) const;
|
||||
};
|
||||
|
||||
const int LoadVN::ID = 0;
|
||||
const char LoadVN::ID = 0;
|
||||
// Register this pass...
|
||||
RegisterPass<LoadVN> X("load-vn", "Load Value Numbering");
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include <ostream>
|
||||
using namespace llvm;
|
||||
|
||||
const int LoopInfo::ID = 0;
|
||||
const char LoopInfo::ID = 0;
|
||||
static RegisterPass<LoopInfo>
|
||||
X("loops", "Natural Loop Construction", true);
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ using namespace llvm;
|
|||
// LPPassManager
|
||||
//
|
||||
|
||||
const int LPPassManager::ID = 0;
|
||||
const char LPPassManager::ID = 0;
|
||||
/// LPPassManager manages FPPassManagers and CalLGraphSCCPasses.
|
||||
|
||||
LPPassManager::LPPassManager(int Depth)
|
||||
|
|
|
@ -22,9 +22,9 @@ using namespace llvm;
|
|||
// PostDominatorTree Implementation
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
const int PostDominatorTree::ID = 0;
|
||||
const int PostDominanceFrontier::ID = 0;
|
||||
const int PostETForest::ID = 0;
|
||||
const char PostDominatorTree::ID = 0;
|
||||
const char PostDominanceFrontier::ID = 0;
|
||||
const char PostETForest::ID = 0;
|
||||
static RegisterPass<PostDominatorTree>
|
||||
F("postdomtree", "Post-Dominator Tree Construction", true);
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ using namespace llvm;
|
|||
namespace {
|
||||
RegisterAnalysisGroup<ProfileInfo> Z("Profile Information");
|
||||
}
|
||||
const int ProfileInfo::ID = 0;
|
||||
const char ProfileInfo::ID = 0;
|
||||
|
||||
ProfileInfo::~ProfileInfo() {}
|
||||
|
||||
|
@ -86,11 +86,11 @@ unsigned ProfileInfo::getExecutionCount(BasicBlock *BB) const {
|
|||
namespace {
|
||||
struct VISIBILITY_HIDDEN NoProfileInfo
|
||||
: public ImmutablePass, public ProfileInfo {
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
NoProfileInfo() : ImmutablePass((intptr_t)&ID) {}
|
||||
};
|
||||
|
||||
const int NoProfileInfo::ID = 0;
|
||||
const char NoProfileInfo::ID = 0;
|
||||
// Register this pass...
|
||||
RegisterPass<NoProfileInfo>
|
||||
X("no-profile", "No Profile Information");
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace {
|
|||
class VISIBILITY_HIDDEN LoaderPass : public ModulePass, public ProfileInfo {
|
||||
std::string Filename;
|
||||
public:
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
LoaderPass(const std::string &filename = "")
|
||||
: ModulePass((intptr_t)&ID), Filename(filename) {
|
||||
if (filename.empty()) Filename = ProfileInfoFilename;
|
||||
|
@ -50,7 +50,7 @@ namespace {
|
|||
virtual bool runOnModule(Module &M);
|
||||
};
|
||||
|
||||
const int LoaderPass::ID = 0;
|
||||
const char LoaderPass::ID = 0;
|
||||
RegisterPass<LoaderPass>
|
||||
X("profile-loader", "Load profile information from llvmprof.out");
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ namespace {
|
|||
RegisterPass<ScalarEvolution>
|
||||
R("scalar-evolution", "Scalar Evolution Analysis");
|
||||
}
|
||||
const int ScalarEvolution::ID = 0;
|
||||
const char ScalarEvolution::ID = 0;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SCEV class definitions
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include "llvm/Support/Compiler.h"
|
||||
using namespace llvm;
|
||||
|
||||
const int ValueNumbering::ID = 0;
|
||||
const char ValueNumbering::ID = 0;
|
||||
// Register the ValueNumbering interface, providing a nice name to refer to.
|
||||
static RegisterAnalysisGroup<ValueNumbering> X("Value Numbering");
|
||||
|
||||
|
@ -52,7 +52,7 @@ namespace {
|
|||
///
|
||||
struct VISIBILITY_HIDDEN BasicVN
|
||||
: public ImmutablePass, public ValueNumbering {
|
||||
static const int ID; // Class identification, replacement for typeinfo
|
||||
static const char ID; // Class identification, replacement for typeinfo
|
||||
BasicVN() : ImmutablePass((intptr_t)&ID) {}
|
||||
|
||||
/// getEqualNumberNodes - Return nodes with the same value number as the
|
||||
|
@ -65,7 +65,7 @@ namespace {
|
|||
std::vector<Value*> &RetVals) const;
|
||||
};
|
||||
|
||||
const int BasicVN::ID = 0;
|
||||
const char BasicVN::ID = 0;
|
||||
// Register this pass...
|
||||
RegisterPass<BasicVN>
|
||||
X("basicvn", "Basic Value Numbering (default GVN impl)");
|
||||
|
|
|
@ -47,7 +47,7 @@ using namespace llvm;
|
|||
/// @brief The bytecode version number
|
||||
const unsigned BCVersionNum = 7;
|
||||
|
||||
const int WriteBytecodePass::ID = 0;
|
||||
const char WriteBytecodePass::ID = 0;
|
||||
static RegisterPass<WriteBytecodePass> X("emitbytecode", "Bytecode Writer");
|
||||
|
||||
STATISTIC(BytesWritten, "Number of bytecode bytes written");
|
||||
|
|
|
@ -32,7 +32,7 @@ using namespace llvm;
|
|||
static cl::opt<bool>
|
||||
AsmVerbose("asm-verbose", cl::Hidden, cl::desc("Add comments to directives."));
|
||||
|
||||
const int AsmPrinter::ID = 0;
|
||||
const char AsmPrinter::ID = 0;
|
||||
AsmPrinter::AsmPrinter(std::ostream &o, TargetMachine &tm,
|
||||
const TargetAsmInfo *T)
|
||||
: MachineFunctionPass((intptr_t)&ID), FunctionNumber(0), O(o), TM(tm), TAI(T)
|
||||
|
|
|
@ -39,7 +39,7 @@ static cl::opt<bool> EnableTailMerge("enable-tail-merge", cl::Hidden);
|
|||
|
||||
namespace {
|
||||
struct BranchFolder : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
BranchFolder() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnMachineFunction(MachineFunction &MF);
|
||||
|
@ -67,7 +67,7 @@ namespace {
|
|||
MachineBasicBlock *TBB, MachineBasicBlock *FBB,
|
||||
const std::vector<MachineOperand> &Cond);
|
||||
};
|
||||
const int BranchFolder::ID = 0;
|
||||
const char BranchFolder::ID = 0;
|
||||
}
|
||||
|
||||
FunctionPass *llvm::createBranchFoldingPass() { return new BranchFolder(); }
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
#include <list>
|
||||
using namespace llvm;
|
||||
|
||||
const int ELFWriter::ID = 0;
|
||||
const char ELFWriter::ID = 0;
|
||||
/// AddELFWriter - Concrete function to add the ELF writer to the function pass
|
||||
/// manager.
|
||||
MachineCodeEmitter *llvm::AddELFWriter(FunctionPassManager &FPM,
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace llvm {
|
|||
class ELFWriter : public MachineFunctionPass {
|
||||
friend class ELFCodeEmitter;
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
|
||||
MachineCodeEmitter &getMachineCodeEmitter() const {
|
||||
return *(MachineCodeEmitter*)MCE;
|
||||
|
|
|
@ -44,7 +44,7 @@ STATISTIC(numPeep , "Number of identity moves eliminated after coalescing");
|
|||
STATISTIC(numFolded , "Number of loads/stores folded into instructions");
|
||||
STATISTIC(numAborts , "Number of times interval joining aborted");
|
||||
|
||||
const int LiveIntervals::ID = 0;
|
||||
const char LiveIntervals::ID = 0;
|
||||
namespace {
|
||||
RegisterPass<LiveIntervals> X("liveintervals", "Live Interval Analysis");
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#include <algorithm>
|
||||
using namespace llvm;
|
||||
|
||||
const int LiveVariables::ID = 0;
|
||||
const char LiveVariables::ID = 0;
|
||||
static RegisterPass<LiveVariables> X("livevars", "Live Variable Analysis");
|
||||
|
||||
void LiveVariables::VarInfo::dump() const {
|
||||
|
|
|
@ -317,7 +317,7 @@ void MachOCodeEmitter::emitJumpTables(MachineJumpTableInfo *MJTI) {
|
|||
// MachOWriter Implementation
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
const int MachOWriter::ID = 0;
|
||||
const char MachOWriter::ID = 0;
|
||||
MachOWriter::MachOWriter(std::ostream &o, TargetMachine &tm)
|
||||
: MachineFunctionPass((intptr_t)&ID), O(o), TM(tm) {
|
||||
is64Bit = TM.getTargetData()->getPointerSizeInBits() == 64;
|
||||
|
|
|
@ -84,7 +84,7 @@ namespace llvm {
|
|||
class MachOWriter : public MachineFunctionPass {
|
||||
friend class MachOCodeEmitter;
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
MachineCodeEmitter &getMachineCodeEmitter() const {
|
||||
return *(MachineCodeEmitter*)MCE;
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ void MachineFunctionPass::virtfn() {}
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN Printer : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
|
||||
std::ostream *OS;
|
||||
const std::string Banner;
|
||||
|
@ -64,7 +64,7 @@ namespace {
|
|||
return false;
|
||||
}
|
||||
};
|
||||
const int Printer::ID = 0;
|
||||
const char Printer::ID = 0;
|
||||
}
|
||||
|
||||
/// Returns a newly-created MachineFunction Printer pass. The default output
|
||||
|
@ -77,7 +77,7 @@ FunctionPass *llvm::createMachineFunctionPrinterPass(std::ostream *OS,
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN Deleter : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
Deleter() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
const char *getPassName() const { return "Machine Code Deleter"; }
|
||||
|
@ -88,7 +88,7 @@ namespace {
|
|||
return true;
|
||||
}
|
||||
};
|
||||
const int Deleter::ID = 0;
|
||||
const char Deleter::ID = 0;
|
||||
}
|
||||
|
||||
/// MachineCodeDeletion Pass - This pass deletes all of the machine code for
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace llvm::dwarf;
|
|||
namespace {
|
||||
RegisterPass<MachineModuleInfo> X("machinemoduleinfo", "Module Information");
|
||||
}
|
||||
const int MachineModuleInfo::ID = 0;
|
||||
const char MachineModuleInfo::ID = 0;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
|
@ -1751,14 +1751,14 @@ Function *MachineModuleInfo::getPersonality() const {
|
|||
namespace llvm {
|
||||
|
||||
struct DebugLabelFolder : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
DebugLabelFolder() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnMachineFunction(MachineFunction &MF);
|
||||
virtual const char *getPassName() const { return "Label Folder"; }
|
||||
};
|
||||
|
||||
const int DebugLabelFolder::ID = 0;
|
||||
const char DebugLabelFolder::ID = 0;
|
||||
|
||||
bool DebugLabelFolder::runOnMachineFunction(MachineFunction &MF) {
|
||||
// Get machine module info.
|
||||
|
|
|
@ -33,7 +33,7 @@ STATISTIC(NumAtomic, "Number of atomic phis lowered");
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN PNE : public MachineFunctionPass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
PNE() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
bool runOnMachineFunction(MachineFunction &Fn) {
|
||||
|
@ -76,7 +76,7 @@ namespace {
|
|||
VRegPHIUse VRegPHIUseCount;
|
||||
};
|
||||
|
||||
const int PNE::ID = 0;
|
||||
const char PNE::ID = 0;
|
||||
RegisterPass<PNE> X("phi-node-elimination",
|
||||
"Eliminate PHI nodes for register allocation");
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ using namespace llvm;
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN PEI : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
PEI() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
const char *getPassName() const {
|
||||
|
@ -101,7 +101,7 @@ namespace {
|
|||
void replaceFrameIndices(MachineFunction &Fn);
|
||||
void insertPrologEpilogCode(MachineFunction &Fn);
|
||||
};
|
||||
const int PEI::ID = 0;
|
||||
const char PEI::ID = 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace {
|
|||
static unsigned numIntervals = 0;
|
||||
|
||||
struct VISIBILITY_HIDDEN RA : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
RA() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
typedef std::pair<LiveInterval*, LiveInterval::iterator> IntervalPtr;
|
||||
|
@ -149,7 +149,7 @@ namespace {
|
|||
}
|
||||
}
|
||||
};
|
||||
const int RA::ID = 0;
|
||||
const char RA::ID = 0;
|
||||
}
|
||||
|
||||
void RA::ComputeRelatedRegClasses() {
|
||||
|
|
|
@ -44,7 +44,7 @@ namespace {
|
|||
|
||||
class VISIBILITY_HIDDEN RA : public MachineFunctionPass {
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
RA() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
private:
|
||||
const TargetMachine *TM;
|
||||
|
@ -228,7 +228,7 @@ namespace {
|
|||
void reloadPhysReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator &I,
|
||||
unsigned PhysReg);
|
||||
};
|
||||
const int RA::ID = 0;
|
||||
const char RA::ID = 0;
|
||||
}
|
||||
|
||||
/// getStackSpaceFor - This allocates space for the specified virtual register
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace {
|
|||
|
||||
class VISIBILITY_HIDDEN RegAllocSimple : public MachineFunctionPass {
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
RegAllocSimple() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
private:
|
||||
MachineFunction *MF;
|
||||
|
@ -94,7 +94,7 @@ namespace {
|
|||
void spillVirtReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
|
||||
unsigned VirtReg, unsigned PhysReg);
|
||||
};
|
||||
const int RegAllocSimple::ID = 0;
|
||||
const char RegAllocSimple::ID = 0;
|
||||
}
|
||||
|
||||
/// getStackSpaceFor - This allocates space for the specified virtual
|
||||
|
|
|
@ -5012,4 +5012,4 @@ SelectInlineAsmMemoryOperands(std::vector<SDOperand> &Ops, SelectionDAG &DAG) {
|
|||
Ops.push_back(InOps.back());
|
||||
}
|
||||
|
||||
const int SelectionDAGISel::ID = 0;
|
||||
const char SelectionDAGISel::ID = 0;
|
||||
|
|
|
@ -50,7 +50,7 @@ STATISTIC(NumConvertedTo3Addr, "Number of instructions promoted to 3-address");
|
|||
namespace {
|
||||
struct VISIBILITY_HIDDEN TwoAddressInstructionPass
|
||||
: public MachineFunctionPass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
TwoAddressInstructionPass() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
|
||||
|
@ -59,7 +59,7 @@ namespace {
|
|||
bool runOnMachineFunction(MachineFunction&);
|
||||
};
|
||||
|
||||
const int TwoAddressInstructionPass::ID = 0;
|
||||
const char TwoAddressInstructionPass::ID = 0;
|
||||
RegisterPass<TwoAddressInstructionPass>
|
||||
X("twoaddressinstruction", "Two-Address instruction pass");
|
||||
}
|
||||
|
|
|
@ -35,10 +35,10 @@ namespace {
|
|||
class VISIBILITY_HIDDEN UnreachableBlockElim : public FunctionPass {
|
||||
virtual bool runOnFunction(Function &F);
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
UnreachableBlockElim() : FunctionPass((intptr_t)&ID) {}
|
||||
};
|
||||
const int UnreachableBlockElim::ID = 0;
|
||||
const char UnreachableBlockElim::ID = 0;
|
||||
RegisterPass<UnreachableBlockElim>
|
||||
X("unreachableblockelim", "Remove unreachable blocks from the CFG");
|
||||
}
|
||||
|
|
|
@ -128,7 +128,7 @@ namespace {
|
|||
ARMFunctionInfo *AFI;
|
||||
bool isThumb;
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
ARMConstantIslands() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnMachineFunction(MachineFunction &Fn);
|
||||
|
@ -174,7 +174,7 @@ namespace {
|
|||
void dumpBBs();
|
||||
void verify(MachineFunction &Fn);
|
||||
};
|
||||
const int ARMConstantIslands::ID = 0;
|
||||
const char ARMConstantIslands::ID = 0;
|
||||
}
|
||||
|
||||
/// verify - check BBOffsets, BBSizes, alignment of islands
|
||||
|
|
|
@ -38,7 +38,7 @@ STATISTIC(NumFSTMGened, "Number of fstm instructions generated");
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN ARMLoadStoreOpt : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
ARMLoadStoreOpt() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
const TargetInstrInfo *TII;
|
||||
|
@ -73,7 +73,7 @@ namespace {
|
|||
bool LoadStoreMultipleOpti(MachineBasicBlock &MBB);
|
||||
bool MergeReturnIntoLDM(MachineBasicBlock &MBB);
|
||||
};
|
||||
const int ARMLoadStoreOpt::ID = 0;
|
||||
const char ARMLoadStoreOpt::ID = 0;
|
||||
}
|
||||
|
||||
/// createARMLoadStoreOptimizationPass - returns an instance of the load / store
|
||||
|
|
|
@ -22,7 +22,7 @@ using namespace llvm;
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN AlphaBSel : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
AlphaBSel() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnMachineFunction(MachineFunction &Fn);
|
||||
|
@ -31,7 +31,7 @@ namespace {
|
|||
return "Alpha Branch Selection";
|
||||
}
|
||||
};
|
||||
const int AlphaBSel::ID = 0;
|
||||
const char AlphaBSel::ID = 0;
|
||||
}
|
||||
|
||||
/// createAlphaBranchSelectionPass - returns an instance of the Branch Selection
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace {
|
|||
int getMachineOpValue(MachineInstr &MI, MachineOperand &MO);
|
||||
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
explicit AlphaCodeEmitter(TargetMachine &tm, MachineCodeEmitter &mce)
|
||||
: MachineFunctionPass((intptr_t)&ID), II(0), TM(tm), MCE(mce) {}
|
||||
AlphaCodeEmitter(TargetMachine &tm, MachineCodeEmitter &mce,
|
||||
|
@ -61,7 +61,7 @@ namespace {
|
|||
void emitBasicBlock(MachineBasicBlock &MBB);
|
||||
|
||||
};
|
||||
const int AlphaCodeEmitter::ID = 0;
|
||||
const char AlphaCodeEmitter::ID = 0;
|
||||
}
|
||||
|
||||
/// createAlphaCodeEmitterPass - Return a pass that emits the collected Alpha code
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace {
|
|||
///
|
||||
AlphaTargetMachine &TM;
|
||||
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
AlphaLLRPPass(AlphaTargetMachine &tm)
|
||||
: MachineFunctionPass((intptr_t)&ID), TM(tm) { }
|
||||
|
||||
|
@ -154,7 +154,7 @@ namespace {
|
|||
return Changed;
|
||||
}
|
||||
};
|
||||
const int AlphaLLRPPass::ID = 0;
|
||||
const char AlphaLLRPPass::ID = 0;
|
||||
} // end of anonymous namespace
|
||||
|
||||
FunctionPass *llvm::createAlphaLLRPPass(AlphaTargetMachine &tm) {
|
||||
|
|
|
@ -57,7 +57,7 @@ namespace {
|
|||
///
|
||||
class CBackendNameAllUsedStructsAndMergeFunctions : public ModulePass {
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
CBackendNameAllUsedStructsAndMergeFunctions()
|
||||
: ModulePass((intptr_t)&ID) {}
|
||||
void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
|
@ -71,7 +71,7 @@ namespace {
|
|||
virtual bool runOnModule(Module &M);
|
||||
};
|
||||
|
||||
const int CBackendNameAllUsedStructsAndMergeFunctions::ID = 0;
|
||||
const char CBackendNameAllUsedStructsAndMergeFunctions::ID = 0;
|
||||
|
||||
/// CWriter - This class is the main chunk of code that converts an LLVM
|
||||
/// module to a C translation unit.
|
||||
|
@ -88,7 +88,7 @@ namespace {
|
|||
std::set<Function*> intrinsicPrototypesAlreadyGenerated;
|
||||
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
CWriter(std::ostream &o)
|
||||
: FunctionPass((intptr_t)&ID), Out(o), IL(0), Mang(0), LI(0),
|
||||
TheModule(0), TAsm(0), TD(0) {}
|
||||
|
@ -264,7 +264,7 @@ namespace {
|
|||
};
|
||||
}
|
||||
|
||||
const int CWriter::ID = 0;
|
||||
const char CWriter::ID = 0;
|
||||
|
||||
/// This method inserts names for any unnamed structure types that are used by
|
||||
/// the program, and removes names from structure types that are not used by the
|
||||
|
|
|
@ -36,7 +36,7 @@ STATISTIC(StopBitsAdded, "Number of stop bits added");
|
|||
|
||||
namespace {
|
||||
struct IA64BundlingPass : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
/// Target machine description which we query for reg. names, data
|
||||
/// layout, etc.
|
||||
///
|
||||
|
@ -63,7 +63,7 @@ namespace {
|
|||
// 'fallthrough' code
|
||||
std::set<unsigned> PendingRegWrites;
|
||||
};
|
||||
const int IA64BundlingPass::ID = 0;
|
||||
const char IA64BundlingPass::ID = 0;
|
||||
} // end of anonymous namespace
|
||||
|
||||
/// createIA64BundlingPass - Returns a pass that adds STOP (;;) instructions
|
||||
|
|
|
@ -80,8 +80,8 @@ bool MSILModule::runOnModule(Module &M) {
|
|||
return Changed;
|
||||
}
|
||||
|
||||
const int MSILModule::ID = 0;
|
||||
const int MSILWriter::ID = 0;
|
||||
const char MSILModule::ID = 0;
|
||||
const char MSILWriter::ID = 0;
|
||||
|
||||
bool MSILWriter::runOnFunction(Function &F) {
|
||||
if (F.isDeclaration()) return false;
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace {
|
|||
const TargetData*& TD;
|
||||
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
MSILModule(const std::set<const Type *>*& _UsedTypes,
|
||||
const TargetData*& _TD)
|
||||
: ModulePass((intptr_t)&ID), UsedTypes(_UsedTypes), TD(_TD) {}
|
||||
|
@ -83,7 +83,7 @@ namespace {
|
|||
std::map<const GlobalVariable*,std::vector<StaticInitializer> >
|
||||
StaticInitList;
|
||||
const std::set<const Type *>* UsedTypes;
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
MSILWriter(std::ostream &o) : FunctionPass((intptr_t)&ID), Out(o) {
|
||||
UniqID = 0;
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ STATISTIC(NumExpanded, "Number of branches expanded to long format");
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN PPCBSel : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
PPCBSel() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
/// BlockSizes - The sizes of the basic blocks in the function.
|
||||
|
@ -44,7 +44,7 @@ namespace {
|
|||
return "PowerPC Branch Selector";
|
||||
}
|
||||
};
|
||||
const int PPCBSel::ID = 0;
|
||||
const char PPCBSel::ID = 0;
|
||||
}
|
||||
|
||||
/// createPPCBranchSelectionPass - returns an instance of the Branch Selection
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace {
|
|||
int getMachineOpValue(MachineInstr &MI, MachineOperand &MO);
|
||||
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
PPCCodeEmitter(TargetMachine &T, MachineCodeEmitter &M)
|
||||
: MachineFunctionPass((intptr_t)&ID), TM(T), MCE(M) {}
|
||||
|
||||
|
@ -64,7 +64,7 @@ namespace {
|
|||
///
|
||||
unsigned getBinaryCodeForInstr(MachineInstr &MI);
|
||||
};
|
||||
const int PPCCodeEmitter::ID = 0;
|
||||
const char PPCCodeEmitter::ID = 0;
|
||||
}
|
||||
|
||||
/// createPPCCodeEmitterPass - Return a pass that emits the collected PPC code
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace {
|
|||
TargetMachine &TM;
|
||||
const TargetInstrInfo *TII;
|
||||
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
Filler(TargetMachine &tm)
|
||||
: MachineFunctionPass((intptr_t)&ID), TM(tm), TII(tm.getInstrInfo()) { }
|
||||
|
||||
|
@ -48,7 +48,7 @@ namespace {
|
|||
}
|
||||
|
||||
};
|
||||
const int Filler::ID = 0;
|
||||
const char Filler::ID = 0;
|
||||
} // end of anonymous namespace
|
||||
|
||||
/// createSparcDelaySlotFillerPass - Returns a pass that fills in delay
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace {
|
|||
///
|
||||
TargetMachine &TM;
|
||||
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
FPMover(TargetMachine &tm)
|
||||
: MachineFunctionPass((intptr_t)&ID), TM(tm) { }
|
||||
|
||||
|
@ -43,7 +43,7 @@ namespace {
|
|||
bool runOnMachineBasicBlock(MachineBasicBlock &MBB);
|
||||
bool runOnMachineFunction(MachineFunction &F);
|
||||
};
|
||||
const int FPMover::ID = 0;
|
||||
const char FPMover::ID = 0;
|
||||
} // end of anonymous namespace
|
||||
|
||||
/// createSparcFPMoverPass - Returns a pass that turns FpMOVD
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace {
|
|||
// Register the default SparcV9 implementation...
|
||||
RegisterPass<TargetData> X("targetdata", "Target Data Layout");
|
||||
}
|
||||
const int TargetData::ID = 0;
|
||||
const char TargetData::ID = 0;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Support for StructLayout
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace {
|
|||
MachineCodeEmitter &MCE;
|
||||
bool Is64BitMode;
|
||||
public:
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
explicit Emitter(TargetMachine &tm, MachineCodeEmitter &mce)
|
||||
: MachineFunctionPass((intptr_t)&ID), II(0), TD(0), TM(tm),
|
||||
MCE(mce), Is64BitMode(false) {}
|
||||
|
@ -82,7 +82,7 @@ namespace {
|
|||
bool isX86_64ExtendedReg(const MachineOperand &MO);
|
||||
unsigned determineREX(const MachineInstr &MI);
|
||||
};
|
||||
const int Emitter::ID = 0;
|
||||
const char Emitter::ID = 0;
|
||||
}
|
||||
|
||||
/// createX86CodeEmitterPass - Return a pass that emits the collected X86 code
|
||||
|
|
|
@ -52,7 +52,7 @@ STATISTIC(NumFP , "Number of floating point instructions");
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN FPS : public MachineFunctionPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
FPS() : MachineFunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnMachineFunction(MachineFunction &MF);
|
||||
|
@ -154,7 +154,7 @@ namespace {
|
|||
void handleCondMovFP(MachineBasicBlock::iterator &I);
|
||||
void handleSpecialFP(MachineBasicBlock::iterator &I);
|
||||
};
|
||||
const int FPS::ID = 0;
|
||||
const char FPS::ID = 0;
|
||||
}
|
||||
|
||||
FunctionPass *llvm::createX86FloatingPointStackifierPass() { return new FPS(); }
|
||||
|
|
|
@ -25,7 +25,7 @@ STATISTIC(HelloCounter, "Counts number of functions greeted");
|
|||
namespace {
|
||||
// Hello - The first implementation, without getAnalysisUsage.
|
||||
struct Hello : public FunctionPass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
Hello() : FunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnFunction(Function &F) {
|
||||
|
@ -37,12 +37,12 @@ namespace {
|
|||
}
|
||||
};
|
||||
|
||||
const int Hello::ID = 0;
|
||||
const char Hello::ID = 0;
|
||||
RegisterPass<Hello> X("hello", "Hello World Pass");
|
||||
|
||||
// Hello2 - The second implementation with getAnalysisUsage implemented.
|
||||
struct Hello2 : public FunctionPass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
Hello2() : FunctionPass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnFunction(Function &F) {
|
||||
|
@ -58,7 +58,7 @@ namespace {
|
|||
AU.setPreservesAll();
|
||||
};
|
||||
};
|
||||
const int Hello2::ID = 0;
|
||||
const char Hello2::ID = 0;
|
||||
RegisterPass<Hello2> Y("hello2",
|
||||
"Hello World Pass (with getAnalysisUsage implemented)");
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ namespace {
|
|||
}
|
||||
|
||||
virtual bool runOnSCC(const std::vector<CallGraphNode *> &SCC);
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
ArgPromotion() : CallGraphSCCPass((intptr_t)&ID) {}
|
||||
|
||||
private:
|
||||
|
@ -72,7 +72,7 @@ namespace {
|
|||
Function *DoPromotion(Function *F, std::vector<Argument*> &ArgsToPromote);
|
||||
};
|
||||
|
||||
const int ArgPromotion::ID = 0;
|
||||
const char ArgPromotion::ID = 0;
|
||||
RegisterPass<ArgPromotion> X("argpromotion",
|
||||
"Promote 'by reference' arguments to scalars");
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ STATISTIC(NumMerged, "Number of global constants merged");
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN ConstantMerge : public ModulePass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
ConstantMerge() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
// run - For this pass, process all of the globals in the module,
|
||||
|
@ -38,7 +38,7 @@ namespace {
|
|||
bool runOnModule(Module &M);
|
||||
};
|
||||
|
||||
const int ConstantMerge::ID = 0;
|
||||
const char ConstantMerge::ID = 0;
|
||||
RegisterPass<ConstantMerge>X("constmerge","Merge Duplicate Global Constants");
|
||||
}
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ namespace {
|
|||
std::multimap<Function*, CallSite> CallSites;
|
||||
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
DAE() : ModulePass((intptr_t)&ID) {}
|
||||
bool runOnModule(Module &M);
|
||||
|
||||
|
@ -95,17 +95,17 @@ namespace {
|
|||
|
||||
void RemoveDeadArgumentsFromFunction(Function *F);
|
||||
};
|
||||
const int DAE::ID = 0;
|
||||
const char DAE::ID = 0;
|
||||
RegisterPass<DAE> X("deadargelim", "Dead Argument Elimination");
|
||||
|
||||
/// DAH - DeadArgumentHacking pass - Same as dead argument elimination, but
|
||||
/// deletes arguments to functions which are external. This is only for use
|
||||
/// by bugpoint.
|
||||
struct DAH : public DAE {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
virtual bool ShouldHackArguments() const { return true; }
|
||||
};
|
||||
const int DAH::ID = 0;
|
||||
const char DAH::ID = 0;
|
||||
RegisterPass<DAH> Y("deadarghaX0r",
|
||||
"Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)");
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ STATISTIC(NumKilled, "Number of unused typenames removed from symtab");
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN DTE : public ModulePass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
DTE() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
// doPassInitialization - For this pass, it removes global symbol table
|
||||
|
@ -43,7 +43,7 @@ namespace {
|
|||
AU.addRequired<FindUsedTypes>();
|
||||
}
|
||||
};
|
||||
const int DTE::ID = 0;
|
||||
const char DTE::ID = 0;
|
||||
RegisterPass<DTE> X("deadtypeelim", "Dead Type Elimination");
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace {
|
|||
bool deleteFunc;
|
||||
bool reLink;
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
|
||||
/// FunctionExtractorPass - If deleteFn is true, this pass deletes as the
|
||||
/// specified function. Otherwise, it deletes as much of the module as
|
||||
|
@ -134,7 +134,7 @@ namespace {
|
|||
}
|
||||
};
|
||||
|
||||
const int FunctionExtractorPass::ID = 0;
|
||||
const char FunctionExtractorPass::ID = 0;
|
||||
RegisterPass<FunctionExtractorPass> X("extract", "Function Extractor");
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ STATISTIC(NumVariables, "Number of global variables removed");
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN GlobalDCE : public ModulePass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
GlobalDCE() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
// run - Do the GlobalDCE pass on the specified module, optionally updating
|
||||
|
@ -49,7 +49,7 @@ namespace {
|
|||
bool SafeToDestroyConstant(Constant* C);
|
||||
bool RemoveUnusedGlobalValue(GlobalValue &GV);
|
||||
};
|
||||
const int GlobalDCE::ID = 0;
|
||||
const char GlobalDCE::ID = 0;
|
||||
RegisterPass<GlobalDCE> X("globaldce", "Dead Global Elimination");
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ namespace {
|
|||
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
AU.addRequired<TargetData>();
|
||||
}
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
GlobalOpt() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
bool runOnModule(Module &M);
|
||||
|
@ -63,7 +63,7 @@ namespace {
|
|||
bool ProcessInternalGlobal(GlobalVariable *GV,Module::global_iterator &GVI);
|
||||
};
|
||||
|
||||
const int GlobalOpt::ID = 0;
|
||||
const char GlobalOpt::ID = 0;
|
||||
RegisterPass<GlobalOpt> X("globalopt", "Global Variable Optimizer");
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace {
|
|||
/// IPCP - The interprocedural constant propagation pass
|
||||
///
|
||||
struct VISIBILITY_HIDDEN IPCP : public ModulePass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
IPCP() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
bool runOnModule(Module &M);
|
||||
|
@ -41,7 +41,7 @@ namespace {
|
|||
bool PropagateConstantsIntoArguments(Function &F);
|
||||
bool PropagateConstantReturn(Function &F);
|
||||
};
|
||||
const int IPCP::ID = 0;
|
||||
const char IPCP::ID = 0;
|
||||
RegisterPass<IPCP> X("ipconstprop", "Interprocedural constant propagation");
|
||||
}
|
||||
|
||||
|
|
|
@ -32,12 +32,12 @@ STATISTIC(NumBounce , "Number of bounce functions created");
|
|||
namespace {
|
||||
class VISIBILITY_HIDDEN IndMemRemPass : public ModulePass {
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
IndMemRemPass() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
virtual bool runOnModule(Module &M);
|
||||
};
|
||||
const int IndMemRemPass::ID = 0;
|
||||
const char IndMemRemPass::ID = 0;
|
||||
RegisterPass<IndMemRemPass> X("indmemrem","Indirect Malloc and Free Removal");
|
||||
} // end anonymous namespace
|
||||
|
||||
|
|
|
@ -54,10 +54,10 @@ namespace {
|
|||
class VISIBILITY_HIDDEN SimpleInliner : public Inliner {
|
||||
std::map<const Function*, FunctionInfo> CachedFunctionInfo;
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
int getInlineCost(CallSite CS);
|
||||
};
|
||||
const int SimpleInliner::ID = 0;
|
||||
const char SimpleInliner::ID = 0;
|
||||
RegisterPass<SimpleInliner> X("inline", "Function Integration/Inlining");
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace {
|
|||
cl::desc("Control the amount of inlining to perform (default = 200)"));
|
||||
}
|
||||
|
||||
const int Inliner::ID = 0;
|
||||
const char Inliner::ID = 0;
|
||||
Inliner::Inliner()
|
||||
: CallGraphSCCPass((intptr_t)&ID), InlineThreshold(InlineLimit) {}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace llvm {
|
|||
/// perform the inlining operations that does not depend on the policy.
|
||||
///
|
||||
struct Inliner : public CallGraphSCCPass {
|
||||
static const int ID;
|
||||
static const char ID;
|
||||
Inliner();
|
||||
|
||||
/// getAnalysisUsage - For this class, we declare that we require and preserve
|
||||
|
|
|
@ -46,13 +46,13 @@ namespace {
|
|||
std::set<std::string> ExternalNames;
|
||||
bool DontInternalize;
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
InternalizePass(bool InternalizeEverything = true);
|
||||
InternalizePass(const std::vector <const char *>& exportList);
|
||||
void LoadFile(const char *Filename);
|
||||
virtual bool runOnModule(Module &M);
|
||||
};
|
||||
const int InternalizePass::ID = 0;
|
||||
const char InternalizePass::ID = 0;
|
||||
RegisterPass<InternalizePass> X("internalize", "Internalize Global Symbols");
|
||||
} // end anonymous namespace
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace {
|
|||
// Module passes to require FunctionPasses, so we can't get loop info if we're
|
||||
// not a function pass.
|
||||
struct VISIBILITY_HIDDEN LoopExtractor : public FunctionPass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
unsigned NumLoops;
|
||||
|
||||
LoopExtractor(unsigned numLoops = ~0)
|
||||
|
@ -51,17 +51,17 @@ namespace {
|
|||
}
|
||||
};
|
||||
|
||||
const int LoopExtractor::ID = 0;
|
||||
const char LoopExtractor::ID = 0;
|
||||
RegisterPass<LoopExtractor>
|
||||
X("loop-extract", "Extract loops into new functions");
|
||||
|
||||
/// SingleLoopExtractor - For bugpoint.
|
||||
struct SingleLoopExtractor : public LoopExtractor {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
SingleLoopExtractor() : LoopExtractor(1) {}
|
||||
};
|
||||
|
||||
const int SingleLoopExtractor::ID = 0;
|
||||
const char SingleLoopExtractor::ID = 0;
|
||||
RegisterPass<SingleLoopExtractor>
|
||||
Y("loop-extract-single", "Extract at most one loop into a new function");
|
||||
} // End anonymous namespace
|
||||
|
@ -152,7 +152,7 @@ namespace {
|
|||
class BlockExtractorPass : public ModulePass {
|
||||
std::vector<BasicBlock*> BlocksToNotExtract;
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
BlockExtractorPass(std::vector<BasicBlock*> &B)
|
||||
: ModulePass((intptr_t)&ID), BlocksToNotExtract(B) {}
|
||||
BlockExtractorPass() : ModulePass((intptr_t)&ID) {}
|
||||
|
@ -160,7 +160,7 @@ namespace {
|
|||
bool runOnModule(Module &M);
|
||||
};
|
||||
|
||||
const int BlockExtractorPass::ID = 0;
|
||||
const char BlockExtractorPass::ID = 0;
|
||||
RegisterPass<BlockExtractorPass>
|
||||
XX("extract-blocks", "Extract Basic Blocks From Module (for bugpoint use)");
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ namespace {
|
|||
|
||||
bool IsTransformableFunction(const std::string& Name);
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
LowerSetJmp() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
void visitCallInst(CallInst& CI);
|
||||
|
@ -121,7 +121,7 @@ namespace {
|
|||
bool doInitialization(Module& M);
|
||||
};
|
||||
|
||||
const int LowerSetJmp::ID = 0;
|
||||
const char LowerSetJmp::ID = 0;
|
||||
RegisterPass<LowerSetJmp> X("lowersetjmp", "Lower Set Jump");
|
||||
} // end anonymous namespace
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ STATISTIC(NumUnreach, "Number of noreturn calls optimized");
|
|||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN PruneEH : public CallGraphSCCPass {
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
PruneEH() : CallGraphSCCPass((intptr_t)&ID) {}
|
||||
|
||||
/// DoesNotUnwind - This set contains all of the functions which we have
|
||||
|
@ -53,7 +53,7 @@ namespace {
|
|||
void DeleteBasicBlock(BasicBlock *BB);
|
||||
};
|
||||
|
||||
const int PruneEH::ID = 0;
|
||||
const char PruneEH::ID = 0;
|
||||
RegisterPass<PruneEH> X("prune-eh", "Remove unused exception handling info");
|
||||
}
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace {
|
|||
Function *MallocFunc; // Functions in the module we are processing
|
||||
Function *FreeFunc; // Initialized by doPassInitializationVirt
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
RaiseAllocations()
|
||||
: ModulePass((intptr_t)&ID), MallocFunc(0), FreeFunc(0) {}
|
||||
|
||||
|
@ -49,7 +49,7 @@ namespace {
|
|||
bool runOnModule(Module &M);
|
||||
};
|
||||
|
||||
const int RaiseAllocations::ID = 0;
|
||||
const char RaiseAllocations::ID = 0;
|
||||
RegisterPass<RaiseAllocations>
|
||||
X("raiseallocs", "Raise allocations from calls to instructions");
|
||||
} // end anonymous namespace
|
||||
|
|
|
@ -152,7 +152,7 @@ public:
|
|||
/// @brief A ModulePass for optimizing well-known function calls.
|
||||
class VISIBILITY_HIDDEN SimplifyLibCalls : public ModulePass {
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
SimplifyLibCalls() : ModulePass((intptr_t)&ID) {}
|
||||
|
||||
/// We need some target data for accurate signature details that are
|
||||
|
@ -376,7 +376,7 @@ private:
|
|||
TargetData *TD; ///< Cached TargetData
|
||||
};
|
||||
|
||||
const int SimplifyLibCalls::ID = 0;
|
||||
const char SimplifyLibCalls::ID = 0;
|
||||
// Register the pass
|
||||
RegisterPass<SimplifyLibCalls>
|
||||
X("simplify-libcalls", "Simplify well-known library calls");
|
||||
|
|
|
@ -27,12 +27,12 @@ namespace {
|
|||
/// @brief Pass to remove unused function declarations.
|
||||
class VISIBILITY_HIDDEN StripDeadPrototypesPass : public ModulePass {
|
||||
public:
|
||||
static const int ID; // Pass identifcation, replacement for typeid
|
||||
static const char ID; // Pass identifcation, replacement for typeid
|
||||
StripDeadPrototypesPass() : ModulePass((intptr_t)&ID) { }
|
||||
virtual bool runOnModule(Module &M);
|
||||
};
|
||||
|
||||
const int StripDeadPrototypesPass::ID = 0;
|
||||
const char StripDeadPrototypesPass::ID = 0;
|
||||
RegisterPass<StripDeadPrototypesPass> X("strip-dead-prototypes",
|
||||
"Strip Unused Function Prototypes");
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue