[PATCH] D22028: [PGO] Don't include full file path in static function profile counter names
Jake VanAdrighem via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 8 18:58:59 PDT 2016
jakev updated this revision to Diff 63371.
jakev added a comment.
Added a flag for controlling the behavior of this. Keeping the name short but informative makes the flag name somewhat weird but just let me know if you have some preference on the naming.
Repository:
rL LLVM
http://reviews.llvm.org/D22028
Files:
lib/ProfileData/InstrProf.cpp
test/Transforms/PGOProfile/statics_counter_naming.ll
Index: test/Transforms/PGOProfile/statics_counter_naming.ll
===================================================================
--- /dev/null
+++ test/Transforms/PGOProfile/statics_counter_naming.ll
@@ -0,0 +1,11 @@
+; RUN: opt %s -pgo-instr-gen -S | FileCheck %s --check-prefix=GEN
+; RUN: opt %s -passes=pgo-instr-gen -S | FileCheck %s --check-prefix=GEN
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+; GEN: @__profn_statics_counter_naming.ll_func = private constant [30 x i8] c"statics_counter_naming.ll:func"
+
+define internal i32 @func() {
+entry:
+ ret i32 0
+}
Index: lib/ProfileData/InstrProf.cpp
===================================================================
--- lib/ProfileData/InstrProf.cpp
+++ lib/ProfileData/InstrProf.cpp
@@ -23,9 +23,15 @@
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/ManagedStatic.h"
+#include "llvm/Support/Path.h"
using namespace llvm;
+static cl::opt<bool> StaticFuncFullModulePrefix(
+ "static-func-full-module-prefix", cl::init(false),
+ cl::desc("Use full module build paths in the profile counter names for "
+ "static functions."));
+
namespace {
std::string getInstrProfErrString(instrprof_error Err) {
switch (Err) {
@@ -135,9 +141,12 @@
// (PGOUseFunc::annotateIndirectCallSites). If a symbol does not have the meta
// data, its original linkage must be non-internal.
std::string getPGOFuncName(const Function &F, bool InLTO, uint64_t Version) {
- if (!InLTO)
- return getPGOFuncName(F.getName(), F.getLinkage(), F.getParent()->getName(),
- Version);
+ if (!InLTO) {
+ StringRef FileName = (StaticFuncFullModulePrefix
+ ? F.getParent()->getName()
+ : sys::path::filename(F.getParent()->getName()));
+ return getPGOFuncName(F.getName(), F.getLinkage(), FileName, Version);
+ }
// In LTO mode (when InLTO is true), first check if there is a meta data.
if (MDNode *MD = getPGOFuncNameMetadata(F)) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22028.63371.patch
Type: text/x-patch
Size: 2097 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160709/584c2027/attachment.bin>
More information about the llvm-commits
mailing list