13#ifndef LLVM_MC_MCINSTRINFO_H
14#define LLVM_MC_MCINSTRINFO_H
35 const unsigned *InstrNameIndices;
36 const char *InstrNameData;
40 const uint8_t *DeprecatedFeatures;
57 const int16_t *RCHWTables =
nullptr,
58 int16_t NumRegClassByHwMode = 0) {
59 LastDesc =
D + NO - 1;
60 InstrNameIndices = NI;
62 DeprecatedFeatures =
DF;
63 ComplexDeprecationInfos = CDI;
73 "MCInstrInfo not properly initialized");
81 unsigned HwModeId)
const {
82 int16_t RegClass = OpInfo.RegClass;
83 if (OpInfo.isLookupRegClassByHwMode())
91 assert(Opcode < NumOpcodes &&
"Invalid opcode!");
93 return *(LastDesc - Opcode);
98 assert(Opcode < NumOpcodes &&
"Invalid opcode!");
99 return StringRef(&InstrNameData[InstrNameIndices[Opcode]]);
105 std::string &
Info)
const;
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
Analysis containing CSE Info
static RegisterPass< DebugifyFunctionPass > DF("debugify-function", "Attach debug info to a function")
Instances of this class represent a single low-level machine instruction.
Describe properties that are true of each instruction in the target description file.
Interface to description of machine instruction set.
const MCInstrDesc & get(unsigned Opcode) const
Return the machine instruction descriptor that corresponds to the specified instruction opcode.
void InitMCInstrInfo(const MCInstrDesc *D, const unsigned *NI, const char *ND, const uint8_t *DF, const ComplexDeprecationPredicate *CDI, unsigned NO, const int16_t *RCHWTables=nullptr, int16_t NumRegClassByHwMode=0)
Initialize MCInstrInfo, called by TableGen auto-generated routines.
const int16_t * getRegClassByHwModeTable(unsigned ModeId) const
bool(*)(MCInst &, const MCSubtargetInfo &, std::string &) ComplexDeprecationPredicate
const int16_t * RegClassByHwModeTables
int16_t NumRegClassByHwModes
LLVM_ABI bool getDeprecatedInfo(MCInst &MI, const MCSubtargetInfo &STI, std::string &Info) const
Returns true if a certain instruction is deprecated and if so returns the reason in Info.
unsigned getNumOpcodes() const
int16_t getOpRegClassID(const MCOperandInfo &OpInfo, unsigned HwModeId) const
Return the ID of the register class to use for OpInfo, for the active HwMode HwModeId.
StringRef getName(unsigned Opcode) const
Returns the name for the instructions with the given opcode.
This holds information about one operand of a machine instruction, indicating the register class for ...
Generic base class for all target subtargets.
StringRef - Represent a constant reference to a string, i.e.
This is an optimization pass for GlobalISel generic memory operations.