aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/RegAllocBasic.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2025-02-26 15:31:48 +0700
committerGitHub <noreply@github.com>2025-02-26 15:31:48 +0700
commite160c35c9ec69c099daeffdbca3cf4c94d3e05b9 (patch)
tree70b48bc706467146a21020faf4ec1d9e5bf6f948 /llvm/lib/CodeGen/RegAllocBasic.cpp
parent92d822245b0f034133fb958c1a067330236f9dea (diff)
downloadllvm-e160c35c9ec69c099daeffdbca3cf4c94d3e05b9.zip
llvm-e160c35c9ec69c099daeffdbca3cf4c94d3e05b9.tar.gz
llvm-e160c35c9ec69c099daeffdbca3cf4c94d3e05b9.tar.bz2
Reapply "RegAlloc: Fix verifier error after failed allocation (#119690)" (#128400)
Reapply "RegAlloc: Fix verifier error after failed allocation (#119690)" This reverts commit 0c50054820799578be8f62b6fd2cc3fbc751c01e. Reapply with more fixes to avoid expensive_checks failures. Make sure to call splitSeparateComponents after shrinkToUses, and update the VirtRegMap with the split registers. Also set undef on all physical register aliases to the assigned register. Move physreg handling. Not sure if necessary Remove intervals from regunits. Not sure if necessary
Diffstat (limited to 'llvm/lib/CodeGen/RegAllocBasic.cpp')
-rw-r--r--llvm/lib/CodeGen/RegAllocBasic.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/RegAllocBasic.cpp b/llvm/lib/CodeGen/RegAllocBasic.cpp
index 51e047b..d240bf9 100644
--- a/llvm/lib/CodeGen/RegAllocBasic.cpp
+++ b/llvm/lib/CodeGen/RegAllocBasic.cpp
@@ -329,6 +329,7 @@ bool RABasic::runOnMachineFunction(MachineFunction &mf) {
allocatePhysRegs();
postOptimization();
+ cleanupFailedVRegs();
// Diagnostic output before rewriting
LLVM_DEBUG(dbgs() << "Post alloc VirtRegMap:\n" << *VRM << "\n");