llvm-project/llvm/test/Transforms/LoopVectorize/X86
Cong Hou a73ffa2206 [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions.
(This is the third attempt to check in this patch, and the first two are r255454
and r255460. The once failed test file reg-usage.ll is now moved to
test/Transform/LoopVectorize/X86 directory with target datalayout and target
triple indicated.)

LoopVectorizationCostModel::calculateRegisterUsage() is used to estimate the
register usage for specific VFs. However, it takes into account many
instructions that won't be vectorized, such as induction variables,
GetElementPtr instruction, etc.. This makes the loop vectorizer too conservative
when choosing VF. In this patch, the induction variables that won't be
vectorized plus GetElementPtr instruction will be added to ValuesToIgnore set
so that their register usage won't be considered any more.


Differential revision: http://reviews.llvm.org/D15177

llvm-svn: 255691
2015-12-15 22:45:09 +00:00
..
already-vectorized.ll Introduce runtime unrolling disable matadata and use it to mark the scalar loop from vectorization. 2015-03-09 06:14:18 +00:00
assume.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
avx1.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
avx512.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
constant-vector-operand.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
conversion-cost.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
cost-model.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
fp32_to_uint32-cost-model.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
fp64_to_uint32-cost-model.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
fp_to_sint8-cost-model.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
gather-cost.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
gcc-examples.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
illegal-parallel-loop-uniform-write.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
lit.local.cfg
masked_load_store.ll Pointers in Masked Load, Store, Gather, Scatter intrinsics 2015-11-19 07:17:16 +00:00
metadata-enable.ll Roll forward r243250 2015-07-26 19:10:03 +00:00
min-trip-count-switch.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
no-vector.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
no_fpmath.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
parallel-loops-after-reg2mem.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
parallel-loops.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
powof2div.ll Cleanup test whitespace or lack thereof. NFC. 2015-08-14 16:34:15 +00:00
ptr-indvar-crash.ll Correct a typo for a LoopVectorize test 2015-06-30 10:05:43 +00:00
rauw-bug.ll
reduction-crash.ll [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
reg-usage.ll [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions. 2015-12-15 22:45:09 +00:00
small-size.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
struct-store.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
tripcount.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
uint64_to_fp64-cost-model.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
unroll-pm.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
unroll-small-loops.ll [X86] Disable loop unrolling in loop vectorization pass when VF is 1. 2015-05-06 17:12:25 +00:00
unroll_selection.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
veclib-calls.ll Populate list of vectorizable functions for Accelerate library. 2015-05-07 17:11:51 +00:00
vect.omp.force.ll TTI: Honour cost model for estimating cost of vector-intrinsic and calls. 2015-03-17 19:37:28 +00:00
vect.omp.force.small-tc.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
vector-scalar-select-cost.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
vector_max_bandwidth.ll [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions. 2015-12-15 22:45:09 +00:00
vector_ptr_load_store.ll Add a flag vectorizer-maximize-bandwidth in loop vectorizer to enable using larger vectorization factor. 2015-11-02 22:53:48 +00:00
vectorization-remarks-missed.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
vectorization-remarks-profitable.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
vectorization-remarks.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
x86_fp80-vector-store.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00