[llvm-commits] CVS: llvm/lib/Target/X86/X86AsmPrinter.cpp X86AsmPrinter.h

Evan Cheng evan.cheng at apple.com
Wed Jun 28 00:55:36 PDT 2006



Changes in directory llvm/lib/Target/X86:

X86AsmPrinter.cpp updated: 1.185 -> 1.186
X86AsmPrinter.h updated: 1.20 -> 1.21
---
Log message:

Oops. Need to keep CP index.

---
Diffs of the changes:  (+16 -17)

 X86AsmPrinter.cpp |   31 +++++++++++++++----------------
 X86AsmPrinter.h   |    2 +-
 2 files changed, 16 insertions(+), 17 deletions(-)


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.185 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.186
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.185	Wed Jun 28 02:35:41 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp	Wed Jun 28 02:55:24 2006
@@ -231,21 +231,19 @@
   const std::vector<MachineConstantPoolEntry> &CP = MCP->getConstants();
   if (CP.empty()) return;
 
-  std::vector<MachineConstantPoolEntry> FloatCPs;
-  std::vector<MachineConstantPoolEntry> DoubleCPs;
-  std::vector<MachineConstantPoolEntry> OtherCPs;
-  //  const TargetData *TD = TM.getTargetData();
-  //  unsigned Align = MCP->getConstantPoolAlignment();
+  std::vector<std::pair<MachineConstantPoolEntry,unsigned> > FloatCPs;
+  std::vector<std::pair<MachineConstantPoolEntry,unsigned> > DoubleCPs;
+  std::vector<std::pair<MachineConstantPoolEntry,unsigned> > OtherCPs;
   for (unsigned i = 0, e = CP.size(); i != e; ++i) {
     MachineConstantPoolEntry CPE = CP[i];
     const Constant *CV = CPE.Val;
     const Type *Ty = CV->getType();
     if (Ty->getTypeID() == Type::FloatTyID)
-      FloatCPs.push_back(CPE);
+      FloatCPs.push_back(std::make_pair(CPE, i));
     else if (Ty->getTypeID() == Type::DoubleTyID)
-      DoubleCPs.push_back(CPE);
+      DoubleCPs.push_back(std::make_pair(CPE, i));
     else
-      OtherCPs.push_back(CPE);
+      OtherCPs.push_back(std::make_pair(CPE, i));
   }
   EmitConstantPool(MCP, FloatCPs,  "\t.literal4");
   EmitConstantPool(MCP, DoubleCPs, "\t.literal8");
@@ -254,22 +252,23 @@
 
 void
 X86SharedAsmPrinter::EmitConstantPool(MachineConstantPool *MCP,
-                                      std::vector<MachineConstantPoolEntry> &CP,
+                 std::vector<std::pair<MachineConstantPoolEntry,unsigned> > &CP,
                                       const char *Section) {
   if (CP.empty()) return;
 
   SwitchToDataSection(Section, 0);
   EmitAlignment(MCP->getConstantPoolAlignment());
   for (unsigned i = 0, e = CP.size(); i != e; ++i) {
-    O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << '_' << i
-      << ":\t\t\t\t\t" << CommentString << " ";
-    WriteTypeSymbolic(O, CP[i].Val->getType(), 0) << '\n';
-    EmitGlobalConstant(CP[i].Val);
+    O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << '_'
+      << CP[i].second << ":\t\t\t\t\t" << CommentString << " ";
+    WriteTypeSymbolic(O, CP[i].first.Val->getType(), 0) << '\n';
+    EmitGlobalConstant(CP[i].first.Val);
     if (i != e-1) {
-      unsigned EntSize = TM.getTargetData()->getTypeSize(CP[i].Val->getType());
-      unsigned ValEnd = CP[i].Offset + EntSize;
+      unsigned EntSize =
+        TM.getTargetData()->getTypeSize(CP[i].first.Val->getType());
+      unsigned ValEnd = CP[i].first.Offset + EntSize;
       // Emit inter-object padding for alignment.
-      EmitZeros(CP[i+1].Offset-ValEnd);
+      EmitZeros(CP[i+1].first.Offset-ValEnd);
     }
   }
 }


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.20 llvm/lib/Target/X86/X86AsmPrinter.h:1.21
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.20	Wed Jun 28 02:35:41 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.h	Wed Jun 28 02:55:24 2006
@@ -96,7 +96,7 @@
 
   virtual void EmitConstantPool(MachineConstantPool *MCP);
   void EmitConstantPool(MachineConstantPool *MCP,
-                        std::vector<MachineConstantPoolEntry> &CP,
+                std::vector<std::pair<MachineConstantPoolEntry, unsigned> > &CP,
                         const char *Section);
 };
 






More information about the llvm-commits mailing list