[llvm-commits] [llvm] r61077 - /llvm/trunk/lib/CodeGen/PostRASchedulerList.cpp

Dan Gohman gohman at apple.com
Mon Dec 15 22:20:59 PST 2008


Author: djg
Date: Tue Dec 16 00:20:58 2008
New Revision: 61077

URL: http://llvm.org/viewvc/llvm-project?rev=61077&view=rev
Log:
When breaking an anti-dependency, don't use a register which has seen
one of its aliases defined. This is conservative, but tricky subreg
corner cases are outside the primary aim of this pass.

Modified:
    llvm/trunk/lib/CodeGen/PostRASchedulerList.cpp

Modified: llvm/trunk/lib/CodeGen/PostRASchedulerList.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PostRASchedulerList.cpp?rev=61077&r1=61076&r2=61077&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/PostRASchedulerList.cpp (original)
+++ llvm/trunk/lib/CodeGen/PostRASchedulerList.cpp Tue Dec 16 00:20:58 2008
@@ -454,6 +454,7 @@
         assert(((KillIndices[NewReg] == -1u) != (DefIndices[NewReg] == -1u)) &&
                "Kill and Def maps aren't consistent for NewReg!");
         if (KillIndices[NewReg] == -1u &&
+            Classes[NewReg] != reinterpret_cast<TargetRegisterClass *>(-1) &&
             KillIndices[AntiDepReg] <= DefIndices[NewReg]) {
           DOUT << "Breaking anti-dependence edge on "
                << TRI->getName(AntiDepReg)





More information about the llvm-commits mailing list