[clang] [llvm] [RISCV] Teach .option arch to support experimental extensions. (PR #89727)
Craig Topper via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 30 23:00:03 PDT 2024
================
@@ -2824,8 +2826,12 @@ bool RISCVAsmParser::parseDirectiveOption() {
break;
}
- auto Ext = llvm::lower_bound(RISCVFeatureKV, Arch);
- if (Ext == std::end(RISCVFeatureKV) || StringRef(Ext->Key) != Arch ||
+ std::string Feature = RISCVISAInfo::getTargetFeatureForExtension(Arch);
+ if (!enableExperimentalExtension() &&
+ StringRef(Feature).starts_with("experimental-"))
+ return Error(Loc, "Unexpected experimental extensions.");
+ auto Ext = llvm::lower_bound(RISCVFeatureKV, Feature);
+ if (Ext == std::end(RISCVFeatureKV) || StringRef(Ext->Key) != Feature ||
!RISCVISAInfo::isSupportedExtension(Arch)) {
----------------
topperc wrote:
Do we still need the `RISCVISAInfo::isSupportedExtension(Arch)` check here? Did `RISCVISAInfo::getTargetFeatureForExtension` already take care of it?
https://github.com/llvm/llvm-project/pull/89727
More information about the cfe-commits
mailing list