llvm-project/llvm/lib/Transforms/Instrumentation
Rong Xu 705f7775bb [PGO] Fix profile mismatch in COMDAT function with pre-inliner
Pre-instrumentation inline (pre-inliner) greatly improves the IR
instrumentation code performance, among other benefits. One issue of the
pre-inliner is it can introduce CFG-mismatch for COMDAT functions. This
is due to the fact that the same COMDAT function may have different early
inline decisions across different modules -- that means different copies
of COMDAT functions will have different CFG checksum.

In this patch, we propose a partially renaming the COMDAT group and its
member function/variable so we have different profile counter for each
version. We will post-fix the COMDAT function and the group name with its
FunctionHash.

Differential Revision: http://reviews.llvm.org/D22600

llvm-svn: 276673
2016-07-25 18:45:37 +00:00
..
AddressSanitizer.cpp Unpoison stack before resume instruction 2016-07-22 22:04:38 +00:00
BoundsChecking.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
CFGMST.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
CMakeLists.txt [PGO] Promote indirect calls to conditional direct calls with value-profile 2016-04-27 23:20:27 +00:00
DataFlowSanitizer.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
EfficiencySanitizer.cpp [esan:cfrag] Add option -esan-aux-field-info 2016-07-07 03:20:16 +00:00
GCOVProfiling.cpp Rename StringMap::emplace_second to try_emplace. 2016-07-21 13:37:48 +00:00
IndirectCallPromotion.cpp Address review comments. 2016-07-17 14:46:58 +00:00
InstrProfiling.cpp [Profile] deprecate __llvm_profile_override_default_filename 2016-07-21 23:19:10 +00:00
Instrumentation.cpp [PM] code refactoring /NFC 2016-06-05 03:40:03 +00:00
LLVMBuild.txt [PGO] Resubmit "MST based PGO instrumentation infrastructure" (r254021) 2015-12-09 18:08:16 +00:00
MaximumSpanningTree.h
MemorySanitizer.cpp [msan] Fix __msan_maybe_ for non-standard type sizes. 2016-07-01 22:49:59 +00:00
PGOInstrumentation.cpp [PGO] Fix profile mismatch in COMDAT function with pre-inliner 2016-07-25 18:45:37 +00:00
SanitizerCoverage.cpp [sanitizer-coverage] make sure that calls to __sanitizer_cov_trace_pc are not merged (otherwise different calls get the same PC and confuse fuzzers) 2016-07-14 17:59:01 +00:00
ThreadSanitizer.cpp [tsan] Don't instrument __llvm_gcov_global_state_pred or __llvm_gcda* 2016-07-19 20:16:08 +00:00