LLVM 19.0.0git
|
#include "llvm/TargetParser/RISCVISAInfo.h"
Public Types | |
typedef std::map< std::string, RISCVISAUtils::ExtensionVersion, RISCVISAUtils::ExtensionComparator > | OrderedExtensionMap |
OrderedExtensionMap is std::map, it's specialized to keep entries in canonical order of extension. | |
Public Member Functions | |
RISCVISAInfo (const RISCVISAInfo &)=delete | |
RISCVISAInfo & | operator= (const RISCVISAInfo &)=delete |
RISCVISAInfo (unsigned XLen, OrderedExtensionMap &Exts) | |
std::vector< std::string > | toFeatures (bool AddAllExtensions=false, bool IgnoreUnknown=true) const |
Convert RISC-V ISA info to a feature vector. | |
const OrderedExtensionMap & | getExtensions () const |
unsigned | getXLen () const |
unsigned | getFLen () const |
unsigned | getMinVLen () const |
unsigned | getMaxVLen () const |
unsigned | getMaxELen () const |
unsigned | getMaxELenFp () const |
bool | hasExtension (StringRef Ext) const |
std::string | toString () const |
StringRef | computeDefaultABI () const |
Static Public Member Functions | |
static llvm::Expected< std::unique_ptr< RISCVISAInfo > > | parseArchString (StringRef Arch, bool EnableExperimentalExtension, bool ExperimentalExtensionVersionCheck=true, bool IgnoreUnknown=false) |
Parse RISC-V ISA info from arch string. | |
static llvm::Expected< std::unique_ptr< RISCVISAInfo > > | parseNormalizedArchString (StringRef Arch) |
Parse RISC-V ISA info from an arch string that is already in normalized form (as defined in the psABI). | |
static llvm::Expected< std::unique_ptr< RISCVISAInfo > > | parseFeatures (unsigned XLen, const std::vector< std::string > &Features) |
Parse RISC-V ISA info from feature vector. | |
static bool | isSupportedExtensionFeature (StringRef Ext) |
static bool | isSupportedExtension (StringRef Ext) |
static bool | isSupportedExtensionWithVersion (StringRef Ext) |
static bool | isSupportedExtension (StringRef Ext, unsigned MajorVersion, unsigned MinorVersion) |
static llvm::Expected< std::unique_ptr< RISCVISAInfo > > | postProcessAndChecking (std::unique_ptr< RISCVISAInfo > &&ISAInfo) |
static std::string | getTargetFeatureForExtension (StringRef Ext) |
Definition at line 24 of file RISCVISAInfo.h.
typedef std::map<std::string, RISCVISAUtils::ExtensionVersion, RISCVISAUtils::ExtensionComparator> llvm::RISCVISAInfo::OrderedExtensionMap |
OrderedExtensionMap is std::map, it's specialized to keep entries in canonical order of extension.
Definition at line 33 of file RISCVISAInfo.h.
|
delete |
|
inline |
Definition at line 35 of file RISCVISAInfo.h.
StringRef RISCVISAInfo::computeDefaultABI | ( | ) | const |
Definition at line 1327 of file RISCVISAInfo.cpp.
References hasExtension(), and llvm_unreachable.
|
inline |
Definition at line 62 of file RISCVISAInfo.h.
|
inline |
Definition at line 65 of file RISCVISAInfo.h.
|
inline |
Definition at line 68 of file RISCVISAInfo.h.
|
inline |
Definition at line 69 of file RISCVISAInfo.h.
|
inline |
Definition at line 67 of file RISCVISAInfo.h.
|
inline |
Definition at line 66 of file RISCVISAInfo.h.
|
static |
Definition at line 1368 of file RISCVISAInfo.cpp.
References findLastNonVersionCharacter(), isExperimentalExtension(), isSupportedExtension(), isSupportedExtensionWithVersion(), and Name.
|
inline |
Definition at line 64 of file RISCVISAInfo.h.
Definition at line 460 of file RISCVISAInfo.cpp.
References isSupportedExtension(), and stripExperimentalPrefix().
Referenced by computeDefaultABI().
Definition at line 433 of file RISCVISAInfo.cpp.
References I, llvm::lower_bound(), SupportedExperimentalExtensions, SupportedExtensions, and verifyTables().
Referenced by getExtensionVersion(), getTargetFeatureForExtension(), hasExtension(), parseArchString(), processMultiLetterExtension(), processSingleLetterExtension(), and toFeatures().
|
static |
Definition at line 446 of file RISCVISAInfo.cpp.
References I, SupportedExperimentalExtensions, and SupportedExtensions.
Definition at line 422 of file RISCVISAInfo.cpp.
References llvm::ArrayRef< T >::end(), I, llvm::lower_bound(), stripExperimentalPrefix(), SupportedExperimentalExtensions, and SupportedExtensions.
Referenced by llvm::RISCVFeatures::parseFeatureBits().
Definition at line 1348 of file RISCVISAInfo.cpp.
References llvm::consumeError(), llvm::StringRef::empty(), findLastNonVersionCharacter(), getExtensionVersion(), and Name.
Referenced by getTargetFeatureForExtension().
|
delete |
|
static |
Parse RISC-V ISA info from arch string.
If IgnoreUnknown is set, any unrecognised extension names or extensions with unrecognised versions will be silently dropped, except for the special case of the base 'i' and 'e' extensions, where the default version will be used (as ignoring the base is not possible).
Definition at line 817 of file RISCVISAInfo.cpp.
References llvm::RISCVISAUtils::AllStdExts, llvm::any_of(), llvm::StringRef::back(), llvm::StringRef::consume_front(), llvm::consumeError(), contains(), llvm::createStringError(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::find_if(), findDefaultVersion(), llvm::StringRef::front(), getExtensionVersion(), getStringErrorForInvalidExt(), llvm::invalid_argument, isDigit(), isSupportedExtension(), llvm_unreachable, parseArchString(), postProcessAndChecking(), processMultiLetterExtension(), processSingleLetterExtension(), Profile, RISCVGImplications, llvm::StringRef::size(), splitExtsByUnderscore(), llvm::StringRef::starts_with(), llvm::StringRef::str(), llvm::StringRef::substr(), and SupportedProfiles.
Referenced by llvm::RISCV::getFeaturesForCPU(), and parseArchString().
|
static |
Parse RISC-V ISA info from feature vector.
Definition at line 623 of file RISCVISAInfo.cpp.
References llvm::Add, assert(), llvm::StringRef::drop_front(), llvm::lower_bound(), postProcessAndChecking(), llvm::StringRef::size(), llvm::StringRef::str(), stripExperimentalPrefix(), SupportedExperimentalExtensions, and SupportedExtensions.
Referenced by llvm::RISCVFeatures::parseFeatureBits().
|
static |
Parse RISC-V ISA info from an arch string that is already in normalized form (as defined in the psABI).
Unlike parseArchString, this function will not error for unrecognized extension names or extension versions.
Definition at line 657 of file RISCVISAInfo.cpp.
References llvm::any_of(), llvm::StringRef::back(), llvm::createStringError(), llvm::StringRef::drop_back(), llvm::StringRef::empty(), llvm::StringRef::getAsInteger(), llvm::invalid_argument, isDigit(), llvm::StringRef::split(), llvm::StringRef::starts_with(), and llvm::StringRef::substr().
|
static |
Definition at line 1315 of file RISCVISAInfo.cpp.
Referenced by parseArchString(), and parseFeatures().
std::vector< std::string > RISCVISAInfo::toFeatures | ( | bool | AddAllExtensions = false , |
bool | IgnoreUnknown = true |
||
) | const |
Convert RISC-V ISA info to a feature vector.
Definition at line 469 of file RISCVISAInfo.cpp.
References _, isExperimentalExtension(), isSupportedExtension(), SupportedExperimentalExtensions, and SupportedExtensions.
std::string RISCVISAInfo::toString | ( | ) | const |
Definition at line 1297 of file RISCVISAInfo.cpp.
References llvm::raw_string_ostream::str().