[llvm] [TableGen][CallingConv] Add CCAssignToRegTuple for synthetic registers. (PR #137826)
Jason Eckhardt via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 30 06:08:35 PDT 2025
================
@@ -35,14 +37,20 @@ class CallingConvEmitter {
std::map<std::string, std::set<std::string>> DelegateToMap;
public:
- explicit CallingConvEmitter(const RecordKeeper &R) : Records(R) {}
+ explicit CallingConvEmitter(const RecordKeeper &R) : Records(R), Target(R) {
+ for (const CodeGenRegister &Reg : Target.getRegBank().getRegisters())
+ RegistersByDefName.try_emplace(Reg.getName(), &Reg);
+ }
void run(raw_ostream &O);
private:
void emitCallingConv(const Record *CC, raw_ostream &O);
void emitAction(const Record *Action, indent Indent, raw_ostream &O);
void emitArgRegisterLists(raw_ostream &O);
+
+ StringMap<const CodeGenRegister *> RegistersByDefName;
----------------
nvjle wrote:
Correct-- you are restating what I've written above in this thread and the description of the PR. That is the entire reason this patch exists-- to defer evaluation of tuples until the `CallingConvEmitter` proper. Otherwise, we'd simply reference synthetics directly-- i.e., just use `CCAssignToReg`.
https://github.com/llvm/llvm-project/pull/137826
More information about the llvm-commits
mailing list