Unlike profile data section names, profile symbol names (for data, counter and func names) are not part of runtime ABI. They can be changed to anything (given no name conflict) without changing profile format. Current naming scheme is to prefix the owning function name with long prefixes: llvm_profile_name_, llvm_profile_counters_, __llvm_profile_data_. For large C++ programs, this scheme can add to large overhead to the size of non-stripped binary and total input object size to the linker.
This patch shortens the prefixes without losing the symbol name 'readability'.
The impact of this change: Clang profile-instr binary size is reduced by 7M, and the total instrumented object size is reduced by ~40M. For larger apps, the savings can be easily hundreds of mega byes.
The test case changes are mechanical -- they are not included in the review.