llvm/test
Taewook Oh 9f93c9df69 Improve profile-guided heuristics to use estimated trip count.
Summary:
Existing heuristic uses the ratio between the function entry
frequency and the loop invocation frequency to find cold loops. However,
even if the loop executes frequently, if it has a small trip count per
each invocation, vectorization is not beneficial. On the other hand,
even if the loop invocation frequency is much smaller than the function
invocation frequency, if the trip count is high it is still beneficial
to vectorize the loop.

This patch uses estimated trip count computed from the profile metadata
as a primary metric to determine coldness of the loop. If the estimated
trip count cannot be computed, it falls back to the original heuristics.

Reviewers: Ayal, mssimpso, mkuper, danielcdh, wmi, tejohnson

Reviewed By: tejohnson

Subscribers: tejohnson, mzolotukhin, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305729 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-19 18:48:58 +00:00
..
Analysis [JumpThreading][LVI] Invalidate LVI information after blocks are merged 2017-06-19 15:23:33 +00:00
Assembler
Bindings
Bitcode
BugPoint
CodeGen Revert r304824 "Fix PR23384 (part 3 of 3)" 2017-06-19 17:57:15 +00:00
DebugInfo [CodeView] Fix dumping of public symbol record flags 2017-06-19 16:54:51 +00:00
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation
Integer
JitListener
LibDriver
Linker
LTO
MC [AMDGPU][mc][tests][NFC] Bulk ISA tests: Massive update. Add Gfx9 dasm tests. 2017-06-19 15:55:02 +00:00
Object obj2yaml: Improve error reporting 2017-06-16 23:29:54 +00:00
ObjectYAML obj2yaml: Improve error reporting 2017-06-16 23:29:54 +00:00
Other
SymbolRewriter
TableGen
ThinLTO/X86 [cfi] CFI-ICall for ThinLTO. 2017-06-16 00:18:29 +00:00
tools obj2yaml: Improve error reporting 2017-06-16 23:29:54 +00:00
Transforms Improve profile-guided heuristics to use estimated trip count. 2017-06-19 18:48:58 +00:00
Unit
Verifier [Atomics] Rename and change prototype for atomic memcpy intrinsic 2017-06-16 14:43:59 +00:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
TestRunner.sh