Skip to content

Commit 21aa7b8

Browse files
authored
Verifier: Avoid unnecessary hasFnAttr (#138104)
When checking string attribute values are valid, it's not necessary to check hasFnAttr prior to querying the value.
1 parent 00f9ef2 commit 21aa7b8

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

llvm/lib/IR/Verifier.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2388,18 +2388,20 @@ void Verifier::verifyFunctionAttrs(FunctionType *FT, AttributeList Attrs,
23882388
CheckFailed("'vscale_range' maximum must be power-of-two value", V);
23892389
}
23902390

2391-
if (Attrs.hasFnAttr("frame-pointer")) {
2392-
StringRef FP = Attrs.getFnAttr("frame-pointer").getValueAsString();
2391+
if (Attribute FPAttr = Attrs.getFnAttr("frame-pointer"); FPAttr.isValid()) {
2392+
StringRef FP = FPAttr.getValueAsString();
23932393
if (FP != "all" && FP != "non-leaf" && FP != "none" && FP != "reserved")
23942394
CheckFailed("invalid value for 'frame-pointer' attribute: " + FP, V);
23952395
}
23962396

23972397
// Check EVEX512 feature.
2398-
if (MaxParameterWidth >= 512 && Attrs.hasFnAttr("target-features") &&
2399-
TT.isX86()) {
2400-
StringRef TF = Attrs.getFnAttr("target-features").getValueAsString();
2401-
Check(!TF.contains("+avx512f") || !TF.contains("-evex512"),
2402-
"512-bit vector arguments require 'evex512' for AVX512", V);
2398+
if (TT.isX86() && MaxParameterWidth >= 512) {
2399+
Attribute TargetFeaturesAttr = Attrs.getFnAttr("target-features");
2400+
if (TargetFeaturesAttr.isValid()) {
2401+
StringRef TF = TargetFeaturesAttr.getValueAsString();
2402+
Check(!TF.contains("+avx512f") || !TF.contains("-evex512"),
2403+
"512-bit vector arguments require 'evex512' for AVX512", V);
2404+
}
24032405
}
24042406

24052407
checkUnsignedBaseTenFuncAttr(Attrs, "patchable-function-prefix", V);

0 commit comments

Comments
 (0)