[llvm] Revert "Revert "[AArch64][AsmParser] Directives should clear transitively implied features (#106625)"" (PR #106814)
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 30 17:41:09 PDT 2024
================
@@ -7075,30 +7075,22 @@ bool AArch64AsmParser::parseDirectiveCPU(SMLoc L) {
bool EnableFeature = !Name.consume_front_insensitive("no");
- bool FoundExtension = false;
- for (const auto &Extension : ExtensionMap) {
- if (Extension.Name != Name)
- continue;
-
- if (Extension.Features.none())
- report_fatal_error("unsupported architectural extension: " + Name);
-
- FeatureBitset Features = STI.getFeatureBits();
- FeatureBitset ToggleFeatures =
- EnableFeature
- ? STI.SetFeatureBitsTransitively(~Features & Extension.Features)
- : STI.ToggleFeature(Features & Extension.Features);
- setAvailableFeatures(ComputeAvailableFeatures(ToggleFeatures));
- FoundExtension = true;
+ auto It = llvm::find_if(ExtensionMap, [&Name](const auto &Extension) {
+ return Extension.Name == Name;
+ });
- break;
- }
+ if (It == std::end(ExtensionMap))
+ Error(CurLoc, "unsupported architectural extension: " + Name);
----------------
vitalybuka wrote:
We can't continue this loop if `It == std::end(ExtensionMap)`
https://github.com/llvm/llvm-project/pull/106814
More information about the llvm-commits
mailing list