aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/Verifier.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2025-05-01 13:08:39 +0200
committerGitHub <noreply@github.com>2025-05-01 13:08:39 +0200
commit21aa7b8138a140514ea90d85bf86c57de68c6d4f (patch)
tree6c189aa4e30111a5481da91c792ee07f8aa697ca /llvm/lib/IR/Verifier.cpp
parent00f9ef282c7482754a0fea497417604d1deca9fa (diff)
downloadllvm-21aa7b8138a140514ea90d85bf86c57de68c6d4f.zip
llvm-21aa7b8138a140514ea90d85bf86c57de68c6d4f.tar.gz
llvm-21aa7b8138a140514ea90d85bf86c57de68c6d4f.tar.bz2
Verifier: Avoid unnecessary hasFnAttr (#138104)
When checking string attribute values are valid, it's not necessary to check hasFnAttr prior to querying the value.
Diffstat (limited to 'llvm/lib/IR/Verifier.cpp')
-rw-r--r--llvm/lib/IR/Verifier.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index 28ba944..7d1918e 100644
--- a/llvm/lib/IR/Verifier.cpp
+++ b/llvm/lib/IR/Verifier.cpp
@@ -2388,18 +2388,20 @@ void Verifier::verifyFunctionAttrs(FunctionType *FT, AttributeList Attrs,
CheckFailed("'vscale_range' maximum must be power-of-two value", V);
}
- if (Attrs.hasFnAttr("frame-pointer")) {
- StringRef FP = Attrs.getFnAttr("frame-pointer").getValueAsString();
+ if (Attribute FPAttr = Attrs.getFnAttr("frame-pointer"); FPAttr.isValid()) {
+ StringRef FP = FPAttr.getValueAsString();
if (FP != "all" && FP != "non-leaf" && FP != "none" && FP != "reserved")
CheckFailed("invalid value for 'frame-pointer' attribute: " + FP, V);
}
// Check EVEX512 feature.
- if (MaxParameterWidth >= 512 && Attrs.hasFnAttr("target-features") &&
- TT.isX86()) {
- StringRef TF = Attrs.getFnAttr("target-features").getValueAsString();
- Check(!TF.contains("+avx512f") || !TF.contains("-evex512"),
- "512-bit vector arguments require 'evex512' for AVX512", V);
+ if (TT.isX86() && MaxParameterWidth >= 512) {
+ Attribute TargetFeaturesAttr = Attrs.getFnAttr("target-features");
+ if (TargetFeaturesAttr.isValid()) {
+ StringRef TF = TargetFeaturesAttr.getValueAsString();
+ Check(!TF.contains("+avx512f") || !TF.contains("-evex512"),
+ "512-bit vector arguments require 'evex512' for AVX512", V);
+ }
}
checkUnsignedBaseTenFuncAttr(Attrs, "patchable-function-prefix", V);