Eliminate special case handling for CPR's
authorChris Lattner <sabre@nondot.org>
Sun, 18 Jan 2004 21:03:06 +0000 (21:03 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 18 Jan 2004 21:03:06 +0000 (21:03 +0000)
Fix some problem cases where I was building the slot calculator in bytecode
writer mode instead of asmwriter mode.

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

lib/VMCore/AsmWriter.cpp

index 98bc09398721ae75521b3db00a3e8b0a4c88bb91..0afba7a3d1cb83fb236a9e3a858fb811b9396053 100644 (file)
@@ -368,18 +368,7 @@ static void WriteConstantInt(std::ostream &Out, const Constant *CV,
     Out << "null";
 
   } else if (const ConstantPointerRef *PR = dyn_cast<ConstantPointerRef>(CV)) {
-    const GlobalValue *V = PR->getValue();
-    if (V->hasName()) {
-      Out << getLLVMName(V->getName());
-    } else if (Table) {
-      int Slot = Table->getSlot(V);
-      if (Slot >= 0)
-        Out << "%" << Slot;
-      else
-        Out << "<pointer reference badref>";
-    } else {
-      Out << "<pointer reference without context info>";
-    }
+    WriteAsOperandInternal(Out, PR->getValue(), true, TypeTable, Table);
 
   } else if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(CV)) {
     Out << CE->getOpcodeName() << " (";
@@ -969,26 +958,26 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
 //===----------------------------------------------------------------------===//
 
 void Module::print(std::ostream &o, AssemblyAnnotationWriter *AAW) const {
-  SlotCalculator SlotTable(this, true);
+  SlotCalculator SlotTable(this, false);
   AssemblyWriter W(o, SlotTable, this, AAW);
   W.write(this);
 }
 
 void GlobalVariable::print(std::ostream &o) const {
-  SlotCalculator SlotTable(getParent(), true);
+  SlotCalculator SlotTable(getParent(), false);
   AssemblyWriter W(o, SlotTable, getParent(), 0);
   W.write(this);
 }
 
 void Function::print(std::ostream &o, AssemblyAnnotationWriter *AAW) const {
-  SlotCalculator SlotTable(getParent(), true);
+  SlotCalculator SlotTable(getParent(), false);
   AssemblyWriter W(o, SlotTable, getParent(), AAW);
 
   W.write(this);
 }
 
 void BasicBlock::print(std::ostream &o, AssemblyAnnotationWriter *AAW) const {
-  SlotCalculator SlotTable(getParent(), true);
+  SlotCalculator SlotTable(getParent(), false);
   AssemblyWriter W(o, SlotTable, 
                    getParent() ? getParent()->getParent() : 0, AAW);
   W.write(this);
@@ -996,7 +985,7 @@ void BasicBlock::print(std::ostream &o, AssemblyAnnotationWriter *AAW) const {
 
 void Instruction::print(std::ostream &o, AssemblyAnnotationWriter *AAW) const {
   const Function *F = getParent() ? getParent()->getParent() : 0;
-  SlotCalculator SlotTable(F, true);
+  SlotCalculator SlotTable(F, false);
   AssemblyWriter W(o, SlotTable, F ? F->getParent() : 0, AAW);
 
   W.write(this);