LLVM 20.0.0git
|
#include "llvm/TargetParser/RISCVISAInfo.h"
Public Member Functions | |
RISCVISAInfo (const RISCVISAInfo &)=delete | |
RISCVISAInfo & | operator= (const RISCVISAInfo &)=delete |
std::vector< std::string > | toFeatures (bool AddAllExtensions=false, bool IgnoreUnknown=true) const |
Convert RISC-V ISA info to a feature vector. | |
const RISCVISAUtils::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) |
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 llvm::Expected< std::unique_ptr< RISCVISAInfo > > | createFromExtMap (unsigned XLen, const RISCVISAUtils::OrderedExtensionMap &Exts) |
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 std::string | getTargetFeatureForExtension (StringRef Ext) |
static void | printSupportedExtensions (StringMap< StringRef > &DescMap) |
static void | printEnabledExtensions (bool IsRV64, std::set< StringRef > &EnabledFeatureNames, StringMap< StringRef > &DescMap) |
static std::pair< int, int > | getRISCVFeaturesBitsInfo (StringRef Ext) |
Return the group id and bit position of __riscv_feature_bits. | |
Static Public Attributes | |
static constexpr unsigned | FeatureBitSize = 2 |
Definition at line 24 of file RISCVISAInfo.h.
|
delete |
StringRef RISCVISAInfo::computeDefaultABI | ( | ) | const |
Definition at line 955 of file RISCVISAInfo.cpp.
References llvm_unreachable.
|
static |
Definition at line 437 of file RISCVISAInfo.cpp.
References assert().
Referenced by printEnabledExtensions().
|
inline |
Definition at line 56 of file RISCVISAInfo.h.
|
inline |
Definition at line 61 of file RISCVISAInfo.h.
|
inline |
Definition at line 64 of file RISCVISAInfo.h.
|
inline |
Definition at line 65 of file RISCVISAInfo.h.
|
inline |
Definition at line 63 of file RISCVISAInfo.h.
|
inline |
Definition at line 62 of file RISCVISAInfo.h.
|
static |
Return the group id and bit position of __riscv_feature_bits.
Returns <-1, -1> if not supported.
Definition at line 1048 of file RISCVISAInfo.cpp.
References RISCVBitPositions.
|
static |
Definition at line 996 of file RISCVISAInfo.cpp.
References findLastNonVersionCharacter(), isExperimentalExtension(), isSupportedExtension(), isSupportedExtensionWithVersion(), and Name.
|
inline |
Definition at line 60 of file RISCVISAInfo.h.
Definition at line 278 of file RISCVISAInfo.cpp.
References isSupportedExtension(), and stripExperimentalPrefix().
Definition at line 251 of file RISCVISAInfo.cpp.
References I, llvm::lower_bound(), and verifyTables().
Referenced by getExtensionVersion(), getTargetFeatureForExtension(), hasExtension(), parseArchString(), and toFeatures().
|
static |
Definition at line 264 of file RISCVISAInfo.cpp.
Definition at line 240 of file RISCVISAInfo.cpp.
References llvm::ArrayRef< T >::end(), I, llvm::lower_bound(), and stripExperimentalPrefix().
Referenced by llvm::RISCVFeatures::parseFeatureBits().
Definition at line 976 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 557 of file RISCVISAInfo.cpp.
References llvm::all_of(), llvm::RISCVISAUtils::AllStdExts, assert(), llvm::CallingConv::C, llvm::StringRef::consume_front(), contains(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::find(), findDefaultVersion(), findLastNonVersionCharacter(), llvm::StringRef::front(), getError(), getErrorForInvalidExt(), getExtensionType(), getExtensionTypeDesc(), getExtensionVersion(), I, Idx, isDigit(), isLower(), isSupportedExtension(), Name, parseArchString(), Profile, RISCVGImplications, llvm::StringRef::size(), llvm::StringRef::slice(), llvm::StringRef::starts_with(), llvm::StringRef::str(), llvm::StringRef::substr(), llvm::upper_bound(), and llvm::Version.
Referenced by llvm::RISCV::getFeaturesForCPU(), and parseArchString().
|
static |
Parse RISC-V ISA info from feature vector.
Definition at line 448 of file RISCVISAInfo.cpp.
References llvm::Add, assert(), llvm::StringRef::drop_front(), llvm::lower_bound(), llvm::StringRef::size(), llvm::StringRef::str(), and stripExperimentalPrefix().
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 481 of file RISCVISAInfo.cpp.
References llvm::all_of(), llvm::CallingConv::C, llvm::StringRef::consume_front(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::find(), llvm::StringRef::getAsInteger(), getError(), Idx, isDigit(), isLower(), llvm::StringRef::size(), llvm::StringRef::slice(), llvm::StringRef::str(), and llvm::StringRef::substr().
|
static |
Definition at line 118 of file RISCVISAInfo.cpp.
References createFromExtMap(), llvm::StringMapImpl::empty(), Name, llvm::outs(), PrintExtension(), and llvm::Version.
Definition at line 83 of file RISCVISAInfo.cpp.
References llvm::StringMapImpl::empty(), llvm::raw_ostream::indent(), llvm::outs(), P, PrintExtension(), and llvm::Version.
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 287 of file RISCVISAInfo.cpp.
References _, isExperimentalExtension(), and isSupportedExtension().
std::string RISCVISAInfo::toString | ( | ) | const |
Definition at line 927 of file RISCVISAInfo.cpp.
References llvm::raw_string_ostream::str().
|
staticconstexpr |
Definition at line 88 of file RISCVISAInfo.h.