Skip to content

[llvm-exegesis] Use MCRegister instead of unsigned to hold registers #107820

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading