[PATCH] D68228: [bugpoint] Update runPasses to take ArrayRef instead of a pointer (NFC)
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 30 08:49:28 PDT 2019
fhahn created this revision.
fhahn added reviewers: efriedma, bogner, dblaikie, diegotf.
Herald added a project: LLVM.
This makes it slightly easier to pass extra arguments to runPasses
and simplifies the code slightly.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D68228
Files:
llvm/tools/bugpoint/BugDriver.h
llvm/tools/bugpoint/ExtractFunction.cpp
llvm/tools/bugpoint/OptimizerDriver.cpp
Index: llvm/tools/bugpoint/OptimizerDriver.cpp
===================================================================
--- llvm/tools/bugpoint/OptimizerDriver.cpp
+++ llvm/tools/bugpoint/OptimizerDriver.cpp
@@ -130,8 +130,7 @@
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;
@@ -223,8 +222,7 @@
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()
@@ -268,10 +266,10 @@
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;
}
Index: llvm/tools/bugpoint/ExtractFunction.cpp
===================================================================
--- llvm/tools/bugpoint/ExtractFunction.cpp
+++ llvm/tools/bugpoint/ExtractFunction.cpp
@@ -407,11 +407,10 @@
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";
Index: llvm/tools/bugpoint/BugDriver.h
===================================================================
--- llvm/tools/bugpoint/BugDriver.h
+++ llvm/tools/bugpoint/BugDriver.h
@@ -217,8 +217,7 @@
/// 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
@@ -231,8 +230,8 @@
///
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68228.222443.patch
Type: text/x-patch
Size: 3555 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190930/13994dbb/attachment.bin>
More information about the llvm-commits
mailing list