mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
MIR Printer: extract the code that prints MBB references into a new method. NFC.
This commit enables the MIR printer to reuse the code that prints MBB references. llvm-svn: 241087
This commit is contained in:
parent
5af8b38eb3
commit
8cdd7b6660
@ -61,6 +61,7 @@ public:
|
||||
: M(M), OS(OS), RegisterMaskIds(RegisterMaskIds) {}
|
||||
|
||||
void print(const MachineInstr &MI);
|
||||
void printMBBReference(const MachineBasicBlock &MBB);
|
||||
void print(const MachineOperand &Op, const TargetRegisterInfo *TRI);
|
||||
};
|
||||
|
||||
@ -193,6 +194,14 @@ static void printReg(unsigned Reg, raw_ostream &OS,
|
||||
llvm_unreachable("Can't print this kind of register yet");
|
||||
}
|
||||
|
||||
void MIPrinter::printMBBReference(const MachineBasicBlock &MBB) {
|
||||
OS << "%bb." << MBB.getNumber();
|
||||
if (const auto *BB = MBB.getBasicBlock()) {
|
||||
if (BB->hasName())
|
||||
OS << '.' << BB->getName();
|
||||
}
|
||||
}
|
||||
|
||||
void MIPrinter::print(const MachineOperand &Op, const TargetRegisterInfo *TRI) {
|
||||
switch (Op.getType()) {
|
||||
case MachineOperand::MO_Register:
|
||||
@ -204,11 +213,7 @@ void MIPrinter::print(const MachineOperand &Op, const TargetRegisterInfo *TRI) {
|
||||
OS << Op.getImm();
|
||||
break;
|
||||
case MachineOperand::MO_MachineBasicBlock:
|
||||
OS << "%bb." << Op.getMBB()->getNumber();
|
||||
if (const auto *BB = Op.getMBB()->getBasicBlock()) {
|
||||
if (BB->hasName())
|
||||
OS << '.' << BB->getName();
|
||||
}
|
||||
printMBBReference(*Op.getMBB());
|
||||
break;
|
||||
case MachineOperand::MO_GlobalAddress:
|
||||
// FIXME: Make this faster - print as operand will create a slot tracker to
|
||||
|
Loading…
Reference in New Issue
Block a user