summaryrefslogtreecommitdiff
path: root/lib/CodeGen/AggressiveAntiDepBreaker.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-09-02 17:12:55 +0000
committerJim Grosbach <grosbach@apple.com>2010-09-02 17:12:55 +0000
commit9b041c92efb5b0f6e74e154f0a6151968dc1ab58 (patch)
treef6f6605e8f4c3c79ee12c2b3089fdadfa6173249 /lib/CodeGen/AggressiveAntiDepBreaker.cpp
parentb1fcfbe89bd155fb88485b2a3a995adba3994003 (diff)
downloadllvm-9b041c92efb5b0f6e74e154f0a6151968dc1ab58.tar.gz
llvm-9b041c92efb5b0f6e74e154f0a6151968dc1ab58.tar.bz2
llvm-9b041c92efb5b0f6e74e154f0a6151968dc1ab58.tar.xz
Anti-dependency breaking needs to be careful not to use reserved regs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112832 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AggressiveAntiDepBreaker.cpp')
-rw-r--r--lib/CodeGen/AggressiveAntiDepBreaker.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/CodeGen/AggressiveAntiDepBreaker.cpp b/lib/CodeGen/AggressiveAntiDepBreaker.cpp
index 62e40e9636..5a634d6ccb 100644
--- a/lib/CodeGen/AggressiveAntiDepBreaker.cpp
+++ b/lib/CodeGen/AggressiveAntiDepBreaker.cpp
@@ -654,6 +654,8 @@ bool AggressiveAntiDepBreaker::FindSuitableFreeRegisters(
if (R == RB) R = RE;
--R;
const unsigned NewSuperReg = *R;
+ // Don't consider non-allocatable registers
+ if (!AllocatableSet.test(NewSuperReg)) continue;
// Don't replace a register with itself.
if (NewSuperReg == SuperReg) continue;