llvm-project/llvm/test
Sriraman Tallam ad1b9daa4b Prepend "__uniq" to symbol names hash with -funique-internal-linkage-names.
Prepend the module name hash with a fixed string ".__uniq." which helps tools
that consume sampled profiles and attribute it to functions to understand
that this symbol belongs to a unique internal linkage type symbol.

Symbols with suffixes can result from various optimizations in the compiler.
Function Multiversioning, function splitting, parameter constant propogation,
unique internal linkage names.

External tools like sampled profile aggregators combine profiles from multiple
runs of a binary. They use various heuristics with symbols that have suffixes
to try and attribute the profile to the right function instance. For instance
multi-versioned symbols like foo.avx, foo.sse4.2, etc even though different
should be attributed to the same source function if a single function is
versioned, using attribute target_clones (supported in GCC but yet to land in
LLVM). Similarly, functions that are split (split part having a .cold suffix)
could have profiles for both the original and split symbols but would be
aggregated and attributed to the original function that was split.

Unique internal linkage functions however have different source instances and
the aggregator must not put them together but attribute it to the appropriate
function instance. To be sure that we are dealing with a symbol of a unique
internal linkage function, we would like to prepend the hash with a known
string ".__uniq." which these tools can check to understand the suffix type.

Differential Revision: https://reviews.llvm.org/D89617
2020-10-26 14:24:28 -07:00
..
Analysis [SVE] Fix TypeSize warning in llvm::getGEPInductionOperand 2020-10-26 17:40:32 +00:00
Assembler Handle value uses wrapped in metadata for the use-list order 2020-10-20 20:05:59 +02:00
Bindings [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
Bitcode [BitCode] decode nossp fn attr 2020-10-26 13:06:54 -07:00
BugPoint
CodeGen [AArch64] Extend tests for insertelement improvements. 2020-10-26 17:57:12 +00:00
DebugInfo [llvm/DebugInfo] Emit DW_OP_implicit_value when tuning for LLDB 2020-10-24 06:45:33 +02:00
Demangle
Examples [examples] Fix test: Kaleidoscope Chapter 4 no longer supports redefinition. 2020-10-19 00:35:56 -07:00
ExecutionEngine Reapply "[jitlink][ELF] Add zero-fill blocks for symbols in section SHN_COMMON" 2020-10-24 16:58:06 +02:00
Feature [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
FileCheck
Instrumentation [test] Fix alloca-offset-lifetime.ll under NPM 2020-10-21 13:31:27 -07:00
Integer
JitListener
LTO [IRMover] Avoid materializing global value that belongs to not-yet-linked module 2020-10-07 18:14:07 -07:00
Linker Reapply "OpaquePtr: Add type to sret attribute" 2020-10-16 11:05:02 -04:00
MC [VE] Add vector shift instructions 2020-10-27 00:30:27 +09:00
MachineVerifier [GlobalISel] Remove scalar src from non-sequential fadd/fmul reductions. 2020-10-15 15:51:44 -07:00
Object [llvm-ar][Object] Fix detection of need for 64-bit archive symbol tables 2020-10-26 12:29:28 +00:00
ObjectYAML [WebAssembly] Added .tabletype to asm and multiple table support in obj files 2020-10-13 07:52:23 -07:00
Other [Inliner] Run always-inliner in inliner-wrapper 2020-10-22 19:16:25 -07:00
Reduce llvm-reduce: Test reduction for D88684 ( ee6e25e439 ) 2020-10-26 13:16:00 -07:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen [TableGen] [tests] Change integer ranges to use new '...' punctuation 2020-10-26 10:47:29 -04:00
ThinLTO/X86 Restore "[ThinLTO] Avoid temporaries when loading global decl attachment metadata" 2020-10-12 10:11:56 -07:00
Transforms Prepend "__uniq" to symbol names hash with -funique-internal-linkage-names. 2020-10-26 14:24:28 -07:00
Unit
Verifier [IR] add fn attr for no_stack_protector; prevent inlining on mismatch 2020-10-23 11:55:39 -07:00
YAMLParser
tools [ARM][SchedModels] Convert IsLdstsoScaledNotOptimalPred to MCSchedPredicate 2020-10-26 20:22:41 +03:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg.py
lit.site.cfg.py.in