aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/opt
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/opt')
-rw-r--r--llvm/tools/opt/NewPMDriver.cpp30
-rw-r--r--llvm/tools/opt/NewPMDriver.h4
-rw-r--r--llvm/tools/opt/opt.cpp8
-rw-r--r--llvm/tools/opt/optdriver.cpp42
4 files changed, 43 insertions, 41 deletions
diff --git a/llvm/tools/opt/NewPMDriver.cpp b/llvm/tools/opt/NewPMDriver.cpp
index c19fc19..a383415 100644
--- a/llvm/tools/opt/NewPMDriver.cpp
+++ b/llvm/tools/opt/NewPMDriver.cpp
@@ -45,32 +45,30 @@
using namespace llvm;
using namespace opt_tool;
-namespace llvm {
-cl::opt<bool> DebugifyEach(
+cl::opt<bool> llvm::DebugifyEach(
"debugify-each",
cl::desc("Start each pass with debugify and end it with check-debugify"));
-cl::opt<std::string>
- DebugifyExport("debugify-export",
- cl::desc("Export per-pass debugify statistics to this file"),
- cl::value_desc("filename"));
+cl::opt<std::string> llvm::DebugifyExport(
+ "debugify-export",
+ cl::desc("Export per-pass debugify statistics to this file"),
+ cl::value_desc("filename"));
-cl::opt<bool> VerifyEachDebugInfoPreserve(
+cl::opt<bool> llvm::VerifyEachDebugInfoPreserve(
"verify-each-debuginfo-preserve",
cl::desc("Start each pass with collecting and end it with checking of "
"debug info preservation."));
+cl::opt<std::string> llvm::VerifyDIPreserveExport(
+ "verify-di-preserve-export",
+ cl::desc("Export debug info preservation failures into "
+ "specified (JSON) file (should be abs path as we use"
+ " append mode to insert new JSON objects)"),
+ cl::value_desc("filename"), cl::init(""));
+
static cl::opt<bool> EnableLoopFusion("enable-loopfusion", cl::init(false),
cl::Hidden,
cl::desc("Enable the LoopFuse Pass"));
-cl::opt<std::string>
- VerifyDIPreserveExport("verify-di-preserve-export",
- cl::desc("Export debug info preservation failures into "
- "specified (JSON) file (should be abs path as we use"
- " append mode to insert new JSON objects)"),
- cl::value_desc("filename"), cl::init(""));
-
-} // namespace llvm
enum class DebugLogging { None, Normal, Verbose, Quiet };
@@ -356,7 +354,7 @@ bool llvm::runPassPipeline(
ToolOutputFile *Out, ToolOutputFile *ThinLTOLinkOut,
ToolOutputFile *OptRemarkFile, StringRef PassPipeline,
ArrayRef<PassPlugin> PassPlugins,
- ArrayRef<std::function<void(llvm::PassBuilder &)>> PassBuilderCallbacks,
+ ArrayRef<std::function<void(PassBuilder &)>> PassBuilderCallbacks,
OutputKind OK, VerifierKind VK, bool ShouldPreserveAssemblyUseListOrder,
bool ShouldPreserveBitcodeUseListOrder, bool EmitSummaryIndex,
bool EmitModuleHash, bool EnableDebugify, bool VerifyDIPreserve,
diff --git a/llvm/tools/opt/NewPMDriver.h b/llvm/tools/opt/NewPMDriver.h
index 6c21d6c..042d5d4 100644
--- a/llvm/tools/opt/NewPMDriver.h
+++ b/llvm/tools/opt/NewPMDriver.h
@@ -52,7 +52,7 @@ enum PGOKind {
SampleUse
};
enum CSPGOKind { NoCSPGO, CSInstrGen, CSInstrUse };
-}
+} // namespace opt_tool
void printPasses(raw_ostream &OS);
@@ -70,7 +70,7 @@ bool runPassPipeline(
ToolOutputFile *Out, ToolOutputFile *ThinLinkOut,
ToolOutputFile *OptRemarkFile, StringRef PassPipeline,
ArrayRef<PassPlugin> PassPlugins,
- ArrayRef<std::function<void(llvm::PassBuilder &)>> PassBuilderCallbacks,
+ ArrayRef<std::function<void(PassBuilder &)>> PassBuilderCallbacks,
opt_tool::OutputKind OK, opt_tool::VerifierKind VK,
bool ShouldPreserveAssemblyUseListOrder,
bool ShouldPreserveBitcodeUseListOrder, bool EmitSummaryIndex,
diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp
index fc8bd665..ad0f8f4a 100644
--- a/llvm/tools/opt/opt.cpp
+++ b/llvm/tools/opt/opt.cpp
@@ -14,12 +14,14 @@
#include "llvm/ADT/ArrayRef.h"
#include <functional>
+using namespace llvm;
+
namespace llvm {
class PassBuilder;
}
-extern "C" int optMain(int argc, char **argv,
- llvm::ArrayRef<std::function<void(llvm::PassBuilder &)>>
- PassBuilderCallbacks);
+extern "C" int
+optMain(int argc, char **argv,
+ ArrayRef<std::function<void(PassBuilder &)>> PassBuilderCallbacks);
int main(int argc, char **argv) { return optMain(argc, argv, {}); }
diff --git a/llvm/tools/opt/optdriver.cpp b/llvm/tools/opt/optdriver.cpp
index 2ac8de7..f70db31 100644
--- a/llvm/tools/opt/optdriver.cpp
+++ b/llvm/tools/opt/optdriver.cpp
@@ -296,23 +296,25 @@ static CodeGenOptLevel GetCodeGenOptLevel() {
return static_cast<CodeGenOptLevel>(unsigned(CodeGenOptLevelCL));
}
+namespace {
struct TimeTracerRAII {
TimeTracerRAII(StringRef ProgramName) {
if (TimeTrace)
timeTraceProfilerInitialize(TimeTraceGranularity, ProgramName);
}
~TimeTracerRAII() {
- if (TimeTrace) {
- if (auto E = timeTraceProfilerWrite(TimeTraceFile, OutputFilename)) {
- handleAllErrors(std::move(E), [&](const StringError &SE) {
- errs() << SE.getMessage() << "\n";
- });
- return;
- }
- timeTraceProfilerCleanup();
+ if (!TimeTrace)
+ return;
+ if (auto E = timeTraceProfilerWrite(TimeTraceFile, OutputFilename)) {
+ handleAllErrors(std::move(E), [&](const StringError &SE) {
+ errs() << SE.getMessage() << "\n";
+ });
+ return;
}
+ timeTraceProfilerCleanup();
}
};
+} // namespace
// For use in NPM transition. Currently this contains most codegen-specific
// passes. Remove passes from here when porting to the NPM.
@@ -377,10 +379,10 @@ static bool shouldPinPassToLegacyPM(StringRef Pass) {
"callbrprepare",
"scalarizer",
};
- for (const auto &P : PassNamePrefix)
+ for (StringLiteral P : PassNamePrefix)
if (Pass.starts_with(P))
return true;
- for (const auto &P : PassNameContain)
+ for (StringLiteral P : PassNameContain)
if (Pass.contains(P))
return true;
return llvm::is_contained(PassNameExact, Pass);
@@ -388,7 +390,7 @@ static bool shouldPinPassToLegacyPM(StringRef Pass) {
// For use in NPM transition.
static bool shouldForceLegacyPM() {
- for (const auto &P : PassList) {
+ for (const PassInfo *P : PassList) {
StringRef Arg = P->getPassArgument();
if (shouldPinPassToLegacyPM(Arg))
return true;
@@ -399,9 +401,9 @@ static bool shouldForceLegacyPM() {
//===----------------------------------------------------------------------===//
// main for opt
//
-extern "C" int optMain(
- int argc, char **argv,
- ArrayRef<std::function<void(llvm::PassBuilder &)>> PassBuilderCallbacks) {
+extern "C" int
+optMain(int argc, char **argv,
+ ArrayRef<std::function<void(PassBuilder &)>> PassBuilderCallbacks) {
InitLLVM X(argc, argv);
// Enable debug stream buffering.
@@ -673,7 +675,7 @@ extern "C" int optMain(
else {
// Disable individual builtin functions in TargetLibraryInfo.
LibFunc F;
- for (auto &FuncName : DisableBuiltins) {
+ for (const std::string &FuncName : DisableBuiltins) {
if (TLII.getLibFunc(FuncName, F))
TLII.setUnavailable(F);
else {
@@ -683,7 +685,7 @@ extern "C" int optMain(
}
}
- for (auto &FuncName : EnableBuiltins) {
+ for (const std::string &FuncName : EnableBuiltins) {
if (TLII.getLibFunc(FuncName, F))
TLII.setAvailable(F);
else {
@@ -814,9 +816,8 @@ extern "C" int optMain(
Passes.add(TPC);
}
- // Create a new optimization pass for each one specified on the command line
- for (unsigned i = 0; i < PassList.size(); ++i) {
- const PassInfo *PassInf = PassList[i];
+ // Create a new optimization pass for each one specified on the command line.
+ for (const PassInfo *PassInf : PassList) {
if (PassInf->getNormalCtor()) {
Pass *P = PassInf->getNormalCtor()();
if (P) {
@@ -826,9 +827,10 @@ extern "C" int optMain(
if (VerifyEach)
Passes.add(createVerifierPass());
}
- } else
+ } else {
errs() << argv[0] << ": cannot create pass: " << PassInf->getPassName()
<< "\n";
+ }
}
// Check that the module is well formed on completion of optimization