summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-07-31 00:32:17 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-07-31 00:32:17 +0000
commit40f18838b7948a16073da2f5a9d1abccaaaa56e9 (patch)
tree9564464449329b84e412bd512271c11bfdd20955 /llvm
parentc1561b84000dcca2132131bbb26be800b7c89d8b (diff)
downloadbcm5719-llvm-40f18838b7948a16073da2f5a9d1abccaaaa56e9.tar.gz
bcm5719-llvm-40f18838b7948a16073da2f5a9d1abccaaaa56e9.zip
The BlockExtractorPass() constructor was not reading the BlockFile and that was
exactly what bugpoint expected it to do. There was also only one user of BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and make BlockExtractorPass read BlockFile. This fixes bugpoint's block extraction. Nick, please review. llvm-svn: 109936
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/Transforms/IPO.h2
-rw-r--r--llvm/lib/Transforms/IPO/LoopExtractor.cpp8
-rw-r--r--llvm/tools/bugpoint/ExtractFunction.cpp3
3 files changed, 5 insertions, 8 deletions
diff --git a/llvm/include/llvm/Transforms/IPO.h b/llvm/include/llvm/Transforms/IPO.h
index 8fb4b63c646..fc67bc594bd 100644
--- a/llvm/include/llvm/Transforms/IPO.h
+++ b/llvm/include/llvm/Transforms/IPO.h
@@ -181,7 +181,7 @@ Pass *createSingleLoopExtractorPass();
/// createBlockExtractorPass - This pass extracts all blocks (except those
/// specified in the argument list) from the functions in the module.
///
-ModulePass *createBlockExtractorPass(const std::vector<BasicBlock*> &BTNE);
+ModulePass *createBlockExtractorPass();
/// createStripDeadPrototypesPass - This pass removes any function declarations
/// (prototypes) that are not used.
diff --git a/llvm/lib/Transforms/IPO/LoopExtractor.cpp b/llvm/lib/Transforms/IPO/LoopExtractor.cpp
index fa8eb5e9fb2..fd60adfc507 100644
--- a/llvm/lib/Transforms/IPO/LoopExtractor.cpp
+++ b/llvm/lib/Transforms/IPO/LoopExtractor.cpp
@@ -147,12 +147,10 @@ namespace {
std::vector<std::pair<std::string, std::string> > BlocksToNotExtractByName;
public:
static char ID; // Pass identification, replacement for typeid
- explicit BlockExtractorPass(const std::vector<BasicBlock*> &B)
- : ModulePass(&ID), BlocksToNotExtract(B) {
+ BlockExtractorPass() : ModulePass(&ID) {
if (!BlockFile.empty())
LoadFile(BlockFile.c_str());
}
- BlockExtractorPass() : ModulePass(&ID) {}
bool runOnModule(Module &M);
};
@@ -166,9 +164,9 @@ INITIALIZE_PASS(BlockExtractorPass, "extract-blocks",
// createBlockExtractorPass - This pass extracts all blocks (except those
// specified in the argument list) from the functions in the module.
//
-ModulePass *llvm::createBlockExtractorPass(const std::vector<BasicBlock*> &BTNE)
+ModulePass *llvm::createBlockExtractorPass()
{
- return new BlockExtractorPass(BTNE);
+ return new BlockExtractorPass();
}
void BlockExtractorPass::LoadFile(const char *Filename) {
diff --git a/llvm/tools/bugpoint/ExtractFunction.cpp b/llvm/tools/bugpoint/ExtractFunction.cpp
index e0f9db6d438..6913fd06a93 100644
--- a/llvm/tools/bugpoint/ExtractFunction.cpp
+++ b/llvm/tools/bugpoint/ExtractFunction.cpp
@@ -354,8 +354,7 @@ Module *BugDriver::ExtractMappedBlocksFromModule(const
const char *ExtraArg = uniqueFN.c_str();
std::vector<const PassInfo*> PI;
- std::vector<BasicBlock *> EmptyBBs; // This parameter is ignored.
- PI.push_back(getPI(createBlockExtractorPass(EmptyBBs)));
+ PI.push_back(getPI(createBlockExtractorPass()));
Module *Ret = runPassesOn(M, PI, false, 1, &ExtraArg);
uniqueFilename.eraseFromDisk(); // Free disk space
OpenPOWER on IntegriCloud