From a43913cfaf3ea2202a39c02d19ccc05a0a2fe193 Mon Sep 17 00:00:00 2001 From: Hiroshi Yamauchi Date: Wed, 13 Sep 2017 17:20:38 +0000 Subject: Add options to dump PGO counts in text. Summary: Added text options to -pgo-view-counts and -pgo-view-raw-counts that dump block frequency and branch probability info in text. This is useful when the graph is very large and complex (the dot command crashes, lines/edges too close to tell apart, hard to navigate without textual search) or simply when text is preferred. Reviewers: davidxl Reviewed By: davidxl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D37776 llvm-svn: 313159 --- llvm/lib/Analysis/BlockFrequencyInfo.cpp | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'llvm/lib/Analysis/BlockFrequencyInfo.cpp') diff --git a/llvm/lib/Analysis/BlockFrequencyInfo.cpp b/llvm/lib/Analysis/BlockFrequencyInfo.cpp index fd41a6a8e20..5d2170dcf15 100644 --- a/llvm/lib/Analysis/BlockFrequencyInfo.cpp +++ b/llvm/lib/Analysis/BlockFrequencyInfo.cpp @@ -61,19 +61,22 @@ cl::opt "is no less than the max frequency of the " "function multiplied by this percent.")); -// Command line option to turn on CFG dot dump after profile annotation. -cl::opt - PGOViewCounts("pgo-view-counts", cl::init(false), cl::Hidden, - cl::desc("A boolean option to show CFG dag with " - "block profile counts and branch probabilities " - "right after PGO profile annotation step. The " - "profile counts are computed using branch " - "probabilities from the runtime profile data and " - "block frequency propagation algorithm. To view " - "the raw counts from the profile, use option " - "-pgo-view-raw-counts instead. To limit graph " - "display to only one function, use filtering option " - "-view-bfi-func-name.")); +// Command line option to turn on CFG dot or text dump after profile annotation. +cl::opt PGOViewCounts( + "pgo-view-counts", cl::Hidden, + cl::desc("A boolean option to show CFG dag or text with " + "block profile counts and branch probabilities " + "right after PGO profile annotation step. The " + "profile counts are computed using branch " + "probabilities from the runtime profile data and " + "block frequency propagation algorithm. To view " + "the raw counts from the profile, use option " + "-pgo-view-raw-counts instead. To limit graph " + "display to only one function, use filtering option " + "-view-bfi-func-name."), + cl::values(clEnumValN(PGOVCT_None, "none", "do not show."), + clEnumValN(PGOVCT_Graph, "graph", "show a graph."), + clEnumValN(PGOVCT_Text, "text", "show in text."))); static cl::opt PrintBlockFreq( "print-bfi", cl::init(false), cl::Hidden, @@ -87,7 +90,7 @@ cl::opt PrintBlockFreqFuncName( namespace llvm { static GVDAGType getGVDT() { - if (PGOViewCounts) + if (PGOViewCounts == PGOVCT_Graph) return GVDT_Count; return ViewBlockFreqPropagationDAG; } -- cgit v1.2.3