- Feb 25, 2017
-
-
Hans Wennborg authored
llvm-svn: 296203
-
Hans Wennborg authored
llvm-svn: 296202
-
Hans Wennborg authored
llvm-svn: 296200
-
Hans Wennborg authored
llvm-svn: 296199
-
Hans Wennborg authored
llvm-svn: 296197
-
Hans Wennborg authored
llvm-svn: 296195
-
Hans Wennborg authored
llvm-svn: 296194
-
Hans Wennborg authored
llvm-svn: 296192
-
Hans Wennborg authored
llvm-svn: 296191
-
Hans Wennborg authored
llvm-svn: 296189
-
Hans Wennborg authored
------------------------------------------------------------------------ r288115 | abataev | 2016-11-29 09:21:14 +0100 (Tue, 29 Nov 2016) | 8 lines [SLPVectorizer] Improved support of partial tree vectorization. Currently SLP vectorizer tries to vectorize a binary operation and dies immediately after unsuccessful the first unsuccessfull attempt. Patch tries to improve the situation, trying to vectorize all binary operations of all children nodes in the binop tree. Differential Revision: https://reviews.llvm.org/D25517 ------------------------------------------------------------------------ llvm-svn: 296185
-
Hans Wennborg authored
------------------------------------------------------------------------ r295990 | jvesely | 2017-02-23 08:12:21 -0800 (Thu, 23 Feb 2017) | 5 lines AMDGPU/SI: Fix trunc i16 pattern Hit on ASICs that support 16bit instructions. Differential Revision: https://reviews.llvm.org/D30281 ------------------------------------------------------------------------ llvm-svn: 296158
-
Hans Wennborg authored
------------------------------------------------------------------------ r296003 | mcrosier | 2017-02-23 10:49:03 -0800 (Thu, 23 Feb 2017) | 32 lines [Reassociate] Add negated value of negative constant to the Duplicates list. In OptimizeAdd, we scan the operand list to see if there are any common factors between operands that can be factored out to reduce the number of multiplies (e.g., 'A*A+A*B*C+D' -> 'A*(A+B*C)+D'). For each operand of the operand list, we only consider unique factors (which is tracked by the Duplicate set). Now if we find a factor that is a negative constant, we add the negated value as a factor as well, because we can percolate the negate out. However, we mistakenly don't add this negated constant to the Duplicates set. Consider the expression A*2*-2 + B. Obviously, nothing to factor. For the added value A*2*-2 we over count 2 as a factor without this change, which causes the assert reported in PR30256. The problem is that this code is assuming that all the multiply operands of the add are already reassociated. This change avoids the issue by making OptimizeAdd tolerate multiplies which haven't been completely optimized; this sort of works, but we're doing wasted work: we'll end up revisiting the add later anyway. Another possible approach would be to enforce RPO iteration order more strongly. If we have RedoInsts, we process them immediately in RPO order, rather than waiting until we've finished processing the whole function. Intuitively, it seems like the natural approach: reassociation works on expression trees, so the optimization only works in one direction. That said, I'm not sure how practical that is given the current Reassociate; the "optimal" form for an expression depends on its use list (see all the uses of "user_back()"), so Reassociate is really an iterative optimization of sorts, so any changes here would probably get messy. PR30256 Differential Revision: https://reviews.llvm.org/D30228 ------------------------------------------------------------------------ llvm-svn: 296156
-
Hans Wennborg authored
------------------------------------------------------------------------ r293604 | sammccall | 2017-01-30 21:23:20 -0800 (Mon, 30 Jan 2017) | 12 lines In VirtualCallChecker, handle indirect calls Summary: In VirtualCallChecker, handle indirect calls. getDirectCallee() can be nullptr, and dyn_cast(nullptr) is UB Reviewers: bkramer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D29303 ------------------------------------------------------------------------ llvm-svn: 296154
-
Hans Wennborg authored
------------------------------------------------------------------------ r296063 | hans | 2017-02-23 17:16:34 -0800 (Thu, 23 Feb 2017) | 4 lines Revert r291477 "[Frontend] Correct values of ATOMIC_*_LOCK_FREE to match builtin" It caused PR31864. There is a patch in progress to fix that, but let's revert in the meantime. ------------------------------------------------------------------------ llvm-svn: 296152
-
Hans Wennborg authored
------------------------------------------------------------------------ r295474 | hahnfeld | 2017-02-17 10:32:58 -0800 (Fri, 17 Feb 2017) | 6 lines [OpenMP] Fix cancellation point in task with no cancel With tasks, the cancel may happen in another task. This has a different region info which means that we can't find it here. Differential Revision: https://reviews.llvm.org/D30091 ------------------------------------------------------------------------ llvm-svn: 296151
-
Hans Wennborg authored
llvm-svn: 296150
-
Hans Wennborg authored
------------------------------------------------------------------------ r296030 | hans | 2017-02-23 14:29:00 -0800 (Thu, 23 Feb 2017) | 7 lines Revert r282872 "CVP. Turn marking adds as no wrap on by default" While not CVP's fault, this caused miscompiles (PR31181). Reverting until those are resolved. (This also reverts the follow-ups r288154 and r288161 which removed the flag.) ------------------------------------------------------------------------ llvm-svn: 296148
-
Hans Wennborg authored
------------------------------------------------------------------------ r295474 | hahnfeld | 2017-02-17 10:32:58 -0800 (Fri, 17 Feb 2017) | 6 lines [OpenMP] Fix cancellation point in task with no cancel With tasks, the cancel may happen in another task. This has a different region info which means that we can't find it here. Differential Revision: https://reviews.llvm.org/D30091 ------------------------------------------------------------------------ llvm-svn: 296139
-
- Feb 24, 2017
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r295762 | eugenis | 2017-02-21 12:17:34 -0800 (Tue, 21 Feb 2017) | 3 lines Fix PR31896. Address of an alias of a global with offset is incorrectly lowered as an address of the global (i.e. ignoring offset). ------------------------------------------------------------------------ llvm-svn: 296002
-
Hans Wennborg authored
------------------------------------------------------------------------ r295843 | jvesely | 2017-02-22 07:01:42 -0800 (Wed, 22 Feb 2017) | 3 lines [OpenCL] r600 needs OpenCL kernel calling convention Differential Revision: https://reviews.llvm.org/D30236 ------------------------------------------------------------------------ llvm-svn: 296001
-
Hans Wennborg authored
------------------------------------------------------------------------ r295473 | hahnfeld | 2017-02-17 10:32:51 -0800 (Fri, 17 Feb 2017) | 13 lines [OpenMP] Remove barriers at cancel and cancellation point This resolves a deadlock with the cancel directive when there is no explicit cancellation point. In that case, the implicit barrier acts as cancellation point. After removing the barrier after cancel, the now unmatched barrier for the explicit cancellation point has to go as well. This has probably worked before rL255992: With the calls for the explicit barrier, it was sure that all threads passed a barrier before exiting. Reported by Simon Convent and Joachim Protze! Differential Revision: https://reviews.llvm.org/D30088 ------------------------------------------------------------------------ llvm-svn: 296000
-
- Feb 23, 2017
-
-
Hans Wennborg authored
Support lowering AEABI TLS access (__aeabi_read_tp) with long calls. This requires adjusting the call sequence to use an indirect call to get full addressability. Resolves PR31769! By Saleem Abdulrasool! llvm-svn: 295910
-
- Feb 22, 2017
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r294954 | chapuni | 2017-02-13 06:59:53 -0800 (Mon, 13 Feb 2017) | 5 lines Fix r291495 -- Normalize LLVM_CMAKE_PATH in clang standalone build. CMake handles paths with slashes. It caused cmake/install failure on msbuild.exe. Note, Other llvm-config-oriented variables have been normalized since they are stored in the cache attributed with PATH. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r295592 | chapuni | 2017-02-18 19:17:31 -0800 (Sat, 18 Feb 2017) | 1 line clang/CMakeLists.txt: Rework r294954 -- use file(TO_CMAKE_PATH). ------------------------------------------------------------------------ llvm-svn: 295760
-
Hans Wennborg authored
------------------------------------------------------------------------ r295610 | brad | 2017-02-19 11:33:26 -0800 (Sun, 19 Feb 2017) | 4 lines Link static PIE programs against rcrt0.o on OpenBSD Patch by Stefan Kempf. ------------------------------------------------------------------------ llvm-svn: 295752
-
Hans Wennborg authored
------------------------------------------------------------------------ r293273 | chandlerc | 2017-01-27 02:27:32 -0800 (Fri, 27 Jan 2017) | 19 lines [LICM] When we are recomputing the alias sets for a subloop, we cannot skip sub-subloops. The logic to skip subloops dated from when this code was shared with the cached case. Once it was factored out to only run in the case of recomputed subloops it became a dangerous bug. If a subsubloop contained an interfering instruction it would be silently skipped from the alias sets for LICM. With the old pass manager this was extremely hard to trigger as it would require failing to visit these subloops with the LICM pass but then visiting the outer loop somehow. I've not yet contrived any test case that actually manages to trigger this. But with the new pass manager we don't do the cross-loop caching hack that the old PM does and so we recompute alias set information from first principles. While this seems much cleaner and simpler it exposed this bug and would subtly miscompile code due to failing to correctly model the aliasing constraints of deeply nested loops. ------------------------------------------------------------------------ llvm-svn: 295748
-
Hans Wennborg authored
------------------------------------------------------------------------ r295486 | adrian | 2017-02-17 11:42:32 -0800 (Fri, 17 Feb 2017) | 6 lines Debug Info: Sort frame index expressions before emitting them. This fixes PR31381, which caused an assertion and/or invalid debug info. This affects debug variables that have multiple fragments in the MMI side (i.e.: in the stack frame) table. rdar://problem/30571676 ------------------------------------------------------------------------ ------------------------------------------------------------------------ r295490 | adrian | 2017-02-17 12:02:26 -0800 (Fri, 17 Feb 2017) | 1 line Fix windows bots by locking down the target triple on this testcase. ------------------------------------------------------------------------ llvm-svn: 295747
-
Hans Wennborg authored
------------------------------------------------------------------------ r295512 | matze | 2017-02-17 15:15:03 -0800 (Fri, 17 Feb 2017) | 8 lines AArch64LoadStoreOptimizer: Correctly clear kill flags When promoting the Load of a Store-Load pair to a COPY all kill flags between the store and the load need to be cleared. rdar://30402435 Differential Revision: https://reviews.llvm.org/D30110 ------------------------------------------------------------------------ llvm-svn: 295744
-
Hans Wennborg authored
llvm-svn: 295743
-
Hans Wennborg authored
llvm-svn: 295742
-
- Feb 17, 2017
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r293124 | mkuper | 2017-01-25 17:04:11 -0800 (Wed, 25 Jan 2017) | 9 lines [LoopUnroll] Properly update loopinfo for runtime unrolling by 2 Even when we don't create a remainder loop (that is, when we unroll by 2), we may duplicate nested loops into the remainder. This is complicated by the fact the remainder may itself be either inserted into an outer loop, or at the top level. In the latter case, we may need to create new top-level loops. Differential Revision: https://reviews.llvm.org/D29156 ------------------------------------------------------------------------ llvm-svn: 295380
-
Hans Wennborg authored
------------------------------------------------------------------------ r295230 | arnolds | 2017-02-15 12:43:43 -0800 (Wed, 15 Feb 2017) | 11 lines AddressSanitizer: don't track swifterror memory addresses They are register promoted by ISel and so it makes no sense to treat them as memory. Inserting calls to the thread sanitizer would also generate invalid IR. You would hit: "swifterror value can only be loaded and stored from, or as a swifterror argument!" ------------------------------------------------------------------------ llvm-svn: 295377
-
Hans Wennborg authored
------------------------------------------------------------------------ r295215 | arnolds | 2017-02-15 10:57:06 -0800 (Wed, 15 Feb 2017) | 11 lines ThreadSanitizer: don't track swifterror memory addresses They are register promoted by ISel and so it makes no sense to treat them as memory. Inserting calls to the thread sanitizer would also generate invalid IR. You would hit: "swifterror value can only be loaded and stored from, or as a swifterror argument!" ------------------------------------------------------------------------ llvm-svn: 295376
-
Hans Wennborg authored
------------------------------------------------------------------------ r295224 | rsmith | 2017-02-15 11:57:10 -0800 (Wed, 15 Feb 2017) | 2 lines PR24440: Do not silently discard a fold-expression appearing as the operand of a cast-expression. ------------------------------------------------------------------------ llvm-svn: 295375
-
Hans Wennborg authored
------------------------------------------------------------------------ r295213 | mkuper | 2017-02-15 10:37:26 -0800 (Wed, 15 Feb 2017) | 10 lines [DAG] Don't try to create an INSERT_SUBVECTOR with an illegal source We currently can't legalize those, but we should really not be creating them in the first place, since legalization would probably look similar to the way we legalize CONCAT_VECTORS - basically replace the INSERT with a BUILD. This fixes PR311956. Differential Revision: https://reviews.llvm.org/D29961 ------------------------------------------------------------------------ llvm-svn: 295374
-
Kai Nacke authored
LDC, the LLVM-based D compiler, is already ready for LLVM 4.0. llvm-svn: 295367
-
Hans Wennborg authored
------------------------------------------------------------------------ r292271 | aaron | 2017-01-17 21:48:31 +0000 (Tue, 17 Jan 2017) | 2 lines Silence some Sphinx diagnostics in an attempt to get the documentation builder back to green (http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/1895). ------------------------------------------------------------------------ llvm-svn: 295344
-
Hans Wennborg authored
------------------------------------------------------------------------ r295313 | stulova | 2017-02-16 04:49:29 -0800 (Thu, 16 Feb 2017) | 9 lines [OpenCL][Doc] Added OpenCL vendor extension description to user manual doc Added description of a new feature that allows to specify vendor extension in flexible way using compiler pragma instead of modifying source code directly (committed in clang@r289979). Review: D29829 ------------------------------------------------------------------------ llvm-svn: 295340
-
- Feb 16, 2017
-
-
Anastasia Stulova authored
Review: D29830 llvm-svn: 295315
-
Hans Wennborg authored
------------------------------------------------------------------------ r294129 | gberry | 2017-02-05 10:28:14 -0800 (Sun, 05 Feb 2017) | 16 lines [SelectionDAG] In InstrEmitter, handle EXTRACT_SUBREG of a physical register. Summary: Without this change, the getVR() call would hit an assert since it was being passed a physical register. Update the AArch64/ldst-opt.ll test with a case that triggers this behavior by adding a run with strict-align, which causes an unaligned STR XZR instruction to be split into byte stores, creating an EXTRACT_SUBREG of XZR that triggers the original problem. Reviewers: bogner, qcolombet, MatzeB, atrick Subscribers: aemerson, mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D29495 ------------------------------------------------------------------------ llvm-svn: 295250
-