Add special code to make printing SSA form machine instructions nicer

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4446 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2002-10-30 01:55:38 +00:00
parent 1162262a28
commit 6a592271fb

View File

@ -266,17 +266,28 @@ static void print(const MachineOperand &MO, std::ostream &OS,
} }
void MachineInstr::print(std::ostream &OS, const TargetMachine &TM) { void MachineInstr::print(std::ostream &OS, const TargetMachine &TM) {
OS << TM.getInstrInfo().getName(getOpcode()); unsigned StartOp = 0;
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
OS << "\t";
::print(getOperand(i), OS, TM);
// Specialize printing if op#0 is definition
if (getNumOperands() && operandIsDefined(0)) {
::print(getOperand(0), OS, TM);
OS << " = ";
++StartOp; // Don't print this operand again!
}
OS << TM.getInstrInfo().getName(getOpcode());
for (unsigned i = StartOp, e = getNumOperands(); i != e; ++i) {
if (i != StartOp)
OS << ",";
OS << " ";
::print(getOperand(i), OS, TM);
if (operandIsDefinedAndUsed(i)) if (operandIsDefinedAndUsed(i))
OS << "<def&use>"; OS << "<def&use>";
else if (operandIsDefined(i)) else if (operandIsDefined(i))
OS << "<def>"; OS << "<def>";
} }
// code for printing implict references // code for printing implict references
if (getNumImplicitRefs()) { if (getNumImplicitRefs()) {
OS << "\tImplicitRefs: "; OS << "\tImplicitRefs: ";