17#ifndef LLVM_LIB_TARGET_RISCV_MCA_RISCVCUSTOMBEHAVIOUR_H
18#define LLVM_LIB_TARGET_RISCV_MCA_RISCVCUSTOMBEHAVIOUR_H
This file defines the base class CustomBehaviour which can be inherited from by specific targets (ex.
This file defines the SmallVector class.
Instances of this class represent a single low-level machine instruction.
Interface to description of machine instruction set.
Generic base class for all target subtargets.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef - Represent a constant reference to a string, i.e.
The instances of the Type class are immutable: once they are created, they are never changed.
This class allows targets to optionally customize the logic that resolves scheduling class IDs.
const MCSubtargetInfo & STI
bool supportsInstrumentType(StringRef Type) const override
unsigned getSchedClassID(const MCInstrInfo &MCII, const MCInst &MCI, const SmallVector< Instrument * > &IVec) const override
Using the Instrument, returns a SchedClassID to use instead of the SchedClassID that belongs to the M...
UniqueInstrument createInstrument(StringRef Desc, StringRef Data) override
Create a Instrument for RISC-V target.
SmallVector< UniqueInstrument > createInstruments(const MCInst &Inst) override
Return a list of unique pointers to Instruments, where each Instrument is allocated by this function.
bool shouldIgnoreInstruments() const override
Returns true if llvm-mca should ignore instruments.
RISCVInstrumentManager(const MCSubtargetInfo &STI, const MCInstrInfo &MCII)
static bool isDataValid(StringRef Data)
static const StringRef DESC_NAME
RISCVLMULInstrument(StringRef Data)
~RISCVLMULInstrument()=default
static bool isDataValid(StringRef Data)
~RISCVSEWInstrument()=default
RISCVSEWInstrument(StringRef Data)
static const StringRef DESC_NAME
std::unique_ptr< Instrument > UniqueInstrument
This is an optimization pass for GlobalISel generic memory operations.
Description of the encoding of one expression Op.