Go to file
Xinliang David Li a716cc5c33 [PGO] Improve Indexed Profile Reader efficiency
With the support of value profiling added, the Indexed prof
reader gets less efficient. The prof reader initialization
used to be just reading the file header, but with VP support
added, initialization needs to walk through all profile keys
of ondisk hash table resulting in very poor locality and large
memory increase (keys are stored together with the profile data
in the mapped profile buffer). Even worse, when the reader is 
used by the compiler (not llvm-profdata too), the penalty becomes
very high as compilation of each single module requires touching
profile data buffer for the whole program. 

In this patch, the icall target values (MD5hash) are no longer eargerly 
converted back to name strings when the data is read into memory. New
interface is added to to profile reader so that InstrProfSymtab can be
lazily created for Indexed profile reader on-demand. Creating of the 
symtab is intended to be used by llvm-profdata tool for symbolic dumping
of  VP data. It can be used with compiler (for legacy out of tree uses)
too but not recommended due to compile time and memory reasons 
mentioned above.

Some other cleanups are also included: Function Addr to md5 map is now
consolated into InstrProfSymtab. InstrProfStringtab is no longer used and
eliminated.

llvm-svn: 256114
2015-12-20 06:22:13 +00:00
clang Driver part of debugger tuning. 2015-12-19 19:41:48 +00:00
clang-tools-extra Remove clang-modernize. 2015-12-17 11:49:19 +00:00
compiler-rt [PGO] Fix build failure with MSVC 2015-12-19 19:16:32 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc AMDGPU: Add aliases for all VI targets 2015-12-15 18:37:04 +00:00
libcxx Fix type in tuple test. Sorry for the noise 2015-12-18 01:04:36 +00:00
libcxxabi [libc++abi] Use libgcc and libgcc_s to provide _Unwind symbols instead of libgcc_eh.a 2015-12-14 22:20:04 +00:00
libunwind Replace cmake check for printf with a check for fopen. 2015-12-10 00:47:08 +00:00
lld [ELF] Allow target to configure ELF header flags in the output file 2015-12-19 05:51:49 +00:00
lldb [TestCPPAuto] On linux, we need -fno-limit-debug-info. 2015-12-19 00:52:29 +00:00
llgo [llgo] Force exporting __morestack from llgoi 2015-11-27 04:46:46 +00:00
llvm [PGO] Improve Indexed Profile Reader efficiency 2015-12-20 06:22:13 +00:00
openmp Prevent monitor thread creation when KMP_BLOCKTIME="infinite" 2015-12-18 23:20:36 +00:00
polly Fix of a comment. 2015-12-17 20:47:10 +00:00