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

Jakob Stoklund Olesen stoklund at 2pi.dk
Wed Dec 2 17:49:56 PST 2009


Author: stoklund
Date: Wed Dec  2 19:49:56 2009
New Revision: 90381

URL: http://llvm.org/viewvc/llvm-project?rev=90381&view=rev
Log:
Don't hang on to pointers or references after vector::push_back.

The MO reference to a MachineOperand can be invalidated by
MachineInstr::addOperand. Don't even use it for debugging.

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=90381&r1=90380&r2=90381&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/PostRASchedulerList.cpp (original)
+++ llvm/trunk/lib/CodeGen/PostRASchedulerList.cpp Wed Dec  2 19:49:56 2009
@@ -510,12 +510,9 @@
       }
       
       if (MO.isKill() != kill) {
-        bool removed = ToggleKillFlag(MI, MO);
-        if (removed) {
-          DEBUG(errs() << "Fixed <removed> in ");
-        } else {
-          DEBUG(errs() << "Fixed " << MO << " in ");
-        }
+        DEBUG(errs() << "Fixing " << MO << " in ");
+        // Warning: ToggleKillFlag may invalidate MO.
+        ToggleKillFlag(MI, MO);
         DEBUG(MI->dump());
       }
       





More information about the llvm-commits mailing list