Go to file
Hal Finkel b0ebdc0f43 [LoopVectorizer] Count dependencies of consecutive pointers as uniforms
For the purpose of calculating the cost of the loop at various vectorization
factors, we need to count dependencies of consecutive pointers as uniforms
(which means that the VF = 1 cost is used for all overall VF values).

For example, the TSVC benchmark function s173 has:
  ...
  %3 = add nsw i64 %indvars.iv, 16000
  %arrayidx8 = getelementptr inbounds %struct.GlobalData* @global_data, i64 0, i32 0, i64 %3
  ...
and we must realize that the add will be a scalar in order to correctly deduce
it to be profitable to vectorize this on PowerPC with VSX enabled. In fact, all
dependencies of a consecutive pointer must be a scalar (uniform), and so we
simply need to add all consecutive pointers to the worklist that currently
detects collects uniforms.

Fixes PR19296.

llvm-svn: 205387
2014-04-02 02:34:49 +00:00
clang Fix type mismatch assertion related to inalloca and PR19287 2014-04-02 00:16:53 +00:00
clang-tools-extra clang-modernize: fix invalid assignment in findClangApplyReplacements() 2014-03-30 10:50:25 +00:00
compiler-rt Allow the user to override the compiler used for testing 2014-04-01 21:54:56 +00:00
debuginfo-tests relax testcase for LLDB output format compatibility. 2014-03-19 23:06:18 +00:00
libclc Introduce M_LOG2E_F and M_LOG2E 2014-03-28 21:19:03 +00:00
libcxx Use defined(__APPLE__) rather than __APPLE__ 2014-03-30 14:59:12 +00:00
libcxxabi Simplify. 2014-03-20 01:28:28 +00:00
lld Fix indentation. 2014-04-02 01:49:44 +00:00
lldb Test case for the previous commit. 2014-04-02 01:05:27 +00:00
llvm [LoopVectorizer] Count dependencies of consecutive pointers as uniforms 2014-04-02 02:34:49 +00:00
openmp Revert commit (testing commit hook). 2014-03-04 18:06:04 +00:00
polly Delete trivial PHI nodes (aka stack slot sharing) 2014-04-01 16:01:33 +00:00