1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/include/llvm
Wei Mi 1344e2b49c [SampleFDO] Stop repeated indirect call promotion for the same target.
Found a problem in indirect call promotion in sample loader pass. Currently
if an indirect call is promoted for a target, and if the parent function is
inlined into some other function, the indirect call can be promoted for the
same target again. That is redundent which can harm performance and can cause
excessive compile time in some extreme case.

The patch fixes the issue. If a target is promoted for an indirect call, the
patch will write ICP metadata with the target call count being set to 0.
In the later ICP in sample profile loader, if it sees a target has 0 count
for an indirect call, it knows the target has been promoted and won't do
indirect call promotion for the indirect call.

The fix brings 0.1~0.2% performance on our search benchmark.

Differential Revision: https://reviews.llvm.org/D96806
2021-02-18 17:01:32 -08:00
..
ADT [ADT] Add SFINAE guards to unique_function constructor. 2021-02-17 10:36:07 +01:00
Analysis [NFC] Refactor LoopInterchange into a loop-nest pass 2021-02-18 00:55:38 +08:00
AsmParser
BinaryFormat [XCOFF][NFC] make csect properties optional for getXCOFFSection 2021-02-17 20:51:42 -05:00
Bitcode [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
Bitstream [llvm] Use append_range (NFC) 2021-01-29 23:23:34 -08:00
CodeGen [AArch64][SVE] Add patterns to generate FMLA/FMLS/FNMLA/FNMLS/FMAD 2021-02-18 16:55:16 +00:00
Config [Timer] On macOS count number of executed instructions 2021-02-11 17:26:37 +01:00
DebugInfo [Symbolize] Teach symbolizer to work directly on object file. 2021-02-12 18:26:24 +00:00
Demangle [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
DWARFLinker [dsymutil][DWARFLinker][NFC] make AddressManager not depending on the order of checks for relocations. 2021-01-31 16:34:10 +03:00
ExecutionEngine [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
FileCheck [FileCheck] Add a literal check directive modifier 2020-12-18 17:26:15 -08:00
Frontend [OpenMP] Implement '#pragma omp tile', by Michael Kruse (@Meinersbur). 2021-02-16 09:45:07 -08:00
FuzzMutate [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
InterfaceStub [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
IR [llvm][IR] Do not place constants with static relocations in a mergeable section 2021-02-18 15:39:00 -08:00
IRReader
LineEditor
Linker
LTO Recommit "[LTO] Use lto::backend for code generation." 2021-02-15 10:05:42 +00:00
MC [XCOFF][NFC] make StorageMappingClass/SymbolType member optional 2021-02-18 04:46:05 -05:00
MCA [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
Object [llvm-objdump] Map STT_TLS to ST_Other (previously ST_Data) 2021-02-17 23:17:20 -08:00
ObjectYAML [obj2yaml,yaml2obj] Add NumBlocks to the BBAddrMapEntry yaml field. 2021-02-17 15:45:13 -08:00
Option [clang][cli] Generate and round-trip CodeGen options 2021-02-09 11:43:38 +01:00
Passes [opt][NewPM] Add a --print-passes flag to print all available passes 2021-02-10 11:22:12 -08:00
ProfileData [SampleFDO] Stop repeated indirect call promotion for the same target. 2021-02-18 17:01:32 -08:00
Remarks [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
Support [AMDGPU] gfx90a support 2021-02-17 16:01:32 -08:00
TableGen Revert "[TableGen] Improve algorithms for processing template arguments" 2021-02-18 09:26:26 -05:00
Target [GlobalISel] Add G_ASSERT_SEXT 2021-02-17 13:10:34 -08:00
Testing/Support
TextAPI/MachO [llvm][TextAPI] add equality operator for InterfaceFile 2021-02-18 11:53:08 -08:00
ToolDrivers
Transforms [NPM] Properly reset parent loop after loop passes 2021-02-19 02:50:53 +08:00
WindowsManifest [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
WindowsResource
XRay [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
CMakeLists.txt
InitializePasses.h Add ehcont section support 2021-02-15 14:27:12 +08:00
LinkAllIR.h
LinkAllPasses.h [ScalarizeMaskedMemIntrin] Add new PM support 2020-12-08 17:15:22 -05:00
module.extern.modulemap
module.install.modulemap
module.modulemap [modules] Put Frontend/OpenMP headers into a Clang module to fix the module build 2021-02-08 09:54:45 +01:00
module.modulemap.build
Pass.h [NFC] Rename ThinLTOPhase to ThinOrFullLTOPhase and move it from PassBuilder.h 2021-01-13 15:55:40 -08:00
PassAnalysisSupport.h [PM] Avoid duplicates in the Used/Preserved/Required sets 2021-01-20 13:55:18 +01:00
PassInfo.h
PassRegistry.h
PassSupport.h