diff options
author | Devang Patel <dpatel@apple.com> | 2007-05-01 21:15:47 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2007-05-01 21:15:47 +0000 |
commit | 794fd75c67a2cdc128d67342c6d88a504d186896 (patch) | |
tree | 6b805aa4a576e9de6cbf096d2fb85063b3fb8fca /lib/Transforms/IPO/LoopExtractor.cpp | |
parent | e50fb9ac174b791047ffa8648443ab94b2097cd9 (diff) | |
download | llvm-794fd75c67a2cdc128d67342c6d88a504d186896.tar.gz llvm-794fd75c67a2cdc128d67342c6d88a504d186896.tar.bz2 llvm-794fd75c67a2cdc128d67342c6d88a504d186896.tar.xz |
Do not use typeinfo to identify pass in pass manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO/LoopExtractor.cpp')
-rw-r--r-- | lib/Transforms/IPO/LoopExtractor.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/Transforms/IPO/LoopExtractor.cpp b/lib/Transforms/IPO/LoopExtractor.cpp index c5f4fca12a..0ea544daa6 100644 --- a/lib/Transforms/IPO/LoopExtractor.cpp +++ b/lib/Transforms/IPO/LoopExtractor.cpp @@ -34,9 +34,11 @@ 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 unsigned NumLoops; - LoopExtractor(unsigned numLoops = ~0) : NumLoops(numLoops) {} + LoopExtractor(unsigned numLoops = ~0) + : FunctionPass((intptr_t)&ID), NumLoops(numLoops) {} virtual bool runOnFunction(Function &F); @@ -49,14 +51,17 @@ namespace { } }; + const int 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 SingleLoopExtractor() : LoopExtractor(1) {} }; + const int SingleLoopExtractor::ID = 0; RegisterPass<SingleLoopExtractor> Y("loop-extract-single", "Extract at most one loop into a new function"); } // End anonymous namespace @@ -147,11 +152,15 @@ namespace { class BlockExtractorPass : public ModulePass { std::vector<BasicBlock*> BlocksToNotExtract; public: - BlockExtractorPass(std::vector<BasicBlock*> &B) : BlocksToNotExtract(B) {} - BlockExtractorPass() {} + static const int ID; // Pass identifcation, replacement for typeid + BlockExtractorPass(std::vector<BasicBlock*> &B) + : ModulePass((intptr_t)&ID), BlocksToNotExtract(B) {} + BlockExtractorPass() : ModulePass((intptr_t)&ID) {} bool runOnModule(Module &M); }; + + const int BlockExtractorPass::ID = 0; RegisterPass<BlockExtractorPass> XX("extract-blocks", "Extract Basic Blocks From Module (for bugpoint use)"); } |