diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2025-05-01 13:08:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-01 13:08:39 +0200 |
commit | 21aa7b8138a140514ea90d85bf86c57de68c6d4f (patch) | |
tree | 6c189aa4e30111a5481da91c792ee07f8aa697ca /llvm/lib/IR/Verifier.cpp | |
parent | 00f9ef282c7482754a0fea497417604d1deca9fa (diff) | |
download | llvm-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.cpp | 16 |
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); |