summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuentin Colombet <qcolombet@apple.com>2016-04-07 23:31:58 +0000
committerQuentin Colombet <qcolombet@apple.com>2016-04-07 23:31:58 +0000
commit9a2ae85e6726c2bf9495cd72c4fbf95f305524f5 (patch)
treec349d357ff61a1cca1884d1670df46fd5697b347
parente087c9fc12d1aeff35aea347b4a3fe1025576a03 (diff)
downloadbcm5719-llvm-9a2ae85e6726c2bf9495cd72c4fbf95f305524f5.tar.gz
bcm5719-llvm-9a2ae85e6726c2bf9495cd72c4fbf95f305524f5.zip
[RegisterBankInfo] Add print and dump method to the InstructionMapping
helper class. llvm-svn: 265747
-rw-r--r--llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h13
-rw-r--r--llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp16
2 files changed, 29 insertions, 0 deletions
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h b/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
index 9dafcc0597b..0a810da208e 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
@@ -151,6 +151,12 @@ public:
/// Verifiy that this mapping makes sense for \p MI.
/// \pre \p MI must be connected to a MachineFunction.
void verify(const MachineInstr &MI) const;
+
+ /// Print this on dbgs() stream.
+ void dump() const;
+
+ /// Print this on \p OS;
+ void print(raw_ostream &OS) const;
};
/// Convenient type to represent the alternatives for mapping an
@@ -397,6 +403,13 @@ operator<<(raw_ostream &OS, const RegisterBankInfo::ValueMapping &ValMapping) {
ValMapping.print(OS);
return OS;
}
+
+inline raw_ostream &
+operator<<(raw_ostream &OS,
+ const RegisterBankInfo::InstructionMapping &InstrMapping) {
+ InstrMapping.print(OS);
+ return OS;
+}
} // End namespace llvm.
#endif
diff --git a/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp b/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
index 262459f00c0..f3bf1690ac8 100644
--- a/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
@@ -447,3 +447,19 @@ void RegisterBankInfo::InstructionMapping::verify(
MOMapping.verify(RegSize);
}
}
+
+void RegisterBankInfo::InstructionMapping::dump() const {
+ print(dbgs());
+ dbgs() << '\n';
+}
+
+void RegisterBankInfo::InstructionMapping::print(raw_ostream &OS) const {
+ OS << "ID: " << getID() << " Cost: " << getCost() << " Mapping: ";
+
+ for (unsigned OpIdx = 0; OpIdx != NumOperands; ++OpIdx) {
+ const ValueMapping &ValMapping = getOperandMapping(OpIdx);
+ if (OpIdx)
+ OS << ", ";
+ OS << "{ Idx: " << OpIdx << " Map: " << ValMapping << '}';
+ }
+}
OpenPOWER on IntegriCloud