Number constants from constant pool as CPIf_i where f is the function index
authorBrian Gaeke <gaeke@uiuc.edu>
Thu, 26 Jun 2003 18:02:30 +0000 (18:02 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Thu, 26 Jun 2003 18:02:30 +0000 (18:02 +0000)
and i is the constant pool index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6920 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/Printer.cpp
lib/Target/X86/X86AsmPrinter.cpp

index 36b3d3e6ae770809ca3c9929d41f5c3bcd17438f..75cfcd994a569a2927262515bd0fcab13bc60539 100644 (file)
 #include "llvm/Module.h"
 
 namespace {
-
-
+  unsigned fnIndex;
   std::set<const Value*> MangledGlobals;
   struct Printer : public MachineFunctionPass {
-
     std::ostream &O;
-    unsigned ConstIdx;
-    Printer(std::ostream &o) : O(o), ConstIdx(0) {}
+    Printer(std::ostream &o) : O(o) {}
     const TargetData *TD;
-
     virtual const char *getPassName() const {
       return "X86 Assembly Printer";
     }
@@ -393,11 +389,11 @@ void Printer::printConstantPool(MachineConstantPool *MCP){
 
   for (unsigned i = 0, e = CP.size(); i != e; ++i) {
     O << "\t.section .rodata\n";
-    O << "\t.align " << (unsigned)TD->getTypeAlignment(CP[i]->getType()) << "\n";
-    O << ".CPI" << i+ConstIdx << ":\t\t\t\t\t#" << *CP[i] << "\n";
+    O << "\t.align " << (unsigned)TD->getTypeAlignment(CP[i]->getType())
+      << "\n";
+    O << ".CPI" << fnIndex << "_" << i << ":\t\t\t\t\t#" << *CP[i] << "\n";
     printConstantValueOnly (CP[i]);
   }
-  ConstIdx += CP.size();  // Don't recycle constant pool index numbers
 }
 
 /// runOnMachineFunction - This uses the X86InstructionInfo::print method
@@ -438,6 +434,7 @@ bool Printer::runOnMachineFunction(MachineFunction &MF) {
     }
   }
 
+  fnIndex++;
   // We didn't modify anything.
   return false;
 }
@@ -515,7 +512,8 @@ static void printMemReference(std::ostream &O, const MachineInstr *MI,
     O << "]";
     return;
   } else if (MI->getOperand(Op).isConstantPoolIndex()) {
-    O << "[.CPI" << MI->getOperand(Op).getConstantPoolIndex();
+    O << "[.CPI" << fnIndex << "_"
+      << MI->getOperand(Op).getConstantPoolIndex();
     if (MI->getOperand(Op+3).getImmedValue())
       O << " + " << MI->getOperand(Op+3).getImmedValue();
     O << "]";
@@ -823,6 +821,9 @@ bool Printer::doInitialization(Module &M)
   // with no % decorations on register names.
   O << "\t.intel_syntax noprefix\n";
 
+  // Start function index at 0
+  fnIndex = 0;
+
   // Ripped from CWriter:
   // Calculate which global values have names that will collide when we throw
   // away type information.
index 36b3d3e6ae770809ca3c9929d41f5c3bcd17438f..75cfcd994a569a2927262515bd0fcab13bc60539 100644 (file)
 #include "llvm/Module.h"
 
 namespace {
-
-
+  unsigned fnIndex;
   std::set<const Value*> MangledGlobals;
   struct Printer : public MachineFunctionPass {
-
     std::ostream &O;
-    unsigned ConstIdx;
-    Printer(std::ostream &o) : O(o), ConstIdx(0) {}
+    Printer(std::ostream &o) : O(o) {}
     const TargetData *TD;
-
     virtual const char *getPassName() const {
       return "X86 Assembly Printer";
     }
@@ -393,11 +389,11 @@ void Printer::printConstantPool(MachineConstantPool *MCP){
 
   for (unsigned i = 0, e = CP.size(); i != e; ++i) {
     O << "\t.section .rodata\n";
-    O << "\t.align " << (unsigned)TD->getTypeAlignment(CP[i]->getType()) << "\n";
-    O << ".CPI" << i+ConstIdx << ":\t\t\t\t\t#" << *CP[i] << "\n";
+    O << "\t.align " << (unsigned)TD->getTypeAlignment(CP[i]->getType())
+      << "\n";
+    O << ".CPI" << fnIndex << "_" << i << ":\t\t\t\t\t#" << *CP[i] << "\n";
     printConstantValueOnly (CP[i]);
   }
-  ConstIdx += CP.size();  // Don't recycle constant pool index numbers
 }
 
 /// runOnMachineFunction - This uses the X86InstructionInfo::print method
@@ -438,6 +434,7 @@ bool Printer::runOnMachineFunction(MachineFunction &MF) {
     }
   }
 
+  fnIndex++;
   // We didn't modify anything.
   return false;
 }
@@ -515,7 +512,8 @@ static void printMemReference(std::ostream &O, const MachineInstr *MI,
     O << "]";
     return;
   } else if (MI->getOperand(Op).isConstantPoolIndex()) {
-    O << "[.CPI" << MI->getOperand(Op).getConstantPoolIndex();
+    O << "[.CPI" << fnIndex << "_"
+      << MI->getOperand(Op).getConstantPoolIndex();
     if (MI->getOperand(Op+3).getImmedValue())
       O << " + " << MI->getOperand(Op+3).getImmedValue();
     O << "]";
@@ -823,6 +821,9 @@ bool Printer::doInitialization(Module &M)
   // with no % decorations on register names.
   O << "\t.intel_syntax noprefix\n";
 
+  // Start function index at 0
+  fnIndex = 0;
+
   // Ripped from CWriter:
   // Calculate which global values have names that will collide when we throw
   // away type information.