aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/LiveDebugVariables.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2022-04-01 09:59:05 -0400
committerMatt Arsenault <arsenm2@gmail.com>2022-04-25 17:07:17 -0400
commit7714e0317520207572168388f22012dd9e152e9e (patch)
tree2a0d6f31547ec966517a7b4caceb7edc76e261c8 /llvm/lib/CodeGen/LiveDebugVariables.cpp
parent0386213352ec42342c756099fcfc6c1165d99e08 (diff)
downloadllvm-7714e0317520207572168388f22012dd9e152e9e.zip
llvm-7714e0317520207572168388f22012dd9e152e9e.tar.gz
llvm-7714e0317520207572168388f22012dd9e152e9e.tar.bz2
RegAllocGreedy: Allow last chance recolor to retry overlapping tuples
Last chance recoloring didn't try recoloring a done register with the same class since it believed there was no point. This doesn't necessarily apply if the members in that class overlap. Allow the recoloring to proceed if the assigned interfering physical register overlaps with the candidate register. This avoids an allocation failure with overlapping tuples. This testcase could be handled better, and I don't believe should reach last chance recoloring. The failure only manifests with the mutually unsatisfiable register hints to overlapping tuples. The earlier assignment decisions probably should have figured out that using these hints was a bad idea.
Diffstat (limited to 'llvm/lib/CodeGen/LiveDebugVariables.cpp')
0 files changed, 0 insertions, 0 deletions