llvm-project/llvm/tools
Rong Xu 077baefc99 [llvm-profdata] Use flattening sample profile in profile supplementation
We need to flatten the SampleFDO profile in profile supplementation
because the InstrFDO profile does not have inlined callsite counters.
Without flattening profile, FDO optimizations are not stable:
we will not supplement the second generation profile when the modified
functions are all inlined.

This patch fixes this issue: we will flatten the profile for functions
that appears in FDO profile.

Note that we only need to find the hot/warm functions in SampleFDO
profile, so we will not perform a full flatten. We will use
a DFS traversal to compute the accumulated entry count and max bodycount.
This is much cheaper than full flattening.

Differential Revision: https://reviews.llvm.org/D138893
2022-11-29 22:23:47 -08:00
..
bugpoint [NFC] Replaced BB->getInstList().{erase(),pop_front(),pop_back()} with eraseFromParent(). 2022-11-23 22:47:46 -08:00
bugpoint-passes [NFC] Replaced BB->getInstList().{erase(),pop_front(),pop_back()} with eraseFromParent(). 2022-11-23 22:47:46 -08:00
dsymutil [dsymutil] Use std::optional in DwarfLinkerForBinary.cpp (NFC) 2022-11-26 18:36:55 -08:00
dxil-dis Add DXIL Bitcode Writer and DXIL testing 2022-04-15 18:50:26 -05:00
gold Fix lto AddStream callsite in gold plugin. 2022-11-22 15:46:59 -08:00
llc Remove unused llvm/IRPrinter/IRPrintingPasses.h or reorder #include after D137768 2022-11-19 22:09:05 +00:00
lli [lli] Use std::optional in lli.cpp (NFC) 2022-11-26 18:39:27 -08:00
llvm-ar [llvm-ar] Fix when llvm-ar fails to replace existing members when updating a thin archive 2022-11-18 14:37:56 +00:00
llvm-as Remove unnecessary includes of ManagedStatic.h 2022-07-07 14:29:20 +02:00
llvm-as-fuzzer
llvm-bcanalyzer Remove redundant initialization of Optional (NFC) 2022-08-20 21:18:28 -07:00
llvm-c-test [AggressiveInstCombine] Remove legacy PM pass 2022-11-15 14:35:15 -08:00
llvm-cat Remove unneeded cl::ZeroOrMore for cl::list options 2022-06-04 23:51:13 -07:00
llvm-cfi-verify Cleanup include: DebugInfo/Symbolize 2022-02-24 13:25:11 +01:00
llvm-config [llvm-config] Remove --src-root option 2022-11-02 18:45:15 +01:00
llvm-cov [llvm-cov] Use std::optional in SourceCoverageViewText.cpp (NFC) 2022-11-26 18:47:28 -08:00
llvm-cvtres Remove unnecessary includes of ManagedStatic.h 2022-07-07 14:29:20 +02:00
llvm-cxxdump [llvm] Qualify auto (NFC) 2022-08-07 23:55:27 -07:00
llvm-cxxfilt [llvm-cxxfilt] Add description for --types in help text 2022-06-14 10:32:56 +01:00
llvm-cxxmap
llvm-debuginfo-analyzer [llvm-debuginfo-analyzer] (08/09) - ELF Reader 2022-10-27 05:37:51 +01:00
llvm-debuginfod [llvm] Modernize bool literals (NFC) 2022-07-17 18:08:51 -07:00
llvm-debuginfod-find [NFC] [Object] Create library to fetch debug info by build ID. 2022-09-28 13:35:35 -07:00
llvm-diff [llvm-diff] Fix false-positive diffs on forward-referencing phi nodes 2022-11-09 20:40:47 +01:00
llvm-dis Remove unneeded cl::ZeroOrMore for cl::list options 2022-06-04 23:51:13 -07:00
llvm-dis-fuzzer [Bitcode] Add missing includes in llvm-dis-fuzzer 2022-02-08 09:49:38 +01:00
llvm-dlang-demangle-fuzzer Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
llvm-driver [llvm-driver] Add lld 2022-10-13 19:23:25 +00:00
llvm-dwarfdump Revert "Remove the dependency between lib/DebugInfoDWARF and MC." 2022-10-06 14:58:34 -07:00
llvm-dwarfutil [llvm-dwarfutil][DWARFv5] fix reading of DW_FORM_addrx attribute. 2022-09-23 09:35:54 +03:00
llvm-dwp [llvm-dwp] Use std::optional in llvm-dwp.cpp (NFC) 2022-11-26 18:49:27 -08:00
llvm-exegesis [llvm] Use std::size (NFC) 2022-11-26 13:47:32 -08:00
llvm-extract Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 01:07:51 -07:00
llvm-gsymutil Revert "Remove the dependency between lib/DebugInfoDWARF and MC." 2022-10-06 14:58:34 -07:00
llvm-ifs [llvm-ifs] Use std::optional in llvm-ifs.cpp (NFC) 2022-11-26 18:51:35 -08:00
llvm-isel-fuzzer Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 00:31:44 -07:00
llvm-itanium-demangle-fuzzer Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
llvm-jitlink [llvm-jitlink] Teach InProcessDeltaMapper to honor -slab-page-size option. 2022-10-03 21:50:01 -07:00
llvm-jitlistener
llvm-libtool-darwin Reland "[llvm][NFC] Use c++17 style variable type traits" 2022-11-08 14:15:15 +00:00
llvm-link [llvm-link] Fix options of llvm-link 2022-11-21 18:08:27 -08:00
llvm-lipo [llvm-lipo] Use std::optional in llvm-lipo.cpp (NFC) 2022-11-26 18:53:51 -08:00
llvm-lto Reland "[LTO][COFF] Use bitcode file names in lto native object file names." 2022-11-22 13:46:42 -08:00
llvm-lto2 Reland "[LTO][COFF] Use bitcode file names in lto native object file names." 2022-11-22 13:46:42 -08:00
llvm-mc [Support] Rename DebugCompressionType::Z to Zlib 2022-09-08 16:11:29 -07:00
llvm-mc-assemble-fuzzer Remove unneeded cl::ZeroOrMore for cl::list options 2022-06-04 23:51:13 -07:00
llvm-mc-disassemble-fuzzer Remove unneeded cl::ZeroOrMore for cl::list options 2022-06-04 23:51:13 -07:00
llvm-mca [llvm-mca] Fix class dominance warnings for parseCodeRegions 2022-11-22 12:31:01 -08:00
llvm-microsoft-demangle-fuzzer Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
llvm-ml [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
llvm-modextract Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
llvm-mt [llvm-driver] Add various tools to the llvm-driver 2022-10-06 05:16:13 +00:00
llvm-nm [llvm-driver] Add various tools to the llvm-driver 2022-10-06 05:16:13 +00:00
llvm-objcopy [llvm-objcopy] Support --decompress-debug-sections when zlib is disabled 2022-10-12 11:52:05 -07:00
llvm-objdump [llvm-objdump] Use std::optional in llvm-objdump.cpp (NFC) 2022-11-26 18:58:05 -08:00
llvm-opt-fuzzer [AggressiveInstCombine] Remove legacy PM pass 2022-11-15 14:35:15 -08:00
llvm-opt-report
llvm-pdbutil [llvm] Qualify auto in range-based for loops (NFC) 2022-09-03 11:17:49 -07:00
llvm-profdata [llvm-profdata] Use flattening sample profile in profile supplementation 2022-11-29 22:23:47 -08:00
llvm-profgen [llvm-profgen] Use std::optional in ProfiledBinary.cpp (NFC) 2022-11-26 19:01:24 -08:00
llvm-rc [llvm-driver] Add various tools to the llvm-driver 2022-10-06 05:16:13 +00:00
llvm-readobj [llvm-readobj] Use std::optional in ELFDumper.cpp (NFC) 2022-11-26 19:05:08 -08:00
llvm-reduce llvm-reduce: Add some missing consts 2022-11-29 10:08:02 -05:00
llvm-remark-size-diff [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
llvm-remarkutil [llvm-remarkutil] Add an option to print out function sizes 2022-09-28 15:45:55 -07:00
llvm-rtdyld Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 01:07:51 -07:00
llvm-rust-demangle-fuzzer Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
llvm-shlib Make sure libLLVM users link with libatomic if needed 2022-09-18 19:11:57 +02:00
llvm-sim [llvm] Use value instead of getValue (NFC) 2022-07-13 23:11:56 -07:00
llvm-size [llvm-driver] Add various tools to the llvm-driver 2022-10-06 05:16:13 +00:00
llvm-special-case-list-fuzzer Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
llvm-split
llvm-stress [llvm-stress] Remove dependency to legacy pass manager 2022-09-29 08:23:49 +02:00
llvm-strings Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 01:07:51 -07:00
llvm-symbolizer [NFC] [Object] Create library to fetch debug info by build ID. 2022-09-28 13:35:35 -07:00
llvm-tapi-diff Use any_of (NFC) 2022-07-30 10:35:56 -07:00
llvm-tli-checker Make llvm-tli-checker support static libraries 2022-09-08 11:10:26 -07:00
llvm-undname Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 00:31:44 -07:00
llvm-xray [iwyu] Move <cmath> out of llvm/Support/MathExtras.h 2022-09-28 20:49:01 +02:00
llvm-yaml-numeric-parser-fuzzer Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
llvm-yaml-parser-fuzzer Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
lto [LTO] Fix lto_module_create_in_codegen_context return value on error 2022-10-26 15:13:22 -07:00
obj2yaml [obj2yaml] Use std::optional in elf2yaml.cpp (NFC) 2022-11-26 19:06:49 -08:00
opt [opt] Hoist errors between flags and legacy PM interaction 2022-11-28 11:30:53 -08:00
opt-viewer
remarks-shlib
sancov [sancov] Remove deprecated -blacklist after D113514 2022-08-01 19:00:43 -07:00
sanstats [sanstats] Hide unrelated options 2022-07-21 18:08:34 -07:00
verify-uselistorder [llvm] Fix comment typos (NFC) 2022-08-07 00:16:14 -07:00
vfabi-demangle-fuzzer
xcode-toolchain
yaml2obj [yaml2obj] Use std::optional in yaml2obj.cpp (NFC) 2022-11-26 19:09:32 -08:00
CMakeLists.txt [llvm-driver] Generate symlinks instead of executables for tools 2022-07-20 01:42:56 +00:00