1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/test
Hiroshi Yamauchi 0596ae1e4a Add heuristics for irreducible loop metadata under PGO
Summary:
Add the following heuristics for irreducible loop metadata:

- When an irreducible loop header is missing the loop header weight metadata,
  give it the minimum weight seen among other headers.
- Annotate indirectbr targets with the loop header weight metadata (as they are
  likely to become irreducible loop headers after indirectbr tail duplication.)

These greatly improve the accuracy of the block frequency info of the Python
interpreter loop (eg. from ~3-16x off down to ~40-55% off) and the Python
performance (eg. unpack_sequence from ~50% slower to ~8% faster than GCC) due to
better register allocation under PGO.

Reviewers: davidxl

Reviewed By: davidxl

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D39980

llvm-svn: 318693
2017-11-20 21:03:38 +00:00
..
Analysis Add heuristics for irreducible loop metadata under PGO 2017-11-20 21:03:38 +00:00
Assembler [IR] redefine 'UnsafeAlgebra' / 'reassoc' fast-math-flags and add 'trans' fast-math-flag 2017-11-06 16:27:15 +00:00
Bindings [LLVM-C] Expose functions to create debug locations via DIBuilder. 2017-11-01 22:18:52 +00:00
Bitcode [ThinLTO] Remove too aggressive assertion in building function call graph. 2017-11-17 18:28:05 +00:00
BugPoint
CodeGen Revert "Fix out-of-order stepping behavior in programs with sunk instructions." 2017-11-20 19:07:52 +00:00
DebugInfo [DebugInfo] Fix potential CU mismatch for SubprogramScopeDIEs. 2017-11-15 10:57:05 +00:00
Examples
ExecutionEngine
Feature
FileCheck Add a -D flag to FileCheck to define variables 2017-11-07 13:24:44 +00:00
Instrumentation [asan] Use dynamic shadow on 32-bit Android, try 2. 2017-11-20 17:41:57 +00:00
Integer
JitListener
Linker
LTO [LTO][ThinLTO] Use the linker resolutions to mark global values as dso_local. 2017-11-04 17:04:39 +00:00
MC [X86] Avoid unecessary opsize byte in segment move to memory 2017-11-20 18:38:55 +00:00
Object [AMDGPU][MC][GFX8][GFX9] Corrected names of integer v_{add/addc/sub/subrev/subb/subbrev} 2017-11-20 18:24:21 +00:00
ObjectYAML
Other Let llvm.invariant.group.barrier accepts pointer to any address space 2017-11-16 16:32:16 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen [globalisel][tablegen] Generate rule coverage and use it to identify untested rules 2017-11-16 00:46:35 +00:00
ThinLTO/X86 [LTO][ThinLTO] Use the linker resolutions to mark global values as dso_local. 2017-11-04 17:04:39 +00:00
tools [AMDGPU][MC][GFX8][GFX9] Corrected names of integer v_{add/addc/sub/subrev/subb/subbrev} 2017-11-20 18:24:21 +00:00
Transforms Add heuristics for irreducible loop metadata under PGO 2017-11-20 21:03:38 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt [llvm-opt-fuzzer] Add opt fuzzer to the test-depends list. 2017-11-15 15:07:37 +00:00
lit.cfg.py [llvm-opt-fuzzer] NFC. Add sanity tests. 2017-11-15 12:36:57 +00:00
lit.site.cfg.py.in Reland "Add feature to determine if host architecture is 64-bit in llvm-lit" 2017-11-02 23:45:51 +00:00
TestRunner.sh