LLVM 17.0.0git
|
#include "llvm/Support/RISCVISAInfo.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Errc.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/raw_ostream.h"
#include <array>
#include <optional>
#include <string>
#include <vector>
Go to the source code of this file.
Classes | |
struct | ImpliedExtsEntry |
struct | CombinedExtsEntry |
Enumerations | |
enum | RankFlags { RF_Z_EXTENSION = 1 << 6 , RF_S_EXTENSION = 1 << 7 , RF_X_EXTENSION = 1 << 8 } |
Functions | |
static bool | stripExperimentalPrefix (StringRef &Ext) |
static size_t | findFirstNonVersionCharacter (StringRef Ext) |
static std::optional< RISCVExtensionVersion > | findDefaultVersion (StringRef ExtName) |
static StringRef | getExtensionTypeDesc (StringRef Ext) |
static StringRef | getExtensionType (StringRef Ext) |
static std::optional< RISCVExtensionVersion > | isExperimentalExtension (StringRef Ext) |
static unsigned | singleLetterExtensionRank (char Ext) |
static unsigned | getExtensionRank (const std::string &ExtName) |
static Error | getExtensionVersion (StringRef Ext, StringRef In, unsigned &Major, unsigned &Minor, unsigned &ConsumeLength, bool EnableExperimentalExtension, bool ExperimentalExtensionVersionCheck) |
Variables | |
static constexpr StringLiteral | AllStdExts = "mafdqlcbkjtpvnh" |
static const char * | RISCVGImplications [] |
static const RISCVSupportedExtension | SupportedExtensions [] |
static const RISCVSupportedExtension | SupportedExperimentalExtensions [] |
static const char * | ImpliedExtsD [] = {"f"} |
static const char * | ImpliedExtsF [] = {"zicsr"} |
static const char * | ImpliedExtsV [] = {"zvl128b", "zve64d"} |
static const char * | ImpliedExtsXTHeadVdot [] = {"v"} |
static const char * | ImpliedExtsXsfvcp [] = {"zve32x"} |
static const char * | ImpliedExtsZcb [] = {"zca"} |
static const char * | ImpliedExtsZcmp [] = {"zca"} |
static const char * | ImpliedExtsZcmt [] = {"zca"} |
static const char * | ImpliedExtsZdinx [] = {"zfinx"} |
static const char * | ImpliedExtsZfa [] = {"f"} |
static const char * | ImpliedExtsZfbfmin [] = {"f"} |
static const char * | ImpliedExtsZfh [] = {"f"} |
static const char * | ImpliedExtsZfhmin [] = {"f"} |
static const char * | ImpliedExtsZfinx [] = {"zicsr"} |
static const char * | ImpliedExtsZhinx [] = {"zfinx"} |
static const char * | ImpliedExtsZhinxmin [] = {"zfinx"} |
static const char * | ImpliedExtsZicntr [] = {"zicsr"} |
static const char * | ImpliedExtsZihpm [] = {"zicsr"} |
static const char * | ImpliedExtsZk [] = {"zkn", "zkt", "zkr"} |
static const char * | ImpliedExtsZkn [] |
static const char * | ImpliedExtsZks [] = {"zbkb", "zbkc", "zbkx", "zksed", "zksh"} |
static const char * | ImpliedExtsZve32f [] = {"zve32x", "f"} |
static const char * | ImpliedExtsZve32x [] = {"zvl32b", "zicsr"} |
static const char * | ImpliedExtsZve64d [] = {"zve64f", "d"} |
static const char * | ImpliedExtsZve64f [] = {"zve64x", "zve32f"} |
static const char * | ImpliedExtsZve64x [] = {"zve32x", "zvl64b"} |
static const char * | ImpliedExtsZvfbfmin [] = {"zve32f"} |
static const char * | ImpliedExtsZvfbfwma [] = {"zve32f"} |
static const char * | ImpliedExtsZvfh [] = {"zve32f", "zfhmin"} |
static const char * | ImpliedExtsZvkn [] |
static const char * | ImpliedExtsZvkng [] = {"zvkg", "zvkn"} |
static const char * | ImpliedExtsZvknhb [] = {"zvknha"} |
static const char * | ImpliedExtsZvks [] |
static const char * | ImpliedExtsZvksg [] = {"zvks", "zvkg"} |
static const char * | ImpliedExtsZvl1024b [] = {"zvl512b"} |
static const char * | ImpliedExtsZvl128b [] = {"zvl64b"} |
static const char * | ImpliedExtsZvl16384b [] = {"zvl8192b"} |
static const char * | ImpliedExtsZvl2048b [] = {"zvl1024b"} |
static const char * | ImpliedExtsZvl256b [] = {"zvl128b"} |
static const char * | ImpliedExtsZvl32768b [] = {"zvl16384b"} |
static const char * | ImpliedExtsZvl4096b [] = {"zvl2048b"} |
static const char * | ImpliedExtsZvl512b [] = {"zvl256b"} |
static const char * | ImpliedExtsZvl64b [] = {"zvl32b"} |
static const char * | ImpliedExtsZvl65536b [] = {"zvl32768b"} |
static const char * | ImpliedExtsZvl8192b [] = {"zvl4096b"} |
static constexpr ImpliedExtsEntry | ImpliedExts [] |
static constexpr CombinedExtsEntry | CombineIntoExts [] |
enum RankFlags |
Enumerator | |
---|---|
RF_Z_EXTENSION | |
RF_S_EXTENSION | |
RF_X_EXTENSION |
Definition at line 307 of file RISCVISAInfo.cpp.
|
static |
Definition at line 210 of file RISCVISAInfo.cpp.
References llvm::find_if(), SupportedExperimentalExtensions, and SupportedExtensions.
Referenced by getExtensionVersion(), and llvm::RISCVISAInfo::parseArchString().
|
static |
Definition at line 184 of file RISCVISAInfo.cpp.
References assert(), and isDigit().
Referenced by llvm::RISCVISAInfo::parseArchString().
Definition at line 335 of file RISCVISAInfo.cpp.
References assert(), RF_S_EXTENSION, RF_X_EXTENSION, RF_Z_EXTENSION, and singleLetterExtensionRank().
Referenced by llvm::RISCVISAInfo::compareExtension().
Definition at line 243 of file RISCVISAInfo.cpp.
Referenced by llvm::RISCVISAInfo::parseArchString(), and performMemPairCombine().
Definition at line 233 of file RISCVISAInfo.cpp.
Referenced by llvm::RISCVISAInfo::parseArchString().
|
static |
Definition at line 404 of file RISCVISAInfo.cpp.
References llvm::createStringError(), llvm::StringRef::empty(), findDefaultVersion(), llvm::StringRef::getAsInteger(), llvm::invalid_argument, isDigit(), isExperimentalExtension(), llvm::RISCVISAInfo::isSupportedExtension(), llvm::StringRef::size(), llvm::StringRef::str(), and llvm::Error::success().
Referenced by llvm::RISCVISAInfo::parseArchString().
|
static |
Definition at line 254 of file RISCVISAInfo.cpp.
References llvm::find_if(), and SupportedExperimentalExtensions.
Referenced by getExtensionVersion(), llvm::RISCVISAInfo::toFeatures(), and llvm::RISCVISAInfo::toFeatureVector().
Definition at line 315 of file RISCVISAInfo.cpp.
References AllStdExts, assert(), llvm::StringRef::find(), llvm::StringRef::npos, and llvm::StringRef::size().
Referenced by getExtensionRank().
Definition at line 173 of file RISCVISAInfo.cpp.
Referenced by llvm::RISCVISAInfo::hasExtension(), llvm::RISCVISAInfo::isSupportedExtensionFeature(), and llvm::RISCVISAInfo::parseFeatures().
|
staticconstexpr |
Definition at line 40 of file RISCVISAInfo.cpp.
Referenced by llvm::RISCVISAInfo::parseArchString(), and singleLetterExtensionRank().
|
staticconstexpr |
Definition at line 1067 of file RISCVISAInfo.cpp.
|
staticconstexpr |
Definition at line 978 of file RISCVISAInfo.cpp.
Definition at line 917 of file RISCVISAInfo.cpp.
Definition at line 918 of file RISCVISAInfo.cpp.
Definition at line 919 of file RISCVISAInfo.cpp.
Definition at line 921 of file RISCVISAInfo.cpp.
Definition at line 920 of file RISCVISAInfo.cpp.
Definition at line 922 of file RISCVISAInfo.cpp.
Definition at line 923 of file RISCVISAInfo.cpp.
Definition at line 924 of file RISCVISAInfo.cpp.
Definition at line 925 of file RISCVISAInfo.cpp.
Definition at line 926 of file RISCVISAInfo.cpp.
Definition at line 927 of file RISCVISAInfo.cpp.
Definition at line 928 of file RISCVISAInfo.cpp.
Definition at line 929 of file RISCVISAInfo.cpp.
Definition at line 930 of file RISCVISAInfo.cpp.
Definition at line 931 of file RISCVISAInfo.cpp.
Definition at line 932 of file RISCVISAInfo.cpp.
Definition at line 933 of file RISCVISAInfo.cpp.
Definition at line 934 of file RISCVISAInfo.cpp.
Definition at line 935 of file RISCVISAInfo.cpp.
Definition at line 936 of file RISCVISAInfo.cpp.
Definition at line 938 of file RISCVISAInfo.cpp.
Definition at line 939 of file RISCVISAInfo.cpp.
Definition at line 940 of file RISCVISAInfo.cpp.
Definition at line 941 of file RISCVISAInfo.cpp.
Definition at line 942 of file RISCVISAInfo.cpp.
Definition at line 943 of file RISCVISAInfo.cpp.
Definition at line 944 of file RISCVISAInfo.cpp.
Definition at line 945 of file RISCVISAInfo.cpp.
Definition at line 946 of file RISCVISAInfo.cpp.
Definition at line 947 of file RISCVISAInfo.cpp.
Definition at line 949 of file RISCVISAInfo.cpp.
Definition at line 950 of file RISCVISAInfo.cpp.
Definition at line 951 of file RISCVISAInfo.cpp.
Definition at line 953 of file RISCVISAInfo.cpp.
Definition at line 954 of file RISCVISAInfo.cpp.
Definition at line 955 of file RISCVISAInfo.cpp.
Definition at line 956 of file RISCVISAInfo.cpp.
Definition at line 957 of file RISCVISAInfo.cpp.
Definition at line 958 of file RISCVISAInfo.cpp.
Definition at line 959 of file RISCVISAInfo.cpp.
Definition at line 960 of file RISCVISAInfo.cpp.
Definition at line 961 of file RISCVISAInfo.cpp.
Definition at line 962 of file RISCVISAInfo.cpp.
Definition at line 963 of file RISCVISAInfo.cpp.
Definition at line 964 of file RISCVISAInfo.cpp.
Definition at line 42 of file RISCVISAInfo.cpp.
Referenced by llvm::RISCVISAInfo::parseArchString().
|
static |
Definition at line 137 of file RISCVISAInfo.cpp.
Referenced by findDefaultVersion(), isExperimentalExtension(), llvm::RISCVISAInfo::isSupportedExtension(), llvm::RISCVISAInfo::isSupportedExtensionFeature(), llvm::RISCVISAInfo::parseFeatures(), and llvm::RISCVISAInfo::toFeatures().
|
static |
Definition at line 46 of file RISCVISAInfo.cpp.
Referenced by findDefaultVersion(), llvm::RISCVISAInfo::isSupportedExtension(), llvm::RISCVISAInfo::isSupportedExtensionFeature(), llvm::RISCVISAInfo::parseFeatures(), and llvm::RISCVISAInfo::toFeatures().