Skip to content

Commit

Permalink
[bugpoint] Update runPasses to take ArrayRef instead of a pointer (NFC)
Browse files Browse the repository at this point in the history
This makes it slightly easier to pass extra arguments to runPasses
and simplifies the code slightly.

Reviewers: efriedma, bogner, dblaikie, diegotf, hiraditya

Reviewed By: dblaikie, hiraditya

Differential Revision: https://reviews.llvm.org/D68228

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373265 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
fhahn committed Sep 30, 2019
1 parent 60b3112 commit 2e62319
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 12 deletions.
7 changes: 3 additions & 4 deletions tools/bugpoint/BugDriver.h
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,7 @@ class BugDriver {
/// returning the transformed module on success, or a null pointer on failure.
std::unique_ptr<Module> runPassesOn(Module *M,
const std::vector<std::string> &Passes,
unsigned NumExtraArgs = 0,
const char *const *ExtraArgs = nullptr);
ArrayRef<std::string> ExtraArgs = {});

/// runPasses - Run the specified passes on Program, outputting a bitcode
/// file and writting the filename into OutputFile if successful. If the
Expand All @@ -231,8 +230,8 @@ class BugDriver {
///
bool runPasses(Module &Program, const std::vector<std::string> &PassesToRun,
std::string &OutputFilename, bool DeleteOutput = false,
bool Quiet = false, unsigned NumExtraArgs = 0,
const char *const *ExtraArgs = nullptr) const;
bool Quiet = false,
ArrayRef<std::string> ExtraArgs = {}) const;

/// runPasses - Just like the method above, but this just returns true or
/// false indicating whether or not the optimizer crashed on the specified
Expand Down
3 changes: 1 addition & 2 deletions tools/bugpoint/ExtractFunction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -407,11 +407,10 @@ BugDriver::extractMappedBlocksFromModule(const std::vector<BasicBlock *> &BBs,

std::string uniqueFN = "--extract-blocks-file=";
uniqueFN += Temp->TmpName;
const char *ExtraArg = uniqueFN.c_str();

std::vector<std::string> PI;
PI.push_back("extract-blocks");
std::unique_ptr<Module> Ret = runPassesOn(M, PI, 1, &ExtraArg);
std::unique_ptr<Module> Ret = runPassesOn(M, PI, {uniqueFN});

if (!Ret) {
outs() << "*** Basic Block extraction failed, please report a bug!\n";
Expand Down
10 changes: 4 additions & 6 deletions tools/bugpoint/OptimizerDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,7 @@ static cl::list<std::string> OptArgs("opt-args", cl::Positional,
bool BugDriver::runPasses(Module &Program,
const std::vector<std::string> &Passes,
std::string &OutputFilename, bool DeleteOutput,
bool Quiet, unsigned NumExtraArgs,
const char *const *ExtraArgs) const {
bool Quiet, ArrayRef<std::string> ExtraArgs) const {
// setup the output file name
outs().flush();
SmallString<128> UniqueFilename;
Expand Down Expand Up @@ -223,8 +222,7 @@ bool BugDriver::runPasses(Module &Program,
I != E; ++I)
Args.push_back(I->c_str());
Args.push_back(Temp->TmpName.c_str());
for (unsigned i = 0; i < NumExtraArgs; ++i)
Args.push_back(*ExtraArgs);
Args.append(ExtraArgs.begin(), ExtraArgs.end());

LLVM_DEBUG(errs() << "\nAbout to run:\t";
for (unsigned i = 0, e = Args.size() - 1; i != e; ++i) errs()
Expand Down Expand Up @@ -268,10 +266,10 @@ bool BugDriver::runPasses(Module &Program,

std::unique_ptr<Module>
BugDriver::runPassesOn(Module *M, const std::vector<std::string> &Passes,
unsigned NumExtraArgs, const char *const *ExtraArgs) {
ArrayRef<std::string> ExtraArgs) {
std::string BitcodeResult;
if (runPasses(*M, Passes, BitcodeResult, false /*delete*/, true /*quiet*/,
NumExtraArgs, ExtraArgs)) {
ExtraArgs)) {
return nullptr;
}

Expand Down

0 comments on commit 2e62319

Please sign in to comment.