OSDN Git Service

RegisterScavenging: Followup to r305625
authorMatthias Braun <matze@braunis.de>
Tue, 20 Jun 2017 18:43:14 +0000 (18:43 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 20 Jun 2017 18:43:14 +0000 (18:43 +0000)
commit0cc137e0510f1fc0608a5be00655dbcd0e46d2a6
tree652d4cc88a0ebf9501096dacef05009ca0f9cf83
parent73854fd75142f75af8dc684f6e5908b0f763f025
RegisterScavenging: Followup to r305625

This does some improvements/cleanup to the recently introduced
scavengeRegisterBackwards() functionality:

- Rewrite findSurvivorBackwards algorithm to use the existing
  LiveRegUnit::accumulateBackward() code. This also avoids the Available
  and Candidates bitset and just need 1 LiveRegUnit instance
  (= 1 bitset).
- Pick registers in allocation order instead of register number order.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305817 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegisterScavenging.cpp
test/CodeGen/AArch64/swiftself-scavenger.ll
test/CodeGen/AMDGPU/frame-index-elimination.ll
test/CodeGen/AMDGPU/spill-m0.ll
test/CodeGen/PowerPC/2010-02-12-saveCR.ll
test/CodeGen/PowerPC/vsx-spill.ll
test/CodeGen/PowerPC/vsx.ll