[llvm-commits] CVS: llvm/lib/CodeGen/PrologEpilogInserter.cpp

Chris Lattner sabre at nondot.org
Sun Apr 8 17:46:27 PDT 2007



Changes in directory llvm/lib/CodeGen:

PrologEpilogInserter.cpp updated: 1.77 -> 1.78
---
Log message:

Fix CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll and PR1308: http://llvm.org/PR1308 :
some instructions can have multiple frame indices in them.  If this happens,
rewrite all of them.


---
Diffs of the changes:  (+5 -1)

 PrologEpilogInserter.cpp |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletion(-)


Index: llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff -u llvm/lib/CodeGen/PrologEpilogInserter.cpp:1.77 llvm/lib/CodeGen/PrologEpilogInserter.cpp:1.78
--- llvm/lib/CodeGen/PrologEpilogInserter.cpp:1.77	Tue Mar  6 04:02:38 2007
+++ llvm/lib/CodeGen/PrologEpilogInserter.cpp	Sun Apr  8 19:46:10 2007
@@ -504,7 +504,11 @@
           // If this instruction has a FrameIndex operand, we need to use that
           // target machine register info object to eliminate it.
           MRI.eliminateFrameIndex(I, RS);
-          break;
+
+          // Revisit the instruction in full.  Some instructions (e.g. inline
+          // asm instructions) can have multiple frame indices.
+          e = I->getNumOperands();
+          i = -1U;
         }
       // Update register states.
       if (RS) RS->forward(I);






More information about the llvm-commits mailing list