aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Passes/PassBuilder.cpp
diff options
context:
space:
mode:
authorFrederik Harwath <frederik.harwath@amd.com>2025-09-10 10:44:28 +0200
committerGitHub <noreply@github.com>2025-09-10 10:44:28 +0200
commitffcf82c4a8966450ee1ccf742287c9b2bdef2e26 (patch)
tree49829ad82daff87619384a897faefb5ac376b43d /llvm/lib/Passes/PassBuilder.cpp
parentbc65352ab5eeabecd6d8dca0ca1d5a628101dfde (diff)
downloadllvm-ffcf82c4a8966450ee1ccf742287c9b2bdef2e26.zip
llvm-ffcf82c4a8966450ee1ccf742287c9b2bdef2e26.tar.gz
llvm-ffcf82c4a8966450ee1ccf742287c9b2bdef2e26.tar.bz2
[AMDGPU] Change expand-fp opt level argument syntax (#157408)
Align the syntax used for the optimization level argument of the expand-fp pass in textual descriptions of pass pipelines with the syntax used by other passes taking a similar argument. That is, use e.g. `expand-fp<O1>` instead of `expand-fp<opt-level=1>`.
Diffstat (limited to 'llvm/lib/Passes/PassBuilder.cpp')
-rw-r--r--llvm/lib/Passes/PassBuilder.cpp22
1 files changed, 10 insertions, 12 deletions
diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp
index 587f0ec..8cf2776 100644
--- a/llvm/lib/Passes/PassBuilder.cpp
+++ b/llvm/lib/Passes/PassBuilder.cpp
@@ -1493,25 +1493,23 @@ parseBoundsCheckingOptions(StringRef Params) {
return Options;
}
-Expected<CodeGenOptLevel> parseExpandFpOptions(StringRef Params) {
- if (Params.empty())
+Expected<CodeGenOptLevel> parseExpandFpOptions(StringRef Param) {
+ if (Param.empty())
return CodeGenOptLevel::None;
- StringRef Param;
- std::tie(Param, Params) = Params.split(';');
- if (!Params.empty())
- return createStringError("too many expand-fp pass parameters");
+ // Parse a CodeGenOptLevel, e.g. "O1", "O2", "O3".
+ auto [Prefix, Digit] = Param.split('O');
- auto [Name, Val] = Param.split('=');
- if (Name != "opt-level")
+ uint8_t N;
+ if (!Prefix.empty() || Digit.getAsInteger(10, N))
return createStringError("invalid expand-fp pass parameter '%s'",
Param.str().c_str());
- int8_t N;
- Val.getAsInteger(10, N);
+
std::optional<CodeGenOptLevel> Level = CodeGenOpt::getLevel(N);
if (!Level.has_value())
- return createStringError("invalid expand-fp opt-level value: %s",
- Val.str().c_str());
+ return createStringError(
+ "invalid optimization level for expand-fp pass: %s",
+ Digit.str().c_str());
return *Level;
}