summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [AArch64][GlobalISel] Custom selection for s8 load acquire.Amara Emerson2019-08-142-1/+45
| | | | | | | | | Implement this single atomic load instruction so that we can compile stack protector code. Differential Revision: https://reviews.llvm.org/D66245 llvm-svn: 368923
* [Attributor] Use liveness during the creation of AAReturnedValuesJohannes Doerfert2019-08-143-235/+263
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: As one of the first attributes, and one of the complex ones, AAReturnedValues was not using liveness but we filtered the result after the fact. This change adds liveness usage during the creation. The algorithm is also improved and shorter. The new algorithm will collect returned values over time using the generic facilities that work with liveness already, e.g., genericValueTraversal which does not look at dead PHI node predecessors. A test to show how this leads to better results is included. Note: Unresolved calls and resolved calls are now tracked explicitly. Reviewers: uenoku, sstefan1 Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66120 llvm-svn: 368922
* [Attributor] Do not update or manifest dead attributesJohannes Doerfert2019-08-142-3/+29
| | | | | | | | | | | | | | | | Summary: If the associated context instruction is assumed dead we do not need to update or manifest the state. Reviewers: sstefan1, uenoku Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66116 llvm-svn: 368921
* Revert "[lldb] Reinstate original guard variable check"Raphael Isemann2019-08-141-5/+9
| | | | | | | | | | | It seems this breaks the following tests: lldb-Suite :: expression_command/call-function/TestCallUserDefinedFunction.py lldb-Suite :: expression_command/rdar42038760/TestScalarURem.py Let's revert this patch and wait until we find an actual issue that could be fixed by also doing the guard variable check on Windows. llvm-svn: 368920
* [Attributor] Use IRPosition consistentlyJohannes Doerfert2019-08-142-462/+788
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The next attempt to clean up the Attributor interface before we grow it further. Before, we used a combination of two values (associated + anchor) and an argument number (or -1) to determine a location. This was very fragile. The new system uses exclusively IR positions and we restrict the generation of IR positions to special constructor methods that verify internal constraints we have. This will catch misuse early. The auto-conversion, e.g., in getAAFor, is now performed through the SubsumingPositionIterator. This iterator takes an IR position and allows to visit all IR positions that "subsume" the given one, e.g., function attributes "subsume" argument attributes of that function. For a detailed breakdown see the class comment of SubsumingPositionIterator. This patch also introduces the IRPosition::getAttrs() to extract IR attributes at a certain position. The method knows how to look up in different positions that are equivalent, e.g., the argument position for call site arguments. We also introduce three new positions kinds such that we have all IR positions where attributes can be placed and one for "floating" values. Reviewers: sstefan1, uenoku Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65977 llvm-svn: 368919
* [Bugpoint redesign] Added Pass to Remove Global VariablesDiego Trevino Ferrer2019-08-147-1/+139
| | | | | | | | | | | | | | | Summary: This pass tries to remove Global Variables, as well as their derived uses. For example if a variable `@x` is used by `%call1` and `%call2`, both these uses and the definition of `@x` are deleted. Moreover if `%call1` or `%call2` are used elsewhere those uses are also deleted, and so on recursively. I'm still uncertain if this pass should remove derived uses, I'm open to suggestions. Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64176 llvm-svn: 368918
* [AMDGPU] Do not assume a default GCN targetStanislav Mekhanoshin2019-08-142-4/+3
| | | | | | Differential Revision: https://reviews.llvm.org/D66246 llvm-svn: 368917
* Fix thread comparison by making sure we never pass our special 'not a ↵Marshall Clow2019-08-142-4/+12
| | | | | | thread' value to the underlying implementation. Fixes PR#42918. llvm-svn: 368916
* [Bugpoint redesign] Reduced scope of variables in Delta implementationDiego Trevino Ferrer2019-08-141-5/+4
| | | | | | | | | | | | Summary: This diff also changed the check in `Delta.cpp` to verify interesting-ness, so it exits when the input isn't interesting Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66251 llvm-svn: 368915
* [libc++] Mark <chrono> test as unsupported on AppleClang 9Louis Dionne2019-08-141-0/+1
| | | | llvm-svn: 368914
* [x86] add tests for fadd reduction; NFCSanjay Patel2019-08-141-0/+132
| | | | | | More coverage for D66236. llvm-svn: 368913
* [clang-doc] Add missing check in testsDiego Astiazaran2019-08-143-2/+10
| | | | | | | | Path is now checked when comparing two Infos in the unit tests. Differential Revision: https://reviews.llvm.org/D66124 llvm-svn: 368912
* [libc++] Mark std::tuple CTAD test as failing on AppleClang 9Louis Dionne2019-08-141-0/+1
| | | | | | | | Like CTAD for std::unordered_set, AppleClang 9's support for CTAD is insufficient. I suspect the corresponding LLVM Clang is broken too, but we don't seem to have testers using that Clang. llvm-svn: 368911
* Use std::is_final directlyJF Bastien2019-08-142-12/+1
| | | | | | The workaround isn't needed anymore because all toolchains should support it. llvm-svn: 368910
* SwapByteOrder.h: don't check for unsupported GCC versionsJF Bastien2019-08-141-6/+4
| | | | llvm-svn: 368909
* MathExtras.h: don't check for unsupported GCC versionsJF Bastien2019-08-141-8/+8
| | | | llvm-svn: 368908
* Add support in CMake to statically link the C++ standard library.Erich Keane2019-08-143-0/+26
| | | | | | | | | | | | | | | It is sometimes useful to have the C++ standard library linked into the assembly when compiling clang, particularly when distributing a compiler onto systems that don't have a copy of stdlibc++ or libc++ installed. This functionality should work with either GCC or Clang as the host compiler, though statically linking libc++ (as may be required for licensing purposes) is only possible if the host compiler is Clang with a copy of libc++ available. Differential Revision: https://reviews.llvm.org/D65603 llvm-svn: 368907
* [SLP][NFC] Use pointers to address to ScalarToTreeEntry elements, instead of ↵Dinar Temirbulatov2019-08-141-4/+4
| | | | | | indexes. llvm-svn: 368906
* [SDAG] move variable closer to use; NFCSanjay Patel2019-08-141-1/+1
| | | | llvm-svn: 368905
* [lldb][NFC] Remove unused functionJordan Rupprecht2019-08-141-5/+0
| | | | llvm-svn: 368904
* [OPENMP]Support for non-rectangular loops.Alexey Bataev2019-08-149-100/+828
| | | | | | | | Added basic support for non-rectangular loops. It requires an additional analysis of min/max boundaries for non-rectangular loops. Since only linear dependency is allowed, we can do this analysis. llvm-svn: 368903
* Revert "Un-break the bots"JF Bastien2019-08-141-4/+1
| | | | | | Looks like the problem was due to the cmake cache, Chris fixed in r368897. llvm-svn: 368902
* AMDGPU: Reduce number of registers in testMatt Arsenault2019-08-141-5/+1
| | | | | | | Once the failure this is testing is fixed, this would fail due to using too many registers. llvm-svn: 368901
* [PowerPC][NFC] Remove duplicate tests in build-vector-test.llJinsong Ji2019-08-141-341/+221
| | | | | | AllOnes has been split into build-vector-allones.ll. llvm-svn: 368900
* [Support][NFC] Fix error message for posix_spawn_file_actions_addopen failed ↵Jan Korous2019-08-141-1/+1
| | | | | | | | call Seems like a copy-paste from couple lines above. llvm-svn: 368899
* [RLEV] Rewrite loop exit values for multiple exit loops w/o overall loop ↵Philip Reames2019-08-143-5/+188
| | | | | | | | | | | | exit count We already supported rewriting loop exit values for multiple exit loops, but if any of the loop exits were not computable, we gave up on all loop exit values. This patch generalizes the existing code to handle individual computable loop exits where possible. As discussed in the review, this is a starting point for figuring out a better API. The code is a bit ugly, but getting it in lets us test as we go. Differential Revision: https://reviews.llvm.org/D65544 llvm-svn: 368898
* [CMake] Fix cache invalidation of LLVM_CXX_STDChris Bieneman2019-08-141-1/+4
| | | | | | This cleans up fallout from https://reviews.llvm.org/D66195. llvm-svn: 368897
* Un-break the botsJF Bastien2019-08-141-1/+4
| | | | | | Some bots can't find is_final despite it being in C++14. Leave the code as it was for now, fix it later when the bots are happy. llvm-svn: 368896
* InferAddressSpaces: Move target intrinsic handling to TTIMatt Arsenault2019-08-147-23/+118
| | | | | | | | I'm planning on handling intrinsics that will benefit from checking the address space enums. Don't bother moving the address collection for now, since those won't need th enums. llvm-svn: 368895
* InferAddressSpaces: Remove unnecessary check for ConstantIntMatt Arsenault2019-08-141-2/+2
| | | | | | The IR is invalid if this isn't a constant since immarg was added. llvm-svn: 368893
* Match if / elseif properlyJF Bastien2019-08-141-1/+1
| | | | | | My last commit fumbled it. llvm-svn: 368892
* [DebugInfo] Consider debug label scope has an extra lexical block fileTaewook Oh2019-08-143-4/+9
| | | | | | | | | | | | | | Summary: There are places where a case that debug label scope has an extra lexical block file is not considered properly. The modified test won't pass without this patch. Reviewers: aprantl, HsiangKai Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66187 llvm-svn: 368891
* Remove now useless C++1y flagJF Bastien2019-08-141-2/+0
| | | | | | As of D66195 we support C++14 by default. llvm-svn: 368890
* Don't explicitly check for C++14JF Bastien2019-08-141-6/+0
| | | | | | MSVC is weird about __cplusplus. The check I added in D66195 confuses it. llvm-svn: 368889
* Fix cppcheck + MSVC analyzer uninitialized member variable warning. NFCI.Simon Pilgrim2019-08-141-1/+1
| | | | llvm-svn: 368888
* Move to C++14JF Bastien2019-08-144-98/+16
| | | | | | | | | | | | | | | Summary: I just bumped the minimum compiler versions to support C++14 in D66188. Following [our process](http://llvm.org/docs/DeveloperPolicy.html#toolchain) and [our previous agreement](http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html), I'm now officially bumping the C++ version to 14 and updating the documentation. Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, chandlerc, thakis, EricWF, jyknight, lhames, JDevlieghere Tags: #llvm Differential Revision: https://reviews.llvm.org/D66195 llvm-svn: 368887
* [InstCombine][NFC] Tests for 'try to reuse constant from select in comparison'Roman Lebedev2019-08-141-0/+298
| | | | | | https://rise4fun.com/Alive/THl llvm-svn: 368886
* This commit removes std::shared_ptr::make_shared and ↵Zoe Carver2019-08-141-260/+110
| | | | | | std::shared_ptr::allocate_shared as they are not part of the standard. This commit also adds the helper function "__create_with_cntrl_block" which std::allocate_shared and std::make_shared have been updated to use. llvm-svn: 368885
* [SLC] Dereferenceable annonation - handle valid null pointersDavid Bolvansky2019-08-143-5/+34
| | | | | | | | | | | | | | Reviewers: jdoerfert, reames Reviewed By: jdoerfert Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66161 llvm-svn: 368884
* [CFG] Introduce CFGElementRef, a wrapper that knows it's position in a CFGBlockKristof Umann2019-08-143-2/+310
| | | | | | | | | | | | | | | | Previously, collecting CFGElements in a set was practially impossible, because both CFGBlock::operator[] and both the iterators returned it by value. One workaround would be to collect the iterators instead, but they don't really capture the concept of an element, and elements from different iterator types are incomparable. This patch introduces CFGElementRef, a wrapper around a (CFGBlock, Index) pair, and a variety of new iterators and iterator ranges to solve this problem. I guess you could say that this patch took a couple iterations to get right :^) Differential Revision: https://reviews.llvm.org/D65196 llvm-svn: 368883
* [libc++] Enable <chrono> ""d and ""y literals for AppleClang 10 and upLouis Dionne2019-08-143-5/+6
| | | | | | AppleClang supports those literals starting in version 10.0.1. llvm-svn: 368882
* [NFC][clang] Moving argument handling: Driver::BuildActions -> handleArgumentsPuyan Lotfi2019-08-142-114/+127
| | | | | | | | | | This patch simply moves code that already exists into a new function. Specifically I think it will make the BuildActions code for building a clang job pipeline easier to read and work with. Differential Revision: https://reviews.llvm.org/D66058 llvm-svn: 368881
* [libc++] Do not define _LIBCPP_CLANG_VER for non-LLVM ClangLouis Dionne2019-08-141-6/+2
| | | | | | | | | | | | | In r292833, we started defining _LIBCPP_CLANG_VER to 0 for Apple Clang. The result is that AppleClang is detected as being a very old version of LLVM Clang (version 0), which is obviously incorrect. I believe this was added so that we don't have to check whether _LIBCPP_CLANG_VER is defined prior to comparing it with a number (which can trigger a warning). This commit also fixes the two places that use the macro correspondingly. llvm-svn: 368880
* [DebugLine] Improve path handling.Jonas Devlieghere2019-08-142-14/+31
| | | | | | | | | | | | | | | | | After switching over LLDB's line table parser to libDebugInfo, we noticed two regressions on the Windows bot. The problem is that when obtaining a file from the line table prologue, we append paths without specifying a path style. This leads to incorrect results on Windows for debug info containing Posix paths: 0x0000000000201000: /tmp\b.c, is_start_of_statement = TRUE This patch is an attempt to fix that by guessing the path style whenever possible. Differential revision: https://reviews.llvm.org/D66227 llvm-svn: 368879
* [Sema][ObjC] Fix a -Wformat false positive with localizedStringForKeyErik Pilkington2019-08-146-16/+127
| | | | | | | | | | | | Only honour format_arg attributes on -[NSBundle localizedStringForKey] when its argument has a format specifier in it, otherwise its likely to just be a key to fetch localized strings. Fixes rdar://23622446 Differential revision: https://reviews.llvm.org/D27165 llvm-svn: 368878
* Fix cppcheck + MSVC analyzer uninitialized member variable warning. NFCI.Simon Pilgrim2019-08-141-1/+1
| | | | llvm-svn: 368877
* [NFC] Updated tests after r368875David Bolvansky2019-08-141-7/+7
| | | | llvm-svn: 368876
* [BuildLibCalls] Noalias annotationDavid Bolvansky2019-08-1421-136/+71
| | | | | | | | | | | | | | | | Summary: I think this is better solution than annotating callsites in IC/SLC. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: MaskRay, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66217 llvm-svn: 368875
* Document clang-cpp in the release notes for clangChris Bieneman2019-08-141-1/+9
| | | | | | This patch adds a line in the release notes about the new clang-cpp library and the CMake option to force clang to link against it. llvm-svn: 368874
* Ignore indirect branches from callbr.Bill Wendling2019-08-142-2/+48
| | | | | | | | | | | | | | | | | | Summary: We can't speculate around indirect branches: indirectbr and invoke. The callbr instruction needs to be included here. Reviewers: nickdesaulniers, manojgupta, chandlerc Reviewed By: chandlerc Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66200 llvm-svn: 368873
OpenPOWER on IntegriCloud