aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/ProgramStack.cpp
diff options
context:
space:
mode:
authorJason Eckhardt <jeckhardt@nvidia.com>2025-04-30 18:32:37 -0500
committerGitHub <noreply@github.com>2025-04-30 18:32:37 -0500
commit7d05f67a7377ad67e7eb15e0f8f7cf1f537b5afa (patch)
tree2a7cd999d5d20ac0d62de2110b02fc00ae64aa27 /llvm/lib/Support/ProgramStack.cpp
parent5dc3cd0ee40c00d9fb542488fa5a54ff70273112 (diff)
downloadllvm-7d05f67a7377ad67e7eb15e0f8f7cf1f537b5afa.zip
llvm-7d05f67a7377ad67e7eb15e0f8f7cf1f537b5afa.tar.gz
llvm-7d05f67a7377ad67e7eb15e0f8f7cf1f537b5afa.tar.bz2
[TableGen][CallingConv] Add CCAssignToRegTuple for synthetic registers. (#137826)
Currently CCAssignToReg takes a list<Register>. There are tuple-heavy back-ends where we would like to reference any register-- whether those are singletons or those defined by RegisterTuples. However, the latter are synthesized during tuple expansion and are not visible outside of the register info emitter. The problem is that the parser will see tuple registers as undefined variables before the calling convention emitter is ever reached. To defer evaluation of the symbol, we introduce CCAssignToRegTuple which takes list<string> instead. This allows us to defer the actual register name lookup until the emitter runs-- where we also validate that the register actually exists. This is currently used in a downstream back-end which will be upstreamed very soon. In the meantime, a unit test is provided to exercise the feature.
Diffstat (limited to 'llvm/lib/Support/ProgramStack.cpp')
0 files changed, 0 insertions, 0 deletions