diff options
author | Chris Lattner <sabre@nondot.org> | 2004-01-18 21:03:06 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-01-18 21:03:06 +0000 |
commit | 2ff95b6b4e9bcc0167a32f0ed09120298b5a3713 (patch) | |
tree | 2448a4564e2904280386063ab8edec38a6974431 | |
parent | 655c8d6f6ae0f58d8af6813827bb06594b36a0af (diff) |
Eliminate special case handling for CPR's
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
-rw-r--r-- | lib/VMCore/AsmWriter.cpp | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp index 98bc093987..0afba7a3d1 100644 --- a/lib/VMCore/AsmWriter.cpp +++ b/lib/VMCore/AsmWriter.cpp @@ -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); |