7#include <unordered_set>
27 template <
typename Self>
28 auto &
src(
this Self &&self) {
33 return numIntegerArgs_;
41 return numFloatingArgs_;
48 std::unordered_set<const RegisterOperand *>
regOps()
const override {
52 std::unordered_set<const RegisterOperand *>
dsts()
const override {
56 std::unordered_set<const RegisterOperand *>
srcs()
const override {
60 std::unordered_set<const MemoryOperand *>
memOps()
const override {
64 std::unordered_set<PhysicalRegister *>
implicitDsts()
const override;
65 std::unordered_set<PhysicalRegister *>
implicitSrcs()
const override;
67 std::unordered_set<const ImmediateOperand *>
immOps()
const override {
85 std::unique_ptr<Instruction>
clone()
const override {
91 int numIntegerArgs_, numFloatingArgs_;
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
Definition InstructionVisitor.h:70
Definition RISCVInstructionVisitor.h:17
std::unique_ptr< Instruction > clone() const override
Definition RISCVJALR.h:85
auto & src(this Self &&self)
Definition RISCVJALR.h:28
std::unordered_set< PhysicalRegister * > implicitSrcs() const override
int numFloatingArgs() const
Definition RISCVJALR.h:40
std::unordered_set< const MemoryOperand * > memOps() const override
Definition RISCVJALR.h:60
std::string format() const override
std::unordered_set< const ImmediateOperand * > immOps() const override
Definition RISCVJALR.h:67
void accept(InstructionVisitor &visitor) const override
Definition RISCVJALR.h:79
std::unordered_set< PhysicalRegister * > implicitDsts() const override
std::unordered_set< const RegisterOperand * > regOps() const override
Definition RISCVJALR.h:48
void setNumIntegerArgs(int numIntegerArgs)
Definition RISCVJALR.h:36
std::unordered_set< const RegisterOperand * > srcs() const override
Definition RISCVJALR.h:56
int numIntegerArgs() const
Definition RISCVJALR.h:32
std::unordered_set< const RegisterOperand * > dsts() const override
Definition RISCVJALR.h:52
bool hasSideEffects() const override
Definition RISCVJALR.h:71
void setNumFloatingArgs(int numFloatingArgs)
Definition RISCVJALR.h:44
RISCVJALR(std::shared_ptr< Register > src, int numIntegerArgs, int numFloatingArgs)
Definition RISCVJALR.h:22
void accept(InstructionVisitor &visitor) override
Definition RISCVJALR.h:75
Definition RegisterOperand.h:13
Definition BasicBlock.h:22
RegisterClass
Definition RegisterClass.h:7
@ kGPR
Definition RegisterClass.h:8
std::shared_ptr< T > share(T &value)
Definition Memory.h:25