mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
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
This commit is contained in:
parent
e1aed29cca
commit
75734bc143
@ -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.
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user