1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 21:13:02 +02:00
llvm-mirror/lib/Transforms
Dorit Nuzman 2fc6728513 [LoopVectorize] Make interleaved-accesses analysis less conservative about
possible pointer-wrap-around concerns, in some cases.

Before this patch, collectConstStridedAccesses (part of interleaved-accesses
analysis) called getPtrStride with [Assume=false, ShouldCheckWrap=true] when
examining all candidate pointers. This is too conservative. Instead, this
patch makes collectConstStridedAccesses use an optimistic approach, calling
getPtrStride with [Assume=true, ShouldCheckWrap=false], and then, once the
candidate interleave groups have been formed, revisits the pointer-wrapping
analysis but only where it matters: namely, in groups that have gaps, and where
the gaps are not at the very end of the group (in which case the loop is
peeled). This second time getPtrStride is called with [Assume=false,
ShouldCheckWrap=true], but this could further be improved to using Assume=true,
once we also add the logic to track that we are not going to meet the scev
runtime checks threshold.

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

llvm-svn: 285517
2016-10-30 12:23:26 +00:00
..
Coroutines [coroutines] Store an address of destroy OR cleanup part in the coroutine frame. 2016-10-08 00:22:50 +00:00
Hello Add auto-exporting of symbols from tools so that plugins work on Windows 2016-05-26 11:16:43 +00:00
InstCombine [InstCombine] re-use bitcasted compare operands in selects (PR28001) 2016-10-29 15:22:04 +00:00
Instrumentation Utility functions for appending to llvm.used/llvm.compiler.used. 2016-10-25 23:53:31 +00:00
IPO [ThinLTO] Rename HasSection to NoRename (NFC) 2016-10-28 02:24:59 +00:00
ObjCARC Use StringRef in ARCRuntimeEntryPoints APIs (NFC) 2016-10-05 01:15:04 +00:00
Scalar SpeculativeExecution: Allow speculating more inst types 2016-10-28 20:00:33 +00:00
Utils [ThinLTO] Use per-summary flag to prevent exporting locals used in inline asm 2016-10-30 05:40:44 +00:00
Vectorize [LoopVectorize] Make interleaved-accesses analysis less conservative about 2016-10-30 12:23:26 +00:00
CMakeLists.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
LLVMBuild.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00