From 2bfe6ff605f07e8f50874b1326227efc8bb8ed3d Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 7 Feb 2008 16:18:00 +0000 Subject: [PATCH] Don't abort if a MemOperand is missing a SourceValue; just print it as . And make some minor adjustments to the MemOperand dump format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46853 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/MachineInstr.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp index c455b024e3f..6d4bc30150a 100644 --- a/lib/CodeGen/MachineInstr.cpp +++ b/lib/CodeGen/MachineInstr.cpp @@ -631,30 +631,34 @@ void MachineInstr::print(std::ostream &OS, const TargetMachine *TM) const { } if (getNumMemOperands() > 0) { - OS << ", SV:"; + OS << ", Mem:"; for (unsigned i = 0; i < getNumMemOperands(); i++) { const MemOperand &MRO = getMemOperand(i); const Value *V = MRO.getValue(); - assert(V && "SV missing."); assert((MRO.isLoad() || MRO.isStore()) && "SV has to be a load, store or both."); if (MRO.isVolatile()) OS << "Volatile "; + if (MRO.isLoad()) - OS << "LD "; + OS << "LD"; if (MRO.isStore()) - OS << "ST "; + OS << "ST"; - OS << MRO.getSize(); + OS << "(" << MRO.getSize() << ") ["; - if (!V->getName().empty()) - OS << "[" << V->getName() << " + " << MRO.getOffset() << "]"; + if (!V) + OS << ""; + else if (!V->getName().empty()) + OS << V->getName(); else if (isa(V)) - OS << "[" << *V << " + " << MRO.getOffset() << "]"; + OS << *V; else - OS << "[" << V << " + " << MRO.getOffset() << "]"; + OS << V; + + OS << " + " << MRO.getOffset() << "]"; } }