llvm-6502/lib/Transforms/Vectorize
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
..
BBVectorize.cpp BBVectorize: Better use of TTI->getShuffleCost 2013-01-27 20:07:01 +00:00
CMakeLists.txt Add a loop vectorizer. 2012-10-17 18:25:06 +00:00
LLVMBuild.txt
LoopVectorize.cpp Loop Vectorizer: Handle pointer stores/loads in getWidestType() 2013-02-05 15:08:02 +00:00
Makefile
Vectorize.cpp LoopVectorizer: Use the "optsize" attribute to decide if we are allowed to increase the function size. 2012-12-12 19:29:45 +00:00