aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-01-18 21:03:06 +0000
committerChris Lattner <sabre@nondot.org>2004-01-18 21:03:06 +0000
commit2ff95b6b4e9bcc0167a32f0ed09120298b5a3713 (patch)
tree2448a4564e2904280386063ab8edec38a6974431
parent655c8d6f6ae0f58d8af6813827bb06594b36a0af (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.cpp23
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);