aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ELF.cpp
diff options
context:
space:
mode:
authorNick Desaulniers <nickdesaulniers@users.noreply.github.com>2023-11-17 10:03:14 -0800
committerGitHub <noreply@github.com>2023-11-17 10:03:14 -0800
commit99ee2db198d86f685bcb07a1495a7115ffc31d7e (patch)
tree3d6cc4eacbc47476e9221a34a312faaec16bd909 /llvm/lib/Object/ELF.cpp
parentf99a02005970cdcb0aad0de80fa4e5b546c6546b (diff)
downloadllvm-99ee2db198d86f685bcb07a1495a7115ffc31d7e.zip
llvm-99ee2db198d86f685bcb07a1495a7115ffc31d7e.tar.gz
llvm-99ee2db198d86f685bcb07a1495a7115ffc31d7e.tar.bz2
[TargetInstrInfo] enable foldMemoryOperand for InlineAsm (#70743)
foldMemoryOperand looks at pairs of instructions (generally a load to virt reg then use of the virtreg, or def of a virtreg then a store) and attempts to combine them. This can reduce register pressure. A prior commit added the ability to mark such a MachineOperand as foldable. In terms of INLINEASM, this means that "rm" was used (rather than just "r") to denote that the INLINEASM may use a memory operand rather than a register operand. This effectively undoes decisions made by the instruction selection framework. Callers will be added in the register allocation frameworks. This has been tested with all of the above (which will come as follow up patches). Thanks to @topperc who suggested this at last years LLVM US Dev Meeting and @qcolombet who confirmed this was the right approach. Link: https://github.com/llvm/llvm-project/issues/20571
Diffstat (limited to 'llvm/lib/Object/ELF.cpp')
0 files changed, 0 insertions, 0 deletions