llvm-project/llvm/test/Transforms/PGOProfile
Xinliang David Li f564c6959e [PGO] Enhance pgo counter promotion
This is an incremental change to the promotion feature.

There are two problems with the current behavior:
1) loops with multiple exiting blocks are totally disabled
2) a counter update can only be promoted one level up in
  the loop nest -- which does help much for short trip
  count inner loops inside a high trip-count outer loops.

Due to this limitation, we still saw very large profile
count fluctuations from run to run for the affected loops
which are usually very hot.

This patch adds the support for promotion counters iteratively
across the loop nest. It also turns on the promotion for
loops with multiple exiting blocks (with a limit).

For single-threaded applications, the performance impact is flat
on average. For instance, dealII improves, but povray regresses.

llvm-svn: 307863
2017-07-12 23:27:44 +00:00
..
Inputs [PGO] Value profile for size of memory intrinsic calls 2017-03-17 18:07:26 +00:00
X86
PR28219.ll
branch1.ll [PartialInlining] Emit branch info and profile data as remarks 2017-06-01 18:58:50 +00:00
branch2.ll
comdat_internal.ll Resubmit r297897: [PGO] Value profile for size of memory intrinsic calls 2017-03-16 21:15:48 +00:00
comdat_rename.ll Resubmit "[PGO] Turn off comdat renaming in IR PGO by default" 2017-01-11 20:19:41 +00:00
counter_promo.ll [PGO] Implementate profile counter regiser promotion 2017-06-25 00:26:43 +00:00
counter_promo_exit_merge.ll [PGO] Enhance pgo counter promotion 2017-07-12 23:27:44 +00:00
counter_promo_mexits.ll [PGO] Enhance pgo counter promotion 2017-07-12 23:27:44 +00:00
counter_promo_nest.ll [PGO] Enhance pgo counter promotion 2017-07-12 23:27:44 +00:00
criticaledge.ll
diag_FE_profile.ll
diag_mismatch.ll
diag_no_funcprofdata.ll
diag_no_profile.ll
do-not-instrument.ll
icp_covariant_call_return.ll
icp_covariant_invoke_return.ll
icp_invoke.ll
icp_mismatch_msg.ll
icp_vararg.ll
indirect_call_annotation.ll
indirect_call_profile.ll Resubmit "[PGO] Turn off comdat renaming in IR PGO by default" 2017-01-11 20:19:41 +00:00
indirect_call_promotion.ll Add call branch annotation for ICP promoted direct call in SamplePGO mode. 2017-02-23 22:15:18 +00:00
landingpad.ll
loop1.ll
loop2.ll
memcpy.ll [PGO] Add omitted test cases. 2017-03-17 20:05:13 +00:00
memop_size_annotation.ll [PGO] Value profile for size of memory intrinsic calls 2017-03-17 18:07:26 +00:00
memop_size_from_strlen.ll [PATCH] [PGO] Fixed cast operation in emIntrinsicVisitor::instrumentOneMemIntrinsic. 2017-06-19 20:04:33 +00:00
memop_size_opt.ll [PGO] Update VP metadata after memory intrinsic optimization 2017-06-13 20:44:08 +00:00
memop_size_opt_zero.ll Memory intrinsic value profile optimization: Avoid divide by 0 2017-04-28 14:30:54 +00:00
multiple_hash_profile.ll Fix some broken CHECK lines. 2017-01-22 20:28:56 +00:00
noreturncall.ll Fix the test cases committed in r289521. 2016-12-13 17:34:29 +00:00
preinline.ll
select1.ll
select2.ll
single_bb.ll
statics_counter_naming.ll [PGO] Directory name stripping in global identifier for static functions 2017-02-25 00:00:36 +00:00
switch.ll
thinlto_indirect_call_promotion.ll
thinlto_samplepgo_icp.ll SamplePGO ThinLTO ICP fix for local functions. 2017-03-14 17:33:01 +00:00
unreachable_bb.ll [PGO] Fix PGO use ICE when there are unreachable BBs 2016-12-02 19:10:29 +00:00