summaryrefslogtreecommitdiffstats
path: root/llvm/lib/LTO/LTOBackend.cpp
diff options
context:
space:
mode:
authorFedor Sergeev <fedor.sergeev@azul.com>2018-10-17 10:36:23 +0000
committerFedor Sergeev <fedor.sergeev@azul.com>2018-10-17 10:36:23 +0000
commitbd6b2138b94a47a9226ec1e69bf3be55a47fd1ef (patch)
treede58f3925965bf772e2becdad7ff066b456d90ed /llvm/lib/LTO/LTOBackend.cpp
parent8a08412533536cf433097817e9f155a4ce68252b (diff)
downloadbcm5719-llvm-bd6b2138b94a47a9226ec1e69bf3be55a47fd1ef.tar.gz
bcm5719-llvm-bd6b2138b94a47a9226ec1e69bf3be55a47fd1ef.zip
[NewPM] teach -passes= to emit meaningful error messages
All the PassBuilder::parse interfaces now return descriptive StringError instead of a plain bool. It allows to make -passes/aa-pipeline parsing errors context-specific and thus less confusing. TODO: ideally we should also make suggestions for misspelled pass names, but that requires some extensions to PassBuilder. Reviewed By: philip.pfaffe, chandlerc Differential Revision: https://reviews.llvm.org/D53246 llvm-svn: 344685
Diffstat (limited to 'llvm/lib/LTO/LTOBackend.cpp')
-rw-r--r--llvm/lib/LTO/LTOBackend.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/llvm/lib/LTO/LTOBackend.cpp b/llvm/lib/LTO/LTOBackend.cpp
index 20fc40de4b9..1f9d60a5bdf 100644
--- a/llvm/lib/LTO/LTOBackend.cpp
+++ b/llvm/lib/LTO/LTOBackend.cpp
@@ -162,7 +162,7 @@ static void runNewPMPasses(Config &Conf, Module &Mod, TargetMachine *TM,
AAManager AA;
// Parse a custom AA pipeline if asked to.
- if (!PB.parseAAPipeline(AA, "default"))
+ if (auto Err = PB.parseAAPipeline(AA, "default"))
report_fatal_error("Error parsing default AA pipeline");
LoopAnalysisManager LAM(Conf.DebugPassManager);
@@ -221,9 +221,9 @@ static void runNewPMCustomPasses(Module &Mod, TargetMachine *TM,
// Parse a custom AA pipeline if asked to.
if (!AAPipelineDesc.empty())
- if (!PB.parseAAPipeline(AA, AAPipelineDesc))
- report_fatal_error("unable to parse AA pipeline description: " +
- AAPipelineDesc);
+ if (auto Err = PB.parseAAPipeline(AA, AAPipelineDesc))
+ report_fatal_error("unable to parse AA pipeline description '" +
+ AAPipelineDesc + "': " + toString(std::move(Err)));
LoopAnalysisManager LAM;
FunctionAnalysisManager FAM;
@@ -246,9 +246,9 @@ static void runNewPMCustomPasses(Module &Mod, TargetMachine *TM,
MPM.addPass(VerifierPass());
// Now, add all the passes we've been requested to.
- if (!PB.parsePassPipeline(MPM, PipelineDesc))
- report_fatal_error("unable to parse pass pipeline description: " +
- PipelineDesc);
+ if (auto Err = PB.parsePassPipeline(MPM, PipelineDesc))
+ report_fatal_error("unable to parse pass pipeline description '" +
+ PipelineDesc + "': " + toString(std::move(Err)));
if (!DisableVerify)
MPM.addPass(VerifierPass());
OpenPOWER on IntegriCloud