[PATCH] D22028: [PGO] Don't include full file path in static function profile counter names
David Li via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 12 10:22:15 PDT 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL275193: [PGO] Don't include full file path in static function profile counter names (authored by davidxl).
Changed prior to commit:
http://reviews.llvm.org/D22028?vs=63371&id=63691#toc
Repository:
rL LLVM
http://reviews.llvm.org/D22028
Files:
llvm/trunk/lib/ProfileData/InstrProf.cpp
llvm/trunk/test/Transforms/PGOProfile/statics_counter_naming.ll
Index: llvm/trunk/test/Transforms/PGOProfile/statics_counter_naming.ll
===================================================================
--- llvm/trunk/test/Transforms/PGOProfile/statics_counter_naming.ll
+++ llvm/trunk/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: llvm/trunk/lib/ProfileData/InstrProf.cpp
===================================================================
--- llvm/trunk/lib/ProfileData/InstrProf.cpp
+++ llvm/trunk/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.63691.patch
Type: text/x-patch
Size: 2206 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160712/47086878/attachment.bin>
More information about the llvm-commits
mailing list