summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer/FuzzerTracePC.cpp
diff options
context:
space:
mode:
authorMichael Kuperstein <mkuper@google.com>2016-11-30 21:13:57 +0000
committerMichael Kuperstein <mkuper@google.com>2016-11-30 21:13:57 +0000
commitb151a641aa8fe3c1bbb2ed78279ede5f1ecc0e7e (patch)
tree1109eab7fac4364f34aa2da7f93ecdc8d31d16bd /llvm/lib/Fuzzer/FuzzerTracePC.cpp
parentaa8b28e50901045476faca1b1047123d4f43d7ce (diff)
downloadbcm5719-llvm-b151a641aa8fe3c1bbb2ed78279ede5f1ecc0e7e.tar.gz
bcm5719-llvm-b151a641aa8fe3c1bbb2ed78279ede5f1ecc0e7e.zip
[LoopUnroll] Implement profile-based loop peeling
This implements PGO-driven loop peeling. The basic idea is that when the average dynamic trip-count of a loop is known, based on PGO, to be low, we can expect a performance win by peeling off the first several iterations of that loop. Unlike unrolling based on a known trip count, or a trip count multiple, this doesn't save us the conditional check and branch on each iteration. However, it does allow us to simplify the straight-line code we get (constant-folding, etc.). This is important given that we know that we will usually only hit this code, and not the actual loop. This is currently disabled by default. Differential Revision: https://reviews.llvm.org/D25963 llvm-svn: 288274
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerTracePC.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud