aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move all sources from the llvm project into contrib/llvm-project.Dimitry Andric2019-12-201-7694/+0
| | | | | | | | | | | | | This uses the new layout of the upstream repository, which was recently migrated to GitHub, and converted into a "monorepo". That is, most of the earlier separate sub-projects with their own branches and tags were consolidated into one top-level directory, and are now branched and tagged together. Updating the vendor area to match this layout is next. Notes: svn path=/head/; revision=355940
* Merge llvm trunk r366426, resolve conflicts, and update FREEBSD-Xlist.Dimitry Andric2019-08-211-168/+308
| | | | Notes: svn path=/projects/clang900-import/; revision=351344
* Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist.Dimitry Andric2019-01-201-900/+780
| | | | Notes: svn path=/projects/clang800-import/; revision=343210
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ release_70 branchDimitry Andric2018-09-111-0/+7
| | | | | | | | | r341916, resolve conflicts, and bump version numbers. PR: 230240, 230355 Notes: svn path=/projects/clang700-import/; revision=338597
* Merge llvm trunk r338150 (just before the 7.0.0 branch point), andDimitry Andric2018-08-021-14/+14
| | | | | | | resolve conflicts. Notes: svn path=/projects/clang700-import/; revision=337149
* Merge llvm trunk r338150, and resolve conflicts.Dimitry Andric2018-07-301-1966/+797
| | | | Notes: svn path=/projects/clang700-import/; revision=336916
* Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ toDimitry Andric2018-02-251-4/+14
| | | | | | | | | | | 6.0.0 (branches/release_60 r325932). This corresponds to 6.0.0 rc3. MFC after: 3 months X-MFC-With: r327952 PR: 224669 Notes: svn path=/head/; revision=329983
* Pull in r322473 from upstream llvm trunk (by Andrei Elovikov):Dimitry Andric2018-01-151-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [LV] Don't call recordVectorLoopValueForInductionCast for newly-created IV from a trunc. Summary: This method is supposed to be called for IVs that have casts in their use-def chains that are completely ignored after vectorization under PSE. However, for truncates of such IVs the same InductionDescriptor is used during creation/widening of both original IV based on PHINode and new IV based on TruncInst. This leads to unintended second call to recordVectorLoopValueForInductionCast with a VectorLoopVal set to the newly created IV for a trunc and causes an assert due to attempt to store new information for already existing entry in the map. This is wrong and should not be done. Fixes PR35773. Reviewers: dorit, Ayal, mssimpso Reviewed By: dorit Subscribers: RKSimon, dim, dcaballe, hsaito, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D41913 This should fix "Vector value already set for part" assertions when building the net/iodine and sysutils/daa2iso ports. Reported by: jbeich PR: 224867,224868 Notes: svn path=/head/; revision=328010
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ release_60 r321788,Dimitry Andric2018-01-061-36/+18
| | | | | | | update build glue and version numbers. Notes: svn path=/projects/clang600-import/; revision=327657
* Merge llvm trunk r321414 to contrib/llvm.Dimitry Andric2017-12-241-2/+2
| | | | Notes: svn path=/projects/clang600-import/; revision=327134
* Merge llvm trunk r321017 to contrib/llvm.Dimitry Andric2017-12-201-921/+1656
| | | | Notes: svn path=/projects/clang600-import/; revision=327023
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and updateDimitry Andric2017-07-191-44/+20
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=321238
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r307894, and updateDimitry Andric2017-07-131-2/+7
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320970
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r306956, and updateDimitry Andric2017-07-021-322/+353
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320572
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r306325, and updateDimitry Andric2017-06-271-27/+20
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320397
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r305145, and updateDimitry Andric2017-06-101-3/+6
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319799
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304659, and updateDimitry Andric2017-06-031-0/+2
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319547
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304460, and updateDimitry Andric2017-06-011-10/+19
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319479
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304222, and updateDimitry Andric2017-05-301-15/+6
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319250
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304149, and updateDimitry Andric2017-05-291-26/+131
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319164
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r303571, and updateDimitry Andric2017-05-221-1/+1
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=318681
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r303197, and updateDimitry Andric2017-05-161-121/+120
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=318384
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r302418, and updateDimitry Andric2017-05-081-1/+1
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=317969
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r301441, and updateDimitry Andric2017-04-261-7/+20
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=317472
* Merge llvm, clang, lld and lldb trunk r300890, and update build glue.Dimitry Andric2017-04-201-7/+17
| | | | Notes: svn path=/projects/clang500-import/; revision=317230
* Merge llvm trunk r300422 and resolve conflicts.Dimitry Andric2017-04-161-1336/+1629
| | | | Notes: svn path=/projects/clang500-import/; revision=317029
* Merge llvm, clang, lld and lldb release_40 branch 292732, and updateDimitry Andric2017-01-221-0/+7
| | | | | | | build glue. Notes: svn path=/projects/clang400-import/; revision=312639
* Merge llvm, clang, lld and lldb release_40 branch r292009. Also updateDimitry Andric2017-01-141-6/+8
| | | | | | | build glue. Notes: svn path=/projects/clang400-import/; revision=312197
* Merge llvm, clang, lld and lldb trunk r291476.Dimitry Andric2017-01-091-14/+20
| | | | Notes: svn path=/projects/clang400-import/; revision=311833
* Merge llvm, clang, lld and lldb trunk r291274, and resolve conflicts.Dimitry Andric2017-01-061-42/+17
| | | | Notes: svn path=/projects/clang400-import/; revision=311544
* Update llvm to trunk r290819 and resolve conflicts.Dimitry Andric2017-01-021-993/+1913
| | | | Notes: svn path=/projects/clang400-import/; revision=311142
* Update llvm to release_39 branch r278877.Dimitry Andric2016-08-171-6/+87
| | | | Notes: svn path=/projects/clang390-import/; revision=304310
* Update llvm to release_39 branch r276489, and resolve conflicts.Dimitry Andric2016-08-161-1433/+2356
| | | | Notes: svn path=/projects/clang390-import/; revision=304240
* Pull in r269908 from upstream llvm trunk (by James Molloy):Dimitry Andric2016-05-291-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | [VectorUtils] Fix nasty use-after-free In truncateToMinimalBitwidths() we were RAUW'ing an instruction then erasing it. However, that intruction could be cached in the map we're iterating over. The first check is "I->use_empty()" which in most cases would return true, as the (deleted) object was RAUW'd first so would have zero use count. However in some cases the object could have been polluted or written over and this wouldn't be the case. Also it makes valgrind, asan and traditionalists who don't like their compiler to crash sad. No testcase as there are no externally visible symptoms apart from a crash if the stars align. Fixes PR26509. This should fix crashes when building a number of ports on arm64. Reported by: andrew Notes: svn path=/head/; revision=300974
* Update llvm and clang to release_38 branch r261369.Dimitry Andric2016-02-211-106/+41
| | | | Notes: svn path=/projects/clang380-import/; revision=295859
* Update llvm to trunk r256945.Dimitry Andric2016-01-061-6/+6
| | | | Notes: svn path=/projects/clang380-import/; revision=293265
* Update llvm to trunk r256633.Dimitry Andric2015-12-301-1028/+1447
| | | | Notes: svn path=/projects/clang380-import/; revision=292941
* Update llvm/clang to r242221.Dimitry Andric2015-08-121-304/+170
| | | | Notes: svn path=/projects/clang-trunk/; revision=286684
* Update llvm/clang to r241361.Dimitry Andric2015-07-051-31/+30
| | | | Notes: svn path=/projects/clang-trunk/; revision=285181
* Update llvm/clang to r240225.Dimitry Andric2015-06-231-17/+17
| | | | Notes: svn path=/projects/clang-trunk/; revision=284734
* Update Makefiles and other build glue for llvm/clang 3.7.0, as of trunkDimitry Andric2015-06-101-2/+699
| | | | | | | r239412. Notes: svn path=/projects/clang-trunk/; revision=284236
* Merge llvm trunk r238337 from ^/vendor/llvm/dist, resolve conflicts, andDimitry Andric2015-05-271-2090/+612
| | | | | | | preserve our customizations, where necessary. Notes: svn path=/projects/clang-trunk/; revision=283631
* Merge llvm 3.6.0rc4 from ^/vendor/llvm/dist, merge clang 3.6.0rc4 fromDimitry Andric2015-02-191-0/+2
| | | | | | | ^/vendor/clang/dist, resolve conflicts, and update patches. Notes: svn path=/projects/clang360-import/; revision=279025
* Merge llvm 3.6.0rc1 from ^/vendor/llvm/dist, merge clang 3.6.0rc1 fromDimitry Andric2015-01-251-267/+447
| | | | | | | ^/vendor/clang/dist, resolve conflicts, and cleanup patches. Notes: svn path=/projects/clang360-import/; revision=277718
* Upgrade our copy of clang and llvm to 3.5.1 release. This is a bugfixDimitry Andric2015-01-181-2/+8
| | | | | | | | | | | | | | | | | only release, no new features have been added. Please note that this version requires C++11 support to build; see UPDATING for more information. Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.5.1/docs/ReleaseNotes.html> <http://llvm.org/releases/3.5.1/tools/clang/docs/ReleaseNotes.html> MFC after: 1 month X-MFC-With: 276479 Notes: svn path=/head/; revision=277320
* Pull in r223171 from upstream llvm trunk (by Michael Zolotukhin):Dimitry Andric2014-12-091-0/+9
| | | | | | | | | | | | | | | | | | | | PR21302. Vectorize only bottom-tested loops. rdar://problem/18886083 This fixes a bug in the llvm vectorizer, which could sometimes cause vectorized loops to perform an additional iteration, leading to possible buffer overruns. Symptoms of this, which are usually segfaults, were first noticed when building gcc ports, here: https://lists.freebsd.org/pipermail/freebsd-ports/2014-September/095466.html https://lists.freebsd.org/pipermail/freebsd-toolchain/2014-September/001211.html Note: because this is applied on top of llvm/clang 3.5.0, this fix is slightly different from the one just checked into head in r275633. Notes: svn path=/projects/clang350-import/; revision=275634
* Merge llvm 3.5.0 release from ^/vendor/llvm/dist, resolve conflicts, andDimitry Andric2014-11-241-647/+1604
| | | | | | | preserve our customizations, where necessary. Notes: svn path=/projects/clang350-import/; revision=274968
* Upgrade our copy of llvm/clang to 3.4.1 release. This release containsDimitry Andric2014-05-121-2/+11
| | | | | | | | | | | | | | | | | | mostly fixes, for the following upstream bugs: http://llvm.org/PR16365 http://llvm.org/PR17473 http://llvm.org/PR18000 http://llvm.org/PR18068 http://llvm.org/PR18102 http://llvm.org/PR18165 http://llvm.org/PR18260 http://llvm.org/PR18290 http://llvm.org/PR18316 http://llvm.org/PR18460 http://llvm.org/PR18473 http://llvm.org/PR18515 http://llvm.org/PR18526 http://llvm.org/PR18600 http://llvm.org/PR18762 http://llvm.org/PR18773 http://llvm.org/PR18860 http://llvm.org/PR18994 http://llvm.org/PR19007 http://llvm.org/PR19010 http://llvm.org/PR19033 http://llvm.org/PR19059 http://llvm.org/PR19144 http://llvm.org/PR19326 MFC after: 2 weeks Notes: svn path=/head/; revision=265925
* Upgrade our copy of llvm/clang to 3.4 release. This version supportsDimitry Andric2014-02-161-703/+2092
| | | | | | | | | | | | | | | | | | | | all of the features in the current working draft of the upcoming C++ standard, provisionally named C++1y. The code generator's performance is greatly increased, and the loop auto-vectorizer is now enabled at -Os and -O2 in addition to -O3. The PowerPC backend has made several major improvements to code generation quality and compile time, and the X86, SPARC, ARM32, Aarch64 and SystemZ backends have all seen major feature work. Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.4/docs/ReleaseNotes.html> <http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html> MFC after: 1 month Notes: svn path=/head/; revision=261991
* Upgrade our copy of llvm/clang to 3.3 release.Dimitry Andric2013-06-121-127/+387
| | | | | | | | | Release notes are still in the works, these will follow soon. MFC after: 1 month Notes: svn path=/head/; revision=251662