Skip to content

Commit c56a94b

Browse files
Addressing review comments
1 parent 570fee5 commit c56a94b

File tree

1 file changed

+6
-37
lines changed

1 file changed

+6
-37
lines changed

llvm/tools/llvm-exegesis/lib/RISCV/Target.cpp

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -86,44 +86,13 @@ bool ExegesisRISCVTarget::matchesArch(Triple::ArchType Arch) const {
8686
// Stores constant value to a general-purpose (integer) register.
8787
static std::vector<MCInst> loadIntReg(const MCSubtargetInfo &STI, unsigned Reg,
8888
const APInt &Value) {
89-
RISCVMatInt::InstSeq InstSeq =
90-
RISCVMatInt::generateInstSeq(Value.getSExtValue(), STI);
91-
// First instruction has form 'Op DestReg, X0, Imm'
92-
MCRegister SrcReg = RISCV::X0;
93-
MCRegister DestReg = Reg;
89+
SmallVector<MCInst, 8> MCInstSeq;
9490
std::vector<MCInst> MatIntInstrs;
95-
MatIntInstrs.reserve(InstSeq.size());
96-
for (const RISCVMatInt::Inst &Inst : InstSeq) {
97-
switch (Inst.getOpndKind()) {
98-
case RISCVMatInt::Imm:
99-
MatIntInstrs.push_back(MCInstBuilder(Inst.getOpcode())
100-
.addReg(DestReg)
101-
.addImm(Inst.getImm()));
102-
break;
103-
case RISCVMatInt::RegX0:
104-
MatIntInstrs.push_back(MCInstBuilder(Inst.getOpcode())
105-
.addReg(DestReg)
106-
.addReg(SrcReg)
107-
.addReg(RISCV::X0));
108-
break;
109-
case RISCVMatInt::RegReg:
110-
MatIntInstrs.push_back(MCInstBuilder(Inst.getOpcode())
111-
.addReg(DestReg)
112-
.addReg(SrcReg)
113-
.addReg(SrcReg));
114-
break;
115-
case RISCVMatInt::RegImm:
116-
MatIntInstrs.push_back(MCInstBuilder(Inst.getOpcode())
117-
.addReg(DestReg)
118-
.addReg(SrcReg)
119-
.addImm(Inst.getImm()));
120-
break;
121-
default:
122-
llvm_unreachable("Unexpected kind!");
123-
}
124-
// Further instructions have form 'Op DestReg, DestReg, Imm'
125-
SrcReg = DestReg;
126-
}
91+
MCRegister DestReg = Reg;
92+
93+
RISCVMatInt::generateMCInstSeq(Value.getSExtValue(), STI, DestReg, MCInstSeq);
94+
std::copy(MCInstSeq.begin(), MCInstSeq.end(), MatIntInstrs.begin());
95+
12796
return MatIntInstrs;
12897
}
12998

0 commit comments

Comments
 (0)