diff options
author | Arnold Schwaighofer <aschwaighofer@apple.com> | 2013-02-05 15:08:02 +0000 |
---|---|---|
committer | Arnold Schwaighofer <aschwaighofer@apple.com> | 2013-02-05 15:08:02 +0000 |
commit | 935645b7655a0b5189d40b3d65b3bcb14e30d859 (patch) | |
tree | de502da9e44f1930cd496e6e0667ab1bbb340d2a /lib/Support/CrashRecoveryContext.cpp | |
parent | b9e1a33941d25faf54dc3ddec4be7f8f0750a155 (diff) |
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
Diffstat (limited to 'lib/Support/CrashRecoveryContext.cpp')
0 files changed, 0 insertions, 0 deletions