llvm-project/llvm/lib/Transforms
Arnold Schwaighofer 22174f5d5a 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

llvm-svn: 174377
2013-02-05 15:08:02 +00:00
..
Hello Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
IPO Revert accidental commit (ran svn commit from wrong directory). 2013-02-02 00:25:26 +00:00
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 Fixing warnings revealed by gcc release build 2013-01-29 17:42:24 +00:00
ObjCARC Made certain small functions in PtrState inlined. 2013-01-29 22:29:59 +00:00
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 Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
LLVMBuild.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
Makefile Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00