[clang] [llvm] [RISCV] Add ability to list extensions enabled for a target (PR #98207)
Craig Topper via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 9 13:11:43 PDT 2024
================
@@ -116,6 +115,45 @@ void llvm::riscvExtensionsHelp(StringMap<StringRef> DescMap) {
"For example, clang -march=rv32i_v1p0\n";
}
+void RISCVISAInfo::printEnabledExtensions(
+ bool IsRV64, std::set<StringRef> &EnabledFeatureNames,
+ StringMap<StringRef> &DescMap) {
+ outs() << "Extensions enabled for the given RISC-V target\n\n";
+ PrintExtension("Name", "Version", (DescMap.empty() ? "" : "Description"));
+
+ RISCVISAUtils::OrderedExtensionMap FullExtMap;
+ RISCVISAUtils::OrderedExtensionMap ExtMap;
+ for (const auto &E : SupportedExtensions)
+ if (EnabledFeatureNames.find(E.Name) != EnabledFeatureNames.end()) {
+ FullExtMap[E.Name] = {E.Version.Major, E.Version.Minor};
+ ExtMap[E.Name] = {E.Version.Major, E.Version.Minor};
+ }
+ for (const auto &E : ExtMap) {
+ std::string Version =
+ std::to_string(E.second.Major) + "." + std::to_string(E.second.Minor);
+ PrintExtension(E.first, Version, DescMap[E.first]);
+ }
+
+ outs() << "\nExperimental extensions\n";
+ ExtMap.clear();
+ for (const auto &E : SupportedExperimentalExtensions) {
+ StringRef Name(E.Name);
+ if (EnabledFeatureNames.find("experimental-" + Name.str()) !=
----------------
topperc wrote:
`std::set::count`
https://github.com/llvm/llvm-project/pull/98207
More information about the cfe-commits
mailing list