diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 005cdebc0d8ac..fd12bb41be47a 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -520,7 +520,6 @@ RISC-V Support ^^^^^^^^^^^^^^ - ``__attribute__((rvv_vector_bits(N)))`` is now supported for RVV vbool*_t types. -- Profile names in ``-march`` option are now supported. CUDA/HIP Language Changes ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang/test/Driver/riscv-profiles.c b/clang/test/Driver/riscv-profiles.c deleted file mode 100644 index 904f0c371f444..0000000000000 --- a/clang/test/Driver/riscv-profiles.c +++ /dev/null @@ -1,312 +0,0 @@ -// RUN: %clang -### -c %s 2>&1 -march=rvi20u32 | FileCheck -check-prefix=RVI20U32 %s -// RVI20U32: "-target-feature" "-a" -// RVI20U32: "-target-feature" "-c" -// RVI20U32: "-target-feature" "-d" -// RVI20U32: "-target-feature" "-f" -// RVI20U32: "-target-feature" "-m" - -// RUN: %clang -### -c %s 2>&1 -march=rvi20u64 | FileCheck -check-prefix=RVI20U64 %s -// RVI20U64: "-target-feature" "-a" -// RVI20U64: "-target-feature" "-c" -// RVI20U64: "-target-feature" "-d" -// RVI20U64: "-target-feature" "-f" -// RVI20U64: "-target-feature" "-m" - -// RUN: %clang -### -c %s 2>&1 -march=rva20u64 | FileCheck -check-prefix=RVA20U64 %s -// RVA20U64: "-target-feature" "+m" -// RVA20U64: "-target-feature" "+a" -// RVA20U64: "-target-feature" "+f" -// RVA20U64: "-target-feature" "+d" -// RVA20U64: "-target-feature" "+c" -// RVA20U64: "-target-feature" "+ziccamoa" -// RVA20U64: "-target-feature" "+ziccif" -// RVA20U64: "-target-feature" "+zicclsm" -// RVA20U64: "-target-feature" "+ziccrse" -// RVA20U64: "-target-feature" "+zicntr" -// RVA20U64: "-target-feature" "+zicsr" -// RVA20U64: "-target-feature" "+za128rs" - -// RUN: %clang -### -c %s 2>&1 -march=rva20s64 | FileCheck -check-prefix=RVA20S64 %s -// RVA20S64: "-target-feature" "+m" -// RVA20S64: "-target-feature" "+a" -// RVA20S64: "-target-feature" "+f" -// RVA20S64: "-target-feature" "+d" -// RVA20S64: "-target-feature" "+c" -// RVA20S64: "-target-feature" "+ziccamoa" -// RVA20S64: "-target-feature" "+ziccif" -// RVA20S64: "-target-feature" "+zicclsm" -// RVA20S64: "-target-feature" "+ziccrse" -// RVA20S64: "-target-feature" "+zicntr" -// RVA20S64: "-target-feature" "+zicsr" -// RVA20S64: "-target-feature" "+zifencei" -// RVA20S64: "-target-feature" "+za128rs" -// RVA20S64: "-target-feature" "+ssccptr" -// RVA20S64: "-target-feature" "+sstvala" -// RVA20S64: "-target-feature" "+sstvecd" -// RVA20S64: "-target-feature" "+svade" -// RVA20S64: "-target-feature" "+svbare" - -// RUN: %clang -### -c %s 2>&1 -march=rva22u64 | FileCheck -check-prefix=RVA22U64 %s -// RVA22U64: "-target-feature" "+m" -// RVA22U64: "-target-feature" "+a" -// RVA22U64: "-target-feature" "+f" -// RVA22U64: "-target-feature" "+d" -// RVA22U64: "-target-feature" "+c" -// RVA22U64: "-target-feature" "+zic64b" -// RVA22U64: "-target-feature" "+zicbom" -// RVA22U64: "-target-feature" "+zicbop" -// RVA22U64: "-target-feature" "+zicboz" -// RVA22U64: "-target-feature" "+ziccamoa" -// RVA22U64: "-target-feature" "+ziccif" -// RVA22U64: "-target-feature" "+zicclsm" -// RVA22U64: "-target-feature" "+ziccrse" -// RVA22U64: "-target-feature" "+zicntr" -// RVA22U64: "-target-feature" "+zicsr" -// RVA22U64: "-target-feature" "+zihintpause" -// RVA22U64: "-target-feature" "+zihpm" -// RVA22U64: "-target-feature" "+za64rs" -// RVA22U64: "-target-feature" "+zfhmin" -// RVA22U64: "-target-feature" "+zba" -// RVA22U64: "-target-feature" "+zbb" -// RVA22U64: "-target-feature" "+zbs" -// RVA22U64: "-target-feature" "+zkt" - -// RUN: %clang -### -c %s 2>&1 -march=rva22s64 | FileCheck -check-prefix=RVA22S64 %s -// RVA22S64: "-target-feature" "+m" -// RVA22S64: "-target-feature" "+a" -// RVA22S64: "-target-feature" "+f" -// RVA22S64: "-target-feature" "+d" -// RVA22S64: "-target-feature" "+c" -// RVA22S64: "-target-feature" "+zic64b" -// RVA22S64: "-target-feature" "+zicbom" -// RVA22S64: "-target-feature" "+zicbop" -// RVA22S64: "-target-feature" "+zicboz" -// RVA22S64: "-target-feature" "+ziccamoa" -// RVA22S64: "-target-feature" "+ziccif" -// RVA22S64: "-target-feature" "+zicclsm" -// RVA22S64: "-target-feature" "+ziccrse" -// RVA22S64: "-target-feature" "+zicntr" -// RVA22S64: "-target-feature" "+zicsr" -// RVA22S64: "-target-feature" "+zifencei" -// RVA22S64: "-target-feature" "+zihintpause" -// RVA22S64: "-target-feature" "+zihpm" -// RVA22S64: "-target-feature" "+za64rs" -// RVA22S64: "-target-feature" "+zfhmin" -// RVA22S64: "-target-feature" "+zba" -// RVA22S64: "-target-feature" "+zbb" -// RVA22S64: "-target-feature" "+zbs" -// RVA22S64: "-target-feature" "+zkt" -// RVA22S64: "-target-feature" "+ssccptr" -// RVA22S64: "-target-feature" "+sscounterenw" -// RVA22S64: "-target-feature" "+sstvala" -// RVA22S64: "-target-feature" "+sstvecd" -// RVA22S64: "-target-feature" "+svade" -// RVA22S64: "-target-feature" "+svbare" -// RVA22S64: "-target-feature" "+svinval" -// RVA22S64: "-target-feature" "+svpbmt" - -// RUN: %clang -### -c %s 2>&1 -march=rva23u64 -menable-experimental-extensions | FileCheck -check-prefix=RVA23U64 %s -// RVA23U64: "-target-feature" "+m" -// RVA23U64: "-target-feature" "+a" -// RVA23U64: "-target-feature" "+f" -// RVA23U64: "-target-feature" "+d" -// RVA23U64: "-target-feature" "+c" -// RVA23U64: "-target-feature" "+v" -// RVA23U64: "-target-feature" "+zic64b" -// RVA23U64: "-target-feature" "+zicbom" -// RVA23U64: "-target-feature" "+zicbop" -// RVA23U64: "-target-feature" "+zicboz" -// RVA23U64: "-target-feature" "+ziccamoa" -// RVA23U64: "-target-feature" "+ziccif" -// RVA23U64: "-target-feature" "+zicclsm" -// RVA23U64: "-target-feature" "+ziccrse" -// RVA23U64: "-target-feature" "+zicntr" -// RVA23U64: "-target-feature" "+zicond" -// RVA23U64: "-target-feature" "+zicsr" -// RVA23U64: "-target-feature" "+zihintntl" -// RVA23U64: "-target-feature" "+zihintpause" -// RVA23U64: "-target-feature" "+zihpm" -// RVA23U64: "-target-feature" "+experimental-zimop" -// RVA23U64: "-target-feature" "+za64rs" -// RVA23U64: "-target-feature" "+zawrs" -// RVA23U64: "-target-feature" "+zfa" -// RVA23U64: "-target-feature" "+zfhmin" -// RVA23U64: "-target-feature" "+zcb" -// RVA23U64: "-target-feature" "+experimental-zcmop" -// RVA23U64: "-target-feature" "+zba" -// RVA23U64: "-target-feature" "+zbb" -// RVA23U64: "-target-feature" "+zbs" -// RVA23U64: "-target-feature" "+zkt" -// RVA23U64: "-target-feature" "+zvbb" -// RVA23U64: "-target-feature" "+zvfhmin" -// RVA23U64: "-target-feature" "+zvkt" - -// RUN: %clang -### -c %s 2>&1 -march=rva23s64 -menable-experimental-extensions | FileCheck -check-prefix=RVA23S64 %s -// RVA23S64: "-target-feature" "+m" -// RVA23S64: "-target-feature" "+a" -// RVA23S64: "-target-feature" "+f" -// RVA23S64: "-target-feature" "+d" -// RVA23S64: "-target-feature" "+c" -// RVA23S64: "-target-feature" "+v" -// RVA23S64: "-target-feature" "+h" -// RVA23S64: "-target-feature" "+zic64b" -// RVA23S64: "-target-feature" "+zicbom" -// RVA23S64: "-target-feature" "+zicbop" -// RVA23S64: "-target-feature" "+zicboz" -// RVA23S64: "-target-feature" "+ziccamoa" -// RVA23S64: "-target-feature" "+ziccif" -// RVA23S64: "-target-feature" "+zicclsm" -// RVA23S64: "-target-feature" "+ziccrse" -// RVA23S64: "-target-feature" "+zicntr" -// RVA23S64: "-target-feature" "+zicond" -// RVA23S64: "-target-feature" "+zicsr" -// RVA23S64: "-target-feature" "+zifencei" -// RVA23S64: "-target-feature" "+zihintntl" -// RVA23S64: "-target-feature" "+zihintpause" -// RVA23S64: "-target-feature" "+zihpm" -// RVA23S64: "-target-feature" "+experimental-zimop" -// RVA23S64: "-target-feature" "+za64rs" -// RVA23S64: "-target-feature" "+zawrs" -// RVA23S64: "-target-feature" "+zfa" -// RVA23S64: "-target-feature" "+zfhmin" -// RVA23S64: "-target-feature" "+zcb" -// RVA23S64: "-target-feature" "+experimental-zcmop" -// RVA23S64: "-target-feature" "+zba" -// RVA23S64: "-target-feature" "+zbb" -// RVA23S64: "-target-feature" "+zbs" -// RVA23S64: "-target-feature" "+zkt" -// RVA23S64: "-target-feature" "+zvbb" -// RVA23S64: "-target-feature" "+zvfhmin" -// RVA23S64: "-target-feature" "+zvkt" -// RVA23S64: "-target-feature" "+shcounterenw" -// RVA23S64: "-target-feature" "+shgatpa" -// RVA23S64: "-target-feature" "+shtvala" -// RVA23S64: "-target-feature" "+shvsatpa" -// RVA23S64: "-target-feature" "+shvstvala" -// RVA23S64: "-target-feature" "+shvstvecd" -// RVA23S64: "-target-feature" "+ssccptr" -// RVA23S64: "-target-feature" "+sscofpmf" -// RVA23S64: "-target-feature" "+sscounterenw" -// RVA23S64: "-target-feature" "+experimental-ssnpm" -// RVA23S64: "-target-feature" "+ssstateen" -// RVA23S64: "-target-feature" "+sstc" -// RVA23S64: "-target-feature" "+sstvala" -// RVA23S64: "-target-feature" "+sstvecd" -// RVA23S64: "-target-feature" "+ssu64xl" -// RVA23S64: "-target-feature" "+svade" -// RVA23S64: "-target-feature" "+svbare" -// RVA23S64: "-target-feature" "+svinval" -// RVA23S64: "-target-feature" "+svnapot" -// RVA23S64: "-target-feature" "+svpbmt" - -// RUN: %clang -### -c %s 2>&1 -march=rvb23u64 -menable-experimental-extensions | FileCheck -check-prefix=RVB23U64 %s -// RVB23U64: "-target-feature" "+m" -// RVB23U64: "-target-feature" "+a" -// RVB23U64: "-target-feature" "+f" -// RVB23U64: "-target-feature" "+d" -// RVB23U64: "-target-feature" "+c" -// RVB23U64: "-target-feature" "+zic64b" -// RVB23U64: "-target-feature" "+zicbom" -// RVB23U64: "-target-feature" "+zicbop" -// RVB23U64: "-target-feature" "+zicboz" -// RVB23U64: "-target-feature" "+ziccamoa" -// RVB23U64: "-target-feature" "+ziccif" -// RVB23U64: "-target-feature" "+zicclsm" -// RVB23U64: "-target-feature" "+ziccrse" -// RVB23U64: "-target-feature" "+zicntr" -// RVB23U64: "-target-feature" "+zicond" -// RVB23U64: "-target-feature" "+zicsr" -// RVB23U64: "-target-feature" "+zihintntl" -// RVB23U64: "-target-feature" "+zihintpause" -// RVB23U64: "-target-feature" "+zihpm" -// RVB23U64: "-target-feature" "+experimental-zimop" -// RVB23U64: "-target-feature" "+za64rs" -// RVB23U64: "-target-feature" "+zawrs" -// RVB23U64: "-target-feature" "+zfa" -// RVB23U64: "-target-feature" "+zcb" -// RVB23U64: "-target-feature" "+experimental-zcmop" -// RVB23U64: "-target-feature" "+zba" -// RVB23U64: "-target-feature" "+zbb" -// RVB23U64: "-target-feature" "+zbs" -// RVB23U64: "-target-feature" "+zkt" - -// RUN: %clang -### -c %s 2>&1 -march=rvb23s64 -menable-experimental-extensions | FileCheck -check-prefix=RVB23S64 %s -// RVB23S64: "-target-feature" "+m" -// RVB23S64: "-target-feature" "+a" -// RVB23S64: "-target-feature" "+f" -// RVB23S64: "-target-feature" "+d" -// RVB23S64: "-target-feature" "+c" -// RVB23S64: "-target-feature" "+zic64b" -// RVB23S64: "-target-feature" "+zicbom" -// RVB23S64: "-target-feature" "+zicbop" -// RVB23S64: "-target-feature" "+zicboz" -// RVB23S64: "-target-feature" "+ziccamoa" -// RVB23S64: "-target-feature" "+ziccif" -// RVB23S64: "-target-feature" "+zicclsm" -// RVB23S64: "-target-feature" "+ziccrse" -// RVB23S64: "-target-feature" "+zicntr" -// RVB23S64: "-target-feature" "+zicond" -// RVB23S64: "-target-feature" "+zicsr" -// RVB23S64: "-target-feature" "+zifencei" -// RVB23S64: "-target-feature" "+zihintntl" -// RVB23S64: "-target-feature" "+zihintpause" -// RVB23S64: "-target-feature" "+zihpm" -// RVB23S64: "-target-feature" "+experimental-zimop" -// RVB23S64: "-target-feature" "+za64rs" -// RVB23S64: "-target-feature" "+zawrs" -// RVB23S64: "-target-feature" "+zfa" -// RVB23S64: "-target-feature" "+zcb" -// RVB23S64: "-target-feature" "+experimental-zcmop" -// RVB23S64: "-target-feature" "+zba" -// RVB23S64: "-target-feature" "+zbb" -// RVB23S64: "-target-feature" "+zbs" -// RVB23S64: "-target-feature" "+zkt" -// RVB23S64: "-target-feature" "+ssccptr" -// RVB23S64: "-target-feature" "+sscofpmf" -// RVB23S64: "-target-feature" "+sscounterenw" -// RVB23S64: "-target-feature" "+sstc" -// RVB23S64: "-target-feature" "+sstvala" -// RVB23S64: "-target-feature" "+sstvecd" -// RVB23S64: "-target-feature" "+ssu64xl" -// RVB23S64: "-target-feature" "+svade" -// RVB23S64: "-target-feature" "+svbare" -// RVB23S64: "-target-feature" "+svinval" -// RVB23S64: "-target-feature" "+svnapot" -// RVB23S64: "-target-feature" "+svpbmt" - -// RUN: %clang -### -c %s 2>&1 -march=rvm23u32 -menable-experimental-extensions | FileCheck -check-prefix=RVM23U32 %s -// RVM23U32: "-target-feature" "+m" -// RVM23U32: "-target-feature" "+zicbop" -// RVM23U32: "-target-feature" "+zicond" -// RVM23U32: "-target-feature" "+zicsr" -// RVM23U32: "-target-feature" "+zihintntl" -// RVM23U32: "-target-feature" "+zihintpause" -// RVM23U32: "-target-feature" "+experimental-zimop" -// RVM23U32: "-target-feature" "+zce" -// RVM23U32: "-target-feature" "+experimental-zcmop" -// RVM23U32: "-target-feature" "+zba" -// RVM23U32: "-target-feature" "+zbb" -// RVM23U32: "-target-feature" "+zbs" - -// RUN: %clang -### -c %s 2>&1 -march=rva22u64_zfa | FileCheck -check-prefix=PROFILE-WITH-ADDITIONAL %s -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+m" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+a" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+f" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+d" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+c" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zicbom" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zicbop" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zicboz" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zihintpause" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zfa" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zfhmin" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zba" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zbb" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zbs" -// PROFILE-WITH-ADDITIONAL: "-target-feature" "+zkt" - -// RUN: not %clang -### -c %s 2>&1 -march=rva19u64_zfa | FileCheck -check-prefix=INVALID-PROFILE %s -// INVALID-PROFILE: error: invalid arch name 'rva19u64_zfa', unsupported profile - -// RUN: not %clang -### -c %s 2>&1 -march=rva22u64zfa | FileCheck -check-prefix=INVALID-ADDITIONAL %s -// INVALID-ADDITIONAL: error: invalid arch name 'rva22u64zfa', additional extensions must be after separator '_' diff --git a/llvm/lib/Support/RISCVISAInfo.cpp b/llvm/lib/Support/RISCVISAInfo.cpp index 67e6e5b962b1a..39235ace47248 100644 --- a/llvm/lib/Support/RISCVISAInfo.cpp +++ b/llvm/lib/Support/RISCVISAInfo.cpp @@ -36,11 +36,6 @@ struct RISCVSupportedExtension { } }; -struct RISCVProfile { - StringLiteral Name; - StringLiteral MArch; -}; - } // end anonymous namespace static constexpr StringLiteral AllStdExts = "mafdqlcbkjtpvnh"; @@ -249,42 +244,6 @@ static const RISCVSupportedExtension SupportedExperimentalExtensions[] = { }; // clang-format on -static constexpr RISCVProfile SupportedProfiles[] = { - {"rvi20u32", "rv32i"}, - {"rvi20u64", "rv64i"}, - {"rva20u64", "rv64imafdc_ziccamoa_ziccif_zicclsm_ziccrse_zicntr_za128rs"}, - {"rva20s64", "rv64imafdc_ziccamoa_ziccif_zicclsm_ziccrse_zicntr_zifencei_" - "za128rs_ssccptr_sstvala_sstvecd_svade_svbare"}, - {"rva22u64", - "rv64imafdc_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ziccrse_" - "zicntr_zihintpause_zihpm_za64rs_zfhmin_zba_zbb_zbs_zkt"}, - {"rva22s64", - "rv64imafdc_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ziccrse_" - "zicntr_zifencei_zihintpause_zihpm_za64rs_zfhmin_zba_zbb_zbs_zkt_ssccptr_" - "sscounterenw_sstvala_sstvecd_svade_svbare_svinval_svpbmt"}, - {"rva23u64", - "rv64imafdcv_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ziccrse_" - "zicntr_zicond_zihintntl_zihintpause_zihpm_zimop0p1_za64rs_zawrs_zfa_" - "zfhmin_zcb_zcmop0p2_zba_zbb_zbs_zkt_zvbb_zvfhmin_zvkt"}, - {"rva23s64", - "rv64imafdcvh_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ziccrse_" - "zicntr_zicond_zifencei_zihintntl_zihintpause_zihpm_zimop0p1_za64rs_zawrs_" - "zfa_zfhmin_zcb_zcmop0p2_zba_zbb_zbs_zkt_zvbb_zvfhmin_zvkt_shcounterenw_" - "shgatpa_shtvala_shvsatpa_shvstvala_shvstvecd_ssccptr_sscofpmf_" - "sscounterenw_ssnpm0p8_ssstateen_sstc_sstvala_sstvecd_ssu64xl_svade_" - "svbare_svinval_svnapot_svpbmt"}, - {"rvb23u64", "rv64imafdc_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_" - "zicclsm_ziccrse_zicntr_zicond_zihintntl_zihintpause_zihpm_" - "zimop0p1_za64rs_zawrs_zfa_zcb_zcmop0p2_zba_zbb_zbs_zkt"}, - {"rvb23s64", - "rv64imafdc_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ziccrse_" - "zicntr_zicond_zifencei_zihintntl_zihintpause_zihpm_zimop0p1_za64rs_zawrs_" - "zfa_zcb_zcmop0p2_zba_zbb_zbs_zkt_ssccptr_sscofpmf_sscounterenw_sstc_" - "sstvala_sstvecd_ssu64xl_svade_svbare_svinval_svnapot_svpbmt"}, - {"rvm23u32", "rv32im_zicbop_zicond_zicsr_zihintntl_zihintpause_zimop0p1_" - "zca_zcb_zce_zcmop0p2_zcmp_zcmt_zba_zbb_zbs"}, -}; - static void verifyTables() { #ifndef NDEBUG static std::atomic TableChecked(false); @@ -898,29 +857,6 @@ RISCVISAInfo::parseArchString(StringRef Arch, bool EnableExperimentalExtension, "string must be lowercase"); } - if (Arch.starts_with("rvi") || Arch.starts_with("rva") || - Arch.starts_with("rvb") || Arch.starts_with("rvm")) { - const auto *FoundProfile = - llvm::find_if(SupportedProfiles, [Arch](const RISCVProfile &Profile) { - return Arch.starts_with(Profile.Name); - }); - - if (FoundProfile == std::end(SupportedProfiles)) - return createStringError(errc::invalid_argument, "unsupported profile"); - - std::string NewArch = FoundProfile->MArch.str(); - StringRef ArchWithoutProfile = Arch.substr(FoundProfile->Name.size()); - if (!ArchWithoutProfile.empty()) { - if (!ArchWithoutProfile.starts_with("_")) - return createStringError( - errc::invalid_argument, - "additional extensions must be after separator '_'"); - NewArch += ArchWithoutProfile.str(); - } - return parseArchString(NewArch, EnableExperimentalExtension, - ExperimentalExtensionVersionCheck, IgnoreUnknown); - } - bool HasRV64 = Arch.starts_with("rv64"); // ISA string must begin with rv32 or rv64. if (!(Arch.starts_with("rv32") || HasRV64) || (Arch.size() < 5)) {