[PATCH] D126237: [BOLT][NFC] Print block instructions in dumpGraph as part of node label
Amir Ayupov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 1 23:40:05 PDT 2022
Amir updated this revision to Diff 433664.
Amir added a comment.
Rebase
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D126237/new/
https://reviews.llvm.org/D126237
Files:
bolt/lib/Core/BinaryFunction.cpp
Index: bolt/lib/Core/BinaryFunction.cpp
===================================================================
--- bolt/lib/Core/BinaryFunction.cpp
+++ bolt/lib/Core/BinaryFunction.cpp
@@ -3006,28 +3006,31 @@
} // namespace
void BinaryFunction::dumpGraph(raw_ostream &OS) const {
- OS << "strict digraph \"" << getPrintName() << "\" {\n";
+ OS << "digraph \"" << getPrintName() << "\" {\n";
+ OS << R"(node [fontname="courier"])" << '\n';
uint64_t Offset = Address;
for (BinaryBasicBlock *BB : BasicBlocks) {
auto LayoutPos =
std::find(BasicBlocksLayout.begin(), BasicBlocksLayout.end(), BB);
unsigned Layout = LayoutPos - BasicBlocksLayout.begin();
const char *ColdStr = BB->isCold() ? " (cold)" : "";
- OS << format("\"%s\" [label=\"%s%s\\n(C:%lu,O:%lu,I:%u,L:%u:CFI:%u)\"]\n",
- BB->getName().data(), BB->getName().data(), ColdStr,
- (BB->ExecutionCount != BinaryBasicBlock::COUNT_NO_PROFILE
- ? BB->ExecutionCount
- : 0),
- BB->getOffset(), getIndex(BB), Layout, BB->getCFIState());
OS << format("\"%s\" [shape=box]\n", BB->getName().data());
+ OS << format("\"%s\" [label=\"%s%s\\n(C:%lu,O:%lu,I:%u,L:%u,CFI:%u)\\n",
+ BB->getName().data(), BB->getName().data(), ColdStr,
+ BB->getKnownExecutionCount(), BB->getOffset(), getIndex(BB),
+ Layout, BB->getCFIState());
+
if (opts::DotToolTipCode) {
std::string Str;
raw_string_ostream CS(Str);
- Offset = BC.printInstructions(CS, BB->begin(), BB->end(), Offset, this);
- const std::string Code = formatEscapes(CS.str());
- OS << format("\"%s\" [tooltip=\"%s\"]\n", BB->getName().data(),
- Code.c_str());
+ Offset = BC.printInstructions(CS, BB->begin(), BB->end(), Offset, this,
+ /* PrintMCInst = */ false,
+ /* PrintMemData = */ false,
+ /* PrintRelocations = */ false,
+ /* Endl = */ R"(\\l)");
+ OS << formatEscapes(CS.str()) << '\n';
}
+ OS << "\"]\n";
// analyzeBranch is just used to get the names of the branch
// opcodes.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D126237.433664.patch
Type: text/x-patch
Size: 2286 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220602/b194b583/attachment.bin>
More information about the llvm-commits
mailing list