If an anti-dependence uses a non-allocatable register, set AntiDepReg

to 0, to ensure that the subsequent code doesn't try to break the
dependence.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62365 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2009-01-16 21:57:43 +00:00
parent b6a6164832
commit 49bb50e0b6

View File

@ -442,7 +442,9 @@ bool SchedulePostRATDList::BreakAntiDependencies() {
AntiDepReg = Edge->getReg();
assert(AntiDepReg != 0 && "Anti-dependence on reg0?");
// Don't break anti-dependencies on non-allocatable registers.
if (AllocatableSet.test(AntiDepReg)) {
if (!AllocatableSet.test(AntiDepReg))
AntiDepReg = 0;
else {
// If the SUnit has other dependencies on the SUnit that it
// anti-depends on, don't bother breaking the anti-dependency
// since those edges would prevent such units from being