[llvm] [CFGPrinter] Added command line option to change DOT font (PR #148403)
PysKa Ratzinger via llvm-commits
llvm-commits at lists.llvm.org
Sat Jul 26 12:58:18 PDT 2025
https://github.com/PysKa-Ratzinger updated https://github.com/llvm/llvm-project/pull/148403
>From 1109d3ca85b69f399375c3e18f7392218503a0b3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ricardo=20Catal=C3=A3o?= <ricardojorge512 at hotmail.com>
Date: Sat, 12 Jul 2025 23:40:27 +0100
Subject: [PATCH] [CFGPrinter] Added command line option to change DOT font
This patch introduces the ability to change the fontname used in the DOT
graphs of the view-cfg and dot-cfg passes.
---
llvm/include/llvm/Analysis/CFGPrinter.h | 12 ++++++++++--
llvm/lib/Analysis/CFGPrinter.cpp | 5 +++++
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/llvm/include/llvm/Analysis/CFGPrinter.h b/llvm/include/llvm/Analysis/CFGPrinter.h
index ec26da87eb916..8955ada815ed0 100644
--- a/llvm/include/llvm/Analysis/CFGPrinter.h
+++ b/llvm/include/llvm/Analysis/CFGPrinter.h
@@ -27,11 +27,14 @@
#include "llvm/IR/Instructions.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/ProfDataUtils.h"
+#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/DOTGraphTraits.h"
#include "llvm/Support/FormatVariadic.h"
namespace llvm {
+LLVM_ABI extern cl::opt<std::string> CFGFontName;
+
class ModuleSlotTracker;
template <class GraphType> struct GraphTraits;
@@ -321,9 +324,14 @@ struct DOTGraphTraits<DOTFuncInfo *> : public DefaultDOTGraphTraits {
? (getHeatColor(0))
: (getHeatColor(1));
+ std::string FontName = "Courier";
+ if (!CFGFontName.empty()) {
+ FontName = CFGFontName;
+ }
+
std::string Attrs = "color=\"" + EdgeColor + "ff\", style=filled," +
- " fillcolor=\"" + Color + "70\"" +
- " fontname=\"Courier\"";
+ " fillcolor=\"" + Color + "70\"" + " fontname=\"" +
+ FontName + "\"";
return Attrs;
}
LLVM_ABI bool isNodeHidden(const BasicBlock *Node,
diff --git a/llvm/lib/Analysis/CFGPrinter.cpp b/llvm/lib/Analysis/CFGPrinter.cpp
index 38aad849755be..d7f411ddbf9a4 100644
--- a/llvm/lib/Analysis/CFGPrinter.cpp
+++ b/llvm/lib/Analysis/CFGPrinter.cpp
@@ -26,6 +26,11 @@
using namespace llvm;
+cl::opt<std::string>
+ llvm::CFGFontName("cfg-fontname", cl::Hidden,
+ cl::desc("The name of a font to use for the DOT"
+ " file (defaults to Courier)"));
+
static cl::opt<std::string>
CFGFuncName("cfg-func-name", cl::Hidden,
cl::desc("The name of a function (or its substring)"
More information about the llvm-commits
mailing list