Skip to content

Commit

Permalink
[llvm-exegesis] Use MCRegister instead of unsigned to hold registers …
Browse files Browse the repository at this point in the history
…(#107820)
  • Loading branch information
boomanaiden154 authored Sep 9, 2024
1 parent 74ad254 commit 3b1146e
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 8 deletions.
2 changes: 1 addition & 1 deletion llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ struct YamlContext {
std::string LastError;
raw_string_ostream ErrorStream;
const DenseMap<StringRef, unsigned> &OpcodeNameToOpcodeIdx;
const DenseMap<StringRef, unsigned> &RegNameToRegNo;
const DenseMap<StringRef, MCRegister> &RegNameToRegNo;
};
} // namespace

Expand Down
4 changes: 2 additions & 2 deletions llvm/tools/llvm-exegesis/lib/LlvmState.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,11 +111,11 @@ LLVMState::createOpcodeNameToOpcodeIdxMapping() const {
return std::move(Map);
}

std::unique_ptr<const DenseMap<StringRef, unsigned>>
std::unique_ptr<const DenseMap<StringRef, MCRegister>>
LLVMState::createRegNameToRegNoMapping() const {
const MCRegisterInfo &RegInfo = getRegInfo();
auto Map =
std::make_unique<DenseMap<StringRef, unsigned>>(RegInfo.getNumRegs());
std::make_unique<DenseMap<StringRef, MCRegister>>(RegInfo.getNumRegs());
// Special-case RegNo 0, which would otherwise be spelled as ''.
(*Map)[kNoRegister] = 0;
for (unsigned I = 1, E = RegInfo.getNumRegs(); I < E; ++I)
Expand Down
7 changes: 4 additions & 3 deletions llvm/tools/llvm-exegesis/lib/LlvmState.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegister.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Target/TargetMachine.h"
Expand Down Expand Up @@ -75,7 +76,7 @@ class LLVMState {
return *OpcodeNameToOpcodeIdxMapping;
};

const DenseMap<StringRef, unsigned> &getRegNameToRegNoMapping() const {
const DenseMap<StringRef, MCRegister> &getRegNameToRegNoMapping() const {
assert(RegNameToRegNoMapping);
return *RegNameToRegNoMapping;
}
Expand All @@ -84,7 +85,7 @@ class LLVMState {
std::unique_ptr<const DenseMap<StringRef, unsigned>>
createOpcodeNameToOpcodeIdxMapping() const;

std::unique_ptr<const DenseMap<StringRef, unsigned>>
std::unique_ptr<const DenseMap<StringRef, MCRegister>>
createRegNameToRegNoMapping() const;

LLVMState(std::unique_ptr<const TargetMachine> TM, const ExegesisTarget *ET,
Expand All @@ -97,7 +98,7 @@ class LLVMState {
const PfmCountersInfo *PfmCounters;
std::unique_ptr<const DenseMap<StringRef, unsigned>>
OpcodeNameToOpcodeIdxMapping;
std::unique_ptr<const DenseMap<StringRef, unsigned>> RegNameToRegNoMapping;
std::unique_ptr<const DenseMap<StringRef, MCRegister>> RegNameToRegNoMapping;
};

} // namespace exegesis
Expand Down
4 changes: 2 additions & 2 deletions llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ namespace {
class BenchmarkCodeStreamer : public MCStreamer, public AsmCommentConsumer {
public:
explicit BenchmarkCodeStreamer(
MCContext *Context, const DenseMap<StringRef, unsigned> &RegNameToRegNo,
MCContext *Context, const DenseMap<StringRef, MCRegister> &RegNameToRegNo,
BenchmarkCode *Result)
: MCStreamer(*Context), RegNameToRegNo(RegNameToRegNo), Result(Result) {}

Expand Down Expand Up @@ -215,7 +215,7 @@ class BenchmarkCodeStreamer : public MCStreamer, public AsmCommentConsumer {
return 0;
}

const DenseMap<StringRef, unsigned> &RegNameToRegNo;
const DenseMap<StringRef, MCRegister> &RegNameToRegNo;
BenchmarkCode *const Result;
unsigned InvalidComments = 0;
};
Expand Down

0 comments on commit 3b1146e

Please sign in to comment.