1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/include/llvm/Transforms
Sam Parker 471134db57 [LoopUnroll] Enable option to peel remainder loop
On some targets, the penalty of executing runtime unrolling checks
and then not the unrolled loop can be significantly detrimental to
performance. This results in the need to be more conservative with
the unroll count, keeping a trip count of 2 reduces the overhead as
well as increasing the chance of the unrolled body being executed. But
being conservative leaves performance gains on the table.

This patch enables the unrolling of the remainder loop introduced by
runtime unrolling. This can help reduce the overhead of misunrolled
loops because the cost of non-taken branches is much less than the
cost of the backedge that would normally be executed in the remainder
loop. This allows larger unroll factors to be used without suffering
performance loses with smaller iteration counts.

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

llvm-svn: 310824
2017-08-14 09:25:26 +00:00
..
InstCombine Do a sweep over move ctors and remove those that are identical to the default. 2016-10-20 12:20:28 +00:00
IPO Remove the BBVectorize pass. 2017-06-30 07:09:08 +00:00
Scalar [GVN] Remove stale entries in phitranslate cache when new phi is generated for PRE 2017-08-08 21:40:14 +00:00
Utils [LoopUnroll] Enable option to peel remainder loop 2017-08-14 09:25:26 +00:00
Vectorize [SLP] General improvements of SLP vectorization process. 2017-08-07 15:25:49 +00:00
Coroutines.h [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
GCOVProfiler.h Consistently use ModuleAnalysisManager 2016-08-09 00:28:38 +00:00
InstrProfiling.h [PGO] Implementate profile counter regiser promotion 2017-06-25 00:26:43 +00:00
Instrumentation.h [OptDiag] Updating Remarks in SampleProfile 2017-08-11 21:12:04 +00:00
IPO.h [ThinLTO] Add support for emitting minimized bitcode for thin link 2017-03-23 19:47:39 +00:00
ObjCARC.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PGOInstrumentation.h [PGO] Memory intrinsic calls optimization based on profiled size 2017-04-04 16:42:20 +00:00
SampleProfile.h Hook the sample PGO machinery in the new PM 2017-06-29 23:33:05 +00:00
Scalar.h Disable loop peeling during full unrolling pass. 2017-08-03 17:52:38 +00:00
Vectorize.h Remove the BBVectorize pass. 2017-06-30 07:09:08 +00:00