diff options
author | Jeffrey Byrnes <jeffrey.byrnes@amd.com> | 2025-07-17 02:09:52 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-17 18:09:52 +0900 |
commit | b291d1a71f39eb14b89b6aeccfc10bcd3c92a1ef (patch) | |
tree | 749dd0509d8a3f4aa16423c6bb12eac02c621435 /clang/lib/Frontend/TestModuleFileExtension.cpp | |
parent | 3dc5d687b09af5568e9bd80160addb550a46e341 (diff) | |
download | llvm-b291d1a71f39eb14b89b6aeccfc10bcd3c92a1ef.zip llvm-b291d1a71f39eb14b89b6aeccfc10bcd3c92a1ef.tar.gz llvm-b291d1a71f39eb14b89b6aeccfc10bcd3c92a1ef.tar.bz2 |
[TII] Do not fold undef copies (#147392)
RegallocBase::cleanupFailedVReg hacks up the state of the liveness in
order to facilitate producing valid IR. During this process, we may end
up producing undef copies.
If the destination of these copies is a spill candidate, we will attempt
to fold the source register when issuing the spill. The undef of the
source is not propagated to storeRegToStackSlot , thus we end up
dropping the undef, issuing a spill, and producing an illegal liveness
state.
This checks for undef copies, and, if found, inserts a kill instead of
spill.
Diffstat (limited to 'clang/lib/Frontend/TestModuleFileExtension.cpp')
0 files changed, 0 insertions, 0 deletions