diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2025-02-26 15:31:48 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-26 15:31:48 +0700 |
commit | e160c35c9ec69c099daeffdbca3cf4c94d3e05b9 (patch) | |
tree | 70b48bc706467146a21020faf4ec1d9e5bf6f948 /llvm/lib/CodeGen/RegAllocBasic.cpp | |
parent | 92d822245b0f034133fb958c1a067330236f9dea (diff) | |
download | llvm-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.cpp | 1 |
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"); |