diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2025-04-01 23:27:20 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-01 23:27:20 +0700 |
commit | 7e25b240731413d2cfca2b78ab1d0ed33d851622 (patch) | |
tree | 23ab29418523ec254b6ead8dc5fa462b559b15cd /llvm/lib/Passes/PassBuilder.cpp | |
parent | 105c8c38dcb7fd6077c92c5e0f838c9b7ad9971e (diff) | |
download | llvm-7e25b240731413d2cfca2b78ab1d0ed33d851622.zip llvm-7e25b240731413d2cfca2b78ab1d0ed33d851622.tar.gz llvm-7e25b240731413d2cfca2b78ab1d0ed33d851622.tar.bz2 |
IRNormalizer: Replace cl::opts with pass parameters (#133874)
Not sure why the "fold-all" option naming didn't match the
variable "FoldPreOutputs", but I've preserved the difference.
More annoyingly, the pass name "normalize" does not match the pass
name IRNormalizer and should probably be fixed one way or the other.
Also the existing test coverage for the flags is lacking. I've added
a test that shows they parse, but we should have tests that they
do something.
Diffstat (limited to 'llvm/lib/Passes/PassBuilder.cpp')
-rw-r--r-- | llvm/lib/Passes/PassBuilder.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index 536a7fc..5cda151 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -793,6 +793,31 @@ Expected<bool> parseLowerMatrixIntrinsicsPassOptions(StringRef Params) { "LowerMatrixIntrinsics"); } +Expected<IRNormalizerOptions> parseIRNormalizerPassOptions(StringRef Params) { + IRNormalizerOptions Result; + while (!Params.empty()) { + StringRef ParamName; + std::tie(ParamName, Params) = Params.split(';'); + + bool Enable = !ParamName.consume_front("no-"); + if (ParamName == "preserve-order") + Result.PreserveOrder = Enable; + else if (ParamName == "rename-all") + Result.RenameAll = Enable; + else if (ParamName == "fold-all") // FIXME: Name mismatch + Result.FoldPreOutputs = Enable; + else if (ParamName == "reorder-operands") + Result.ReorderOperands = Enable; + else { + return make_error<StringError>( + formatv("invalid normalize pass parameter '{0}' ", ParamName).str(), + inconvertibleErrorCode()); + } + } + + return Result; +} + Expected<AddressSanitizerOptions> parseASanPassOptions(StringRef Params) { AddressSanitizerOptions Result; while (!Params.empty()) { |