From 49bb50e0b65d4646a1d44eec3196c003c13caa96 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 16 Jan 2009 21:57:43 +0000 Subject: [PATCH] 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 --- lib/CodeGen/PostRASchedulerList.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/CodeGen/PostRASchedulerList.cpp b/lib/CodeGen/PostRASchedulerList.cpp index 12d9efa87b4..eef20b9386f 100644 --- a/lib/CodeGen/PostRASchedulerList.cpp +++ b/lib/CodeGen/PostRASchedulerList.cpp @@ -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 -- 2.34.1