LLVM 19.0.0git
|
#include "llvm/TargetParser/RISCVISAInfo.h"
#include "llvm/ADT/MapVector.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 <atomic>
#include <optional>
#include <string>
#include <vector>
#include "llvm/TargetParser/RISCVTargetParserDef.inc"
Go to the source code of this file.
Classes | |
struct | ImpliedExtsEntry |
struct | CombinedExtsEntry |
Macros | |
#define | GET_SUPPORTED_EXTENSIONS |
#define | GET_IMPLIED_EXTENSIONS |
Functions | |
static void | verifyTables () |
static void | PrintExtension (StringRef Name, StringRef Version, StringRef Description) |
static bool | stripExperimentalPrefix (StringRef &Ext) |
static size_t | findLastNonVersionCharacter (StringRef Ext) |
static std::optional< RISCVISAUtils::ExtensionVersion > | findDefaultVersion (StringRef ExtName) |
static StringRef | getExtensionTypeDesc (StringRef Ext) |
static StringRef | getExtensionType (StringRef Ext) |
static std::optional< RISCVISAUtils::ExtensionVersion > | isExperimentalExtension (StringRef Ext) |
static Error | getStringErrorForInvalidExt (std::string_view ExtName) |
static Error | getExtensionVersion (StringRef Ext, StringRef In, unsigned &Major, unsigned &Minor, unsigned &ConsumeLength, bool EnableExperimentalExtension, bool ExperimentalExtensionVersionCheck) |
static Error | splitExtsByUnderscore (StringRef Exts, std::vector< std::string > &SplitExts) |
static Error | processMultiLetterExtension (StringRef RawExt, MapVector< std::string, RISCVISAUtils::ExtensionVersion, std::map< std::string, unsigned > > &SeenExtMap, bool IgnoreUnknown, bool EnableExperimentalExtension, bool ExperimentalExtensionVersionCheck) |
static Error | processSingleLetterExtension (StringRef &RawExt, MapVector< std::string, RISCVISAUtils::ExtensionVersion, std::map< std::string, unsigned > > &SeenExtMap, bool IgnoreUnknown, bool EnableExperimentalExtension, bool ExperimentalExtensionVersionCheck) |
Variables | |
static const char * | RISCVGImplications [] |
static constexpr RISCVProfile | SupportedProfiles [] |
static constexpr CombinedExtsEntry | CombineIntoExts [] |
#define GET_IMPLIED_EXTENSIONS |
Definition at line 859 of file RISCVISAInfo.cpp.
#define GET_SUPPORTED_EXTENSIONS |
Definition at line 50 of file RISCVISAInfo.cpp.
|
static |
Definition at line 176 of file RISCVISAInfo.cpp.
References I, and llvm::lower_bound().
Referenced by getExtensionVersion(), and llvm::RISCVISAInfo::parseArchString().
|
static |
Definition at line 149 of file RISCVISAInfo.cpp.
References assert(), and isDigit().
Referenced by llvm::RISCVISAInfo::getTargetFeatureForExtension(), llvm::RISCVISAInfo::isSupportedExtensionWithVersion(), and processMultiLetterExtension().
Definition at line 206 of file RISCVISAInfo.cpp.
Referenced by performMemPairCombine(), and processMultiLetterExtension().
Definition at line 196 of file RISCVISAInfo.cpp.
Referenced by getStringErrorForInvalidExt(), and processMultiLetterExtension().
|
static |
Definition at line 323 of file RISCVISAInfo.cpp.
References llvm::createStringError(), llvm::StringRef::empty(), findDefaultVersion(), llvm::StringRef::getAsInteger(), getStringErrorForInvalidExt(), llvm::invalid_argument, isDigit(), isExperimentalExtension(), llvm::RISCVISAInfo::isSupportedExtension(), llvm::StringRef::size(), llvm::StringRef::str(), and llvm::Error::success().
Referenced by llvm::RISCVISAInfo::isSupportedExtensionWithVersion(), llvm::RISCVISAInfo::parseArchString(), processMultiLetterExtension(), and processSingleLetterExtension().
|
static |
Definition at line 307 of file RISCVISAInfo.cpp.
References llvm::createStringError(), getExtensionTypeDesc(), and llvm::invalid_argument.
Referenced by getExtensionVersion(), and llvm::RISCVISAInfo::parseArchString().
|
static |
Definition at line 217 of file RISCVISAInfo.cpp.
References I, and llvm::lower_bound().
Referenced by getExtensionVersion(), llvm::RISCVISAInfo::getTargetFeatureForExtension(), and llvm::RISCVISAInfo::toFeatures().
Definition at line 102 of file RISCVISAInfo.cpp.
References llvm::StringRef::empty(), llvm::raw_ostream::indent(), llvm::left_justify(), Name, and llvm::outs().
Referenced by llvm::riscvExtensionsHelp().
|
static |
Definition at line 539 of file RISCVISAInfo.cpp.
References llvm::consumeError(), llvm::createStringError(), findLastNonVersionCharacter(), getExtensionType(), getExtensionTypeDesc(), getExtensionVersion(), llvm::invalid_argument, llvm::RISCVISAInfo::isSupportedExtension(), Name, llvm::StringRef::substr(), and llvm::Error::success().
Referenced by llvm::RISCVISAInfo::parseArchString().
|
static |
Definition at line 585 of file RISCVISAInfo.cpp.
References llvm::StringRef::consume_front(), llvm::consumeError(), llvm::createStringError(), getExtensionVersion(), llvm::invalid_argument, llvm::RISCVISAInfo::isSupportedExtension(), Name, llvm::StringRef::substr(), llvm::Error::success(), and llvm::StringRef::take_front().
Referenced by llvm::RISCVISAInfo::parseArchString().
|
static |
Definition at line 521 of file RISCVISAInfo.cpp.
References llvm::createStringError(), llvm::StringRef::empty(), llvm::invalid_argument, llvm::StringRef::split(), and llvm::Error::success().
Referenced by llvm::RISCVISAInfo::parseArchString().
Definition at line 138 of file RISCVISAInfo.cpp.
Referenced by llvm::RISCVISAInfo::hasExtension(), llvm::RISCVISAInfo::isSupportedExtensionFeature(), and llvm::RISCVISAInfo::parseFeatures().
|
static |
Definition at line 89 of file RISCVISAInfo.cpp.
References assert(), and llvm::is_sorted().
|
staticconstexpr |
Definition at line 910 of file RISCVISAInfo.cpp.
Definition at line 46 of file RISCVISAInfo.cpp.
Referenced by llvm::RISCVISAInfo::parseArchString().
|
staticconstexpr |
Definition at line 53 of file RISCVISAInfo.cpp.
Referenced by llvm::RISCVISAInfo::parseArchString().