llvm-6502/lib/Transforms
Arnold Schwaighofer 935645b765 Loop Vectorizer: Handle pointer stores/loads in getWidestType()
In the loop vectorizer cost model, we used to ignore stores/loads of a pointer
type when computing the widest type within a loop. This meant that if we had
only stores/loads of pointers in a loop we would return a widest type of 8bits
(instead of 32 or 64 bit) and therefore a vector factor that was too big.

Now, if we see a consecutive store/load of pointers we use the size of a pointer
(from data layout).

This problem occured in SingleSource/Benchmarks/Shootout-C++/hash.cpp (reduced
test case is the first test in vector_ptr_load_store.ll).

radar://13139343

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174377 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-05 15:08:02 +00:00
..
Hello
InstCombine Revert r174152. The shift amount may overflow and in that case this transformation is illegal. 2013-02-01 07:59:33 +00:00
Instrumentation
IPO Revert accidental commit (ran svn commit from wrong directory). 2013-02-02 00:25:26 +00:00
ObjCARC
Scalar This patch aims to improve compile time performance by increasing 2013-02-01 20:41:27 +00:00
Utils Linker: correctly link in dbg.declare 2013-01-31 21:19:18 +00:00
Vectorize Loop Vectorizer: Handle pointer stores/loads in getWidestType() 2013-02-05 15:08:02 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile