diff options
author | Sander de Smalen <sander.desmalen@arm.com> | 2025-07-30 14:42:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-30 14:42:24 +0100 |
commit | bae8f1336db6a7f3288a7dcf253f2d484743b257 (patch) | |
tree | 3a3107ebd3677c70d845d2b1736184c8ecb02c72 /llvm/lib/CodeGen/ModuloSchedule.cpp | |
parent | 17c1921b4a78b2ab3f455278c2a057d164863866 (diff) | |
download | llvm-bae8f1336db6a7f3288a7dcf253f2d484743b257.zip llvm-bae8f1336db6a7f3288a7dcf253f2d484743b257.tar.gz llvm-bae8f1336db6a7f3288a7dcf253f2d484743b257.tar.bz2 |
Reland "RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG" (#134408)
This tries to reland #123632 (previously reverted by commit
6b1db79887df19bc8e8c946108966aa6021c8b87)
This PR aims to fix coalescing of SUBREG_TO_REG when sub-register
liveness tracking is enabled and this is now the so-manieth
reincarnation of this effort :)
This change is needed in order to enable subreg liveness tracking for
AArch64, because without the implicit-def, Machine Copy Propagation
would remove a 'redundant' copy because it doesn't realise that the
top 32-bits of the register are zeroed, which subsequent instructions
rely on.
Changes compared to previous PR:
* Rather than updating all instructions that define the source register
(SrcReg) of the SUBREG_TO_REG, this new approach only updates
instructions
that define SrcReg when they dominate the SUBREG_TO_REG. The live-ranges
are updated accordingly.
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
0 files changed, 0 insertions, 0 deletions