From 0a26870d921c4f5507126f3068fc13148c426496 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 10 Nov 2009 22:56:15 +0000 Subject: [PATCH] in -dot-cfg and -dot-cfg-only, when rendering switch instructions, put the switch value in the successor boxes like we put T/F for branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86747 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/CFGPrinter.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/llvm/Analysis/CFGPrinter.h b/include/llvm/Analysis/CFGPrinter.h index 435f8ea4849..bee2c5b0d31 100644 --- a/include/llvm/Analysis/CFGPrinter.h +++ b/include/llvm/Analysis/CFGPrinter.h @@ -71,6 +71,18 @@ struct DOTGraphTraits : public DefaultDOTGraphTraits { if (const BranchInst *BI = dyn_cast(Node->getTerminator())) if (BI->isConditional()) return (I == succ_begin(Node)) ? "T" : "F"; + + // Label source of conditional branches with "T" or "F" + if (const SwitchInst *SI = dyn_cast(Node->getTerminator())) { + unsigned SuccNo = I.getSuccessorIndex(); + + if (SuccNo == 0) return "def"; + + std::string Str; + raw_string_ostream OS(Str); + OS << SI->getCaseValue(SuccNo)->getValue(); + return OS.str(); + } return ""; } }; -- 2.34.1