aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineBasicBlock.cpp
diff options
context:
space:
mode:
authorBenjamin Maxwell <benjamin.maxwell@arm.com>2025-09-26 10:08:10 +0100
committerGitHub <noreply@github.com>2025-09-26 10:08:10 +0100
commitd357e965af90cbcfcd717e9d82502bda68f10d5e (patch)
treeed565c063be9120cf112ca1dcdbd689c2f497269 /llvm/lib/CodeGen/MachineBasicBlock.cpp
parent656707086e5f6fccd2eb57f5aaf987c328c0f4f1 (diff)
downloadllvm-d357e965af90cbcfcd717e9d82502bda68f10d5e.zip
llvm-d357e965af90cbcfcd717e9d82502bda68f10d5e.tar.gz
llvm-d357e965af90cbcfcd717e9d82502bda68f10d5e.tar.bz2
[RegisterCoalescer] Mark implicit-defs of super-registers as dead in remat (#159110)
Currently, something like: ``` $eax = MOV32ri -11, implicit-def $rax %al = COPY $eax ``` Can be rematerialized as: ``` dead $eax = MOV32ri -11, implicit-def $rax ``` Which marks the full $rax as used, not just $al. With this change, this is rematerialized as: ``` dead $eax = MOV32ri -11, implicit-def dead $rax, implicit-def $al ``` To indicate that only $al is used. Note: This issue is latent right now, but is exposed when #134408 is applied, as it results in the register pressure being incorrectly calculated (unless this patch is applied too). I think this change is in line with past fixes in this area, notably: https://github.com/llvm/llvm-project/commit/059cead5ed7aa11ce1eae0bcc751ea0d1e23ea75 https://github.com/llvm/llvm-project/commit/69cd121dd9945429b565b6a5eb8719130de880a7
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
0 files changed, 0 insertions, 0 deletions