summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* Upgrade our copy of clang and llvm to 3.5.1 release. This is a bugfixdim2015-01-184-21/+45
| | | | | | | | | | | | | | 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
* Pull in r223171 from upstream llvm trunk (by Michael Zolotukhin):dim2014-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.
* Pull in r222856 from upstream llvm trunk (by David Majnemer):dim2014-11-271-28/+1
| | | | | | | | | | | Revert "Added inst combine transforms for single bit tests from Chris's note" This reverts commit r210006, it miscompiled libapr which is used in who knows how many projects. A test has been added to ensure that we don't regress again. This fixes a miscompilation in libapr, which caused problems in svnlite.
* Merge llvm 3.5.0 release from ^/vendor/llvm/dist, resolve conflicts, anddim2014-11-24137-12193/+19230
| | | | preserve our customizations, where necessary.
* Upgrade our copy of llvm/clang to 3.4.1 release. This release containsdim2014-05-125-17/+44
| | | | | | | | | | | | | | | 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
* Upgrade our copy of llvm/clang to 3.4 release. This version supportsdim2014-02-16109-9380/+17921
| | | | | | | | | | | | | | | | | 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
* Pull in r189672 from upstream llvm trunk:dim2013-08-301-10/+15
| | | | | | | | | | | | | | InstCombine: Check for zero shift amounts before subtracting one causing integer overflow. PR17026. Also avoid undefined shifts and shift amounts larger than 64 bits (those are always undef because we can't represent integer types that large). This should fix assertion failures when building the emulators/xmame port. Reported by: bapt
* Upgrade our copy of llvm/clang to 3.3 release.dim2013-06-1241-1056/+3231
| | | | | | Release notes are still in the works, these will follow soon. MFC after: 1 month
* Pull in r182656 from upstream llvm trunk:dim2013-05-261-1/+4
| | | | | | | | | | | | | | | | | | LoopVectorize: LoopSimplify can't canonicalize loops with an indirectbr in it, don't assert on those cases. Fixes PR16139. This should fix clang assertion failures when optimizing at -O3, similar to: Assertion failed: (TheLoop->getLoopPreheader() && "No preheader!!"), function canVectorize, file contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp, line 2171. Reported by: O. Hartmann <ohartman@zedat.fu-berlin.de> PR: ports/178332, ports/178977 MFC after: 3 days
* Pull in r181286 from upstream llvm trunk:dim2013-05-131-5/+6
| | | | | | | | | | | | | LoopVectorize: getConsecutiveVector must respect signed arithmetic We were passing an i32 to ConstantInt::get where an i64 was needed and we must also pass the sign if we pass negatives numbers. The start index passed to getConsecutiveVector must also be signed. Should fix PR15882. This should fix Firefox crashes some people have been reporting, when it is compiled with -O3.
* Pull in r180121 from upstream llvm trunk:dim2013-04-231-4/+4
| | | | | | | | | | | | | | | LoopVectorizer: Fix 15830. When scalarizing and unrolling stores make sure that the order in which the elements are scalarized is the same as the original order. This fixes a miscompilation in FreeBSD's regex library. This should fix lib/libc/regex/regcomp.c at -O3 with clang 3.3 r178860 on CPUs with SSE. Before this change, the vectorizer could incorrectly rearrange the second loop in computejumps(), leading to possibly invalid entries in the re_gets::charjump table. The net result was that for example "sed s/@CC@/foo/" failed to work correctly, leading to trouble with many configure scripts.
* Upgrade our copy of llvm/clang to trunk r178860, in preparation of thedim2013-04-12128-11722/+20331
| | | | | | | | | upcoming 3.3 release (branching and freezing expected in a few weeks). Preliminary release notes can be found at the usual location: <http://llvm.org/docs/ReleaseNotes.html> An MFC is planned once the actual 3.3 release is finished.
* Upgrade our copy of llvm/clang to 3.2 release.dim2012-12-231-2/+5
| | | | | | | | | | Release notes for llvm: http://llvm.org/releases/3.2/docs/ReleaseNotes.html Release notes for clang: http://llvm.org/releases/3.2/tools/clang/docs/ReleaseNotes.html MFC after: 2 weeks
* Pull in r170353 from upstream llvm trunk:dim2012-12-221-1/+1
| | | | | | | | | | | | | | | | Fix another SROA crasher, PR14601. This was a silly oversight, we weren't pruning allocas which were used by variable-length memory intrinsics from the set that could be widened and promoted as integers. Fix that. This should fix the following assertion failure: Assertion failed: (CanSROA), function visitUsers, file /usr/src/lib/clang/libllvmscalaropts/../../../contrib/llvm/lib/Transforms/Scalar/SROA.cpp, line 2395. Reported by: gerald
* Upgrade our copy of llvm/clang to r168974, from upstream's release_32dim2012-12-0387-2942/+12485
| | | | | branch. This is effectively llvm/clang 3.2 RC2; the 3.2 release is coming soon.
* Upgrade our copy of llvm/clang to trunk r162107. With thanks todim2012-08-2073-3059/+5616
| | | | Benjamin Kramer and Joerg Sonnenberger for their input and fixes.
* Upgrade our copy of llvm/clang to r155985, from upstream's release_31dim2012-05-039-56/+190
| | | | | | | branch. This brings us very close to the 3.1 release, which is planned for May 14th. MFC after: 2 weeks
* Upgrade our copy of llvm/clang to trunk r154661, in preparation of thedim2012-04-1681-4231/+10081
| | | | | | | upcoming 3.1 release (expected in a few weeks). Preliminary release notes can be found at: <http://llvm.org/docs/ReleaseNotes.html> MFC after: 2 weeks
* Upgrade our copy of llvm/clang to 3.0 release. Release notes can bedim2011-12-091-3/+4
| | | | | | found at: http://llvm.org/releases/3.0/docs/ReleaseNotes.html MFC after: 1 week
* Upgrade our copy of llvm/clang to r142614, from upstream's release_30dim2011-10-2276-3829/+5327
| | | | | | | branch. This brings us very close to the 3.0 release, which is expected in a week or two. MFC after: 1 week
* Upgrade our copy of llvm/clang to r135360, from upstream's trunk.dim2011-07-1752-1610/+5783
|
* Upgrade our copy of llvm/clang to r132879, from upstream's trunk.dim2011-06-1237-659/+2127
|
* Upgrade our copy of llvm/clang to r130700, from upstream's trunk.dim2011-05-0269-1690/+3036
|
* Update llvm/clang to trunk r126547.dim2011-02-278-729/+768
| | | | | | | | | | | | | | There are several bugfixes in this update, but the most important one is to ensure __start_ and __stop_ symbols for linker sets and kernel module metadata are always emitted in object files: http://llvm.org/bugs/show_bug.cgi?id=9292 Before this fix, if you compiled kernel modules with clang, they would not be properly processed by kldxref, and if they had any dependencies, the kernel would fail to load those. Another problem occurred when attempting to mount a tmpfs filesystem, which would result in 'operation not supported by device'.
* Upgrade our copy of llvm/clang to r126079, from upstream's trunk.dim2011-02-20102-8353/+12551
| | | | | This contains many improvements, primarily better C++ support, an integrated assembler for x86 and support for -pg.
* Remove more unneeded files and directories from contrib/llvm. Thisdim2010-10-1115-299/+0
| | | | | | | still allows us to build tblgen and clang, and further reduces the footprint in the tree. Approved by: rpaulo (mentor)
* Upgrade our Clang in base to r114020, from upstream's release_28 branch.dim2010-09-2089-3204/+2705
| | | | Approved-by: rpaulo (mentor)
* Upgrade our Clang in base to r108428.ed2010-07-2064-1111/+1418
| | | | | | | | | This commit merges the latest LLVM sources from the vendor space. It also updates the build glue to match the new sources. Clang's version number is changed to match LLVM's, which means /usr/include/clang/2.0 has been renamed to /usr/include/clang/2.8. Obtained from: projects/clangbsd
* Import LLVM/clang from vendor stripped of docs/ test/ website/ www/ examples/rdivacky2010-06-09113-0/+62844
in llvm/ and/or llvm/contrib/clang/ respectively. Approved by: ed (mentor) Approved by: core
OpenPOWER on IntegriCloud