summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Teach lit to expand glob expressions.Zachary Turner2017-03-035-9/+86
| | | | | | | | | | | This will enable removing hacks throughout the codebase in clang and compiler-rt that feed multiple inputs to a testing utility by globbing, all of which are either disabled on Windows currently or using xargs / find hacks. Differential Revision: https://reviews.llvm.org/D30380 llvm-svn: 296904
* Fix a compiler warningSanjoy Das2017-03-031-1/+2
| | | | llvm-svn: 296903
* Add missing #includes for FreeBSD.Zachary Turner2017-03-031-4/+9
| | | | llvm-svn: 296902
* Make TargetInstrInfo::isPredicable take a const reference, NFCKrzysztof Parzyszek2017-03-0313-17/+17
| | | | llvm-svn: 296901
* [sancov] better input parameters validationMike Aizatsky2017-03-033-5/+20
| | | | | | Differential Revision: https://reviews.llvm.org/D30370 llvm-svn: 296900
* Try again to appease the FreeBSD bot.Zachary Turner2017-03-031-7/+2
| | | | | | | The actual logic was wrong, not just the type conversion. This should get it correct. llvm-svn: 296899
* [LoopUnrolling] Peel loops with invariant backedge Phi inputSanjoy Das2017-03-032-0/+50
| | | | | | | | | | | | | | | | | | | | | Summary: If a loop contains a Phi node which has an invariant input from back edge, it is profitable to peel such loops (rather than unroll them) to use the advantage that this Phi is always invariant starting from 2nd iteration. After the 1st iteration is peeled, other optimizations can potentially simplify calculations with this invariant. Patch by Max Kazantsev! Reviewers: sanjoy, apilipenko, igor-laevsky, anna, mkuper, reames Reviewed By: mkuper Subscribers: mkuper, mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D30161 llvm-svn: 296898
* [LoopUnrolling] Re-prioritize Peeling and Partial unrollingSanjoy Das2017-03-033-11/+18
| | | | | | | | | | | | | | | | | | | | | | | Summary: In current implementation the loop peeling happens after trip-count based partial unrolling and may sometimes not happen at all due to it (for example, if trip count is known, but UP.Partial = false). This is generally bad, the more than there are some situations where peeling is profitable even if the partial unrolling is disabled. This patch is a NFC which reorders peeling and partial unrolling application and prepares the code for implementation of the said optimizations. Patch by Max Kazantsev! Reviewers: sanjoy, anna, reames, apilipenko, igor-laevsky, mkuper Reviewed By: mkuper Subscribers: mkuper, llvm-commits, mzolotukhin Differential Revision: https://reviews.llvm.org/D30243 llvm-svn: 296897
* Reland 4: [analyzer] NFC: Update test infrastructure to support multiple ↵Dominic Chen2017-03-03408-753/+638
| | | | | | | | | | | | | | constraint managers Summary: Replace calls to %clang/%clang_cc1 with %clang_analyze_cc1 when invoking static analyzer, and perform runtime substitution to select the appropriate constraint manager, per D28952. Reviewers: xazax.hun, NoQ, zaks.anna, dcoughlin Subscribers: mgorny, rgov, mikhail.ramalho, a.sidorin, cfe-commits Differential Revision: https://reviews.llvm.org/D30373 llvm-svn: 296895
* [x86] clean up materializeSBB(); NFCISanjay Patel2017-03-031-20/+14
| | | | | | This is producing SBB where it is obviously not necessary, so it needs to be limited. llvm-svn: 296894
* Try to appease the FreeBSD bots.Zachary Turner2017-03-031-2/+2
| | | | | | | | pthread_self() returns a pthread_t, but we were setting it to an int. It seems the cast to int when calling sysctl is still the correct thing to do, though. llvm-svn: 296892
* Don't bring in llvm/Support/thread.h in Threading.cppZachary Turner2017-03-031-2/+8
| | | | | | | | | | | | Doing so defines the type llvm::thread. On FreeBSD, we need to call a macro which references its own ::thread type, which causes an ambiguity due to ADL when inside of the llvm namespace. Since we don't even need this unless LLVM_ENABLE_THREADS == 1, we don't even need this type anyway, as it is always equal to std::thread, so we can just use that directly. llvm-svn: 296891
* Add #include for unistd.h on Linux.Zachary Turner2017-03-031-0/+1
| | | | llvm-svn: 296890
* Fix libc++ test to pass in C++03 modeMehdi Amini2017-03-032-2/+2
| | | | | | Was hitting: "error: scalar initializer cannot be empty" llvm-svn: 296889
* [clang-tidy] Yet another docs fixesPiotr Padlewski2017-03-031-6/+7
| | | | llvm-svn: 296888
* [Support] Provide access to current thread name/thread id.Zachary Turner2017-03-034-101/+353
| | | | | | | | | | | | | | | | Applications often need the current thread id when making system calls, and some operating systems provide the notion of a thread name, which can be useful in enabling better diagnostics when debugging or logging. This patch adds an accessor for the thread id, and "best effort" getters and setters for the thread name. Since this is non critical functionality, no error is returned to indicate that a platform doesn't support thread names. Differential Revision: https://reviews.llvm.org/D30526 llvm-svn: 296887
* Use APInt::setBits instead of OR'ing in a separate APInt::getBitsSet callSimon Pilgrim2017-03-031-1/+1
| | | | llvm-svn: 296886
* Android.rules: fix building on macPavel Labath2017-03-031-1/+0
| | | | | | | realpath is not available as an executable on mac. I give up, I am just going to leave the path with ..'s in it. llvm-svn: 296885
* [Analyzer] Terminate analysis on OpenMP code instead of assertion crashAleksei Sidorin2017-03-032-31/+39
| | | | | | | | | | | | | | * ExprEngine assumes that OpenMP statements should never appear in CFG. However, current CFG doesn't know anything about OpenMP and passes such statements as CFG nodes causing "UNREACHABLE executed!" crashes. Since there is no OpenMP implementation in ExprEngine or CFG, we stop the analysis on OpenMP statements to avoid crashes. This fixes PR31835. Differential Revision: https://reviews.llvm.org/D30565 llvm-svn: 296884
* [x86] regenerate checks; NFCSanjay Patel2017-03-031-32/+24
| | | | llvm-svn: 296883
* Use APInt::getLowBitsSet instead of APInt::getBitsSet for lower bit mask ↵Simon Pilgrim2017-03-031-1/+1
| | | | | | creation llvm-svn: 296882
* [x86] regenerate checks; NFCSanjay Patel2017-03-031-19/+57
| | | | llvm-svn: 296881
* [x86] regenerate checks; NFCSanjay Patel2017-03-031-377/+817
| | | | llvm-svn: 296880
* Use APInt::getOneBitSet instead of APInt::getBitsSet for sign bit mask creationSimon Pilgrim2017-03-031-1/+1
| | | | | | Avoids all the unnecessary extra bitrange creation/shift stages. llvm-svn: 296879
* [compiler-rt][asan] Turn on ASAN unittests for win64.Etienne Bergeron2017-03-031-11/+0
| | | | | | | | | | | | | | | | Summary: Asan is now working on windows 64-bit. This patch is turning on the unittest. Reviewers: rnk Reviewed By: rnk Subscribers: kubamracek, dberris, beanz, mgorny, llvm-commits, chrisha Differential Revision: https://reviews.llvm.org/D24742 llvm-svn: 296878
* [x86] regenerate checks; NFCSanjay Patel2017-03-031-11/+17
| | | | llvm-svn: 296877
* Android.rules: fix building on windowsPavel Labath2017-03-031-1/+1
| | | | | | | | $(realpath), which I guess is a make builtin, gives strange results on Windows. $(shell realpath) invokes the gnuwin external binary, which works correctly. llvm-svn: 296876
* [x86] fix formatting; NFCSanjay Patel2017-03-031-3/+2
| | | | llvm-svn: 296875
* Use APInt::getHighBitsSet instead of APInt::getBitsSet for upper bit mask ↵Simon Pilgrim2017-03-031-1/+1
| | | | | | creation llvm-svn: 296874
* [AMDGPU][MC] Fix for Bug 30829 + LIT testsDmitry Preobrazhensky2017-03-039-0/+460
| | | | | | | | Added code to check constant bus restrictions for VOP formats (only one SGPR value or literal-constant may be used by the instruction). Note that the same checks are performed by SIInstrInfo::verifyInstruction (used by lowering code). Added LIT tests. llvm-svn: 296873
* Revert "Re-apply "[GVNHoist] Move GVNHoist to function simplification part ↵Benjamin Kramer2017-03-032-40/+2
| | | | | | | | of pipeline."" This reverts commit r296759. Miscompiles bash. llvm-svn: 296872
* Use APInt::getOneBitSet instead of APInt::getBitsSet for sign bit mask creationSimon Pilgrim2017-03-031-1/+1
| | | | | | Avoids all the unnecessary extra bitrange creation/shift stages. llvm-svn: 296871
* test: shorten test trace file namesPavel Labath2017-03-031-2/+5
| | | | | | | | | | | | | Make sure we don't generate extremely long file names for test trace log file, as this can cause path-too-long errors. As the compilers in the android ndk are deeply nested, it's very easy to trigger these. I chose to output at most 4 path components -- this should keep the full path for common cases like /usr/bin/gcc with room to spare, and should be enough to uniquely identify the compiler for more deeply nested cases. llvm-svn: 296870
* testsuite/android: build test executables with the android ndk directlyPavel Labath2017-03-032-7/+53
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This teaches the test makefiles about the Android NDK, so we are able to run the tests without first going through the make_standalone_toolchain script. The motivation for this is the ability to run both libc++ and libstdc++ tests together, which previously was not possible because make_standalone_toolchain bakes in the STL to use during toolchain creation time. The support for this is not present yet -- this change only make sure we don't regress for existing funcionality (gcc w/ libstdc++). Clang and libc++ support will be added later. I've checked that the mips android targets compile after this change, but I have no way of checking whether this breaks anything. If you are reading this and it broke you, let me know. Reviewers: tberghammer, danalbert Subscribers: srhines, lldb-commits Differential Revision: https://reviews.llvm.org/D30410 llvm-svn: 296869
* Made GetClangTargetCPU() const.Pavel Labath2017-03-032-2/+2
| | | | | | | | | | | | | | | | | | Summary: It does not change members or call non-const members. HostInfo::GetArchitecture() returns a const object ref (maybe others?), which can't access the non-const function. Reviewers: labath, eugene Reviewed By: labath, eugene Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D30515 Author: Jason Majors <jmajors@google.com> llvm-svn: 296868
* [clang-tidy] Fix modernize-use-emplace docsPiotr Padlewski2017-03-031-1/+1
| | | | llvm-svn: 296867
* Fix Wdocumentation warningSimon Pilgrim2017-03-031-3/+3
| | | | llvm-svn: 296866
* [ARM] fpscr read/write intrinsics not aware of each otherRanjeet Singh2017-03-032-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The intrinsics __builtin_arm_get_fpscr and __builtin_arm_set_fpscr read and write to the fpscr (Floating-Point Status and Control Register) register. A bug exists in the __builtin_arm_get_fpscr intrinsic definition in llvm which treats this intrinsic as a IntroNoMem which means it's not a memory access and doesn't have any other side-effects. Having this property on this intrinsic means that various optimizations can be done on this such as common sub-expression elimination with other reads. This can cause issues if there has been write to this register, e.g. void foo(int *p) { p[0] = __builtin_arm_get_fpscr(); __builtin_arm_set_fpscr(1); p[1] = __builtin_arm_get_fpscr(); } in the above example the second read is currently CSE'd into the first read, this is because llvm isn't aware that the write done by __builtin_arm_set_fpscr effects the same register that __builtin_arm_get_fpscr reads from, to fix this problem I've removed the property IntrNoMem so that __builtin_arm_get_fpscr is treated as a memory access. Differential Revision: https://reviews.llvm.org/D30542 llvm-svn: 296865
* [clang-tidy] Format code around applied fixesAlexander Kornienko2017-03-036-15/+85
| | | | | | | | | | | | | | | | Summary: Add -format option (disabled by default for now) to trigger formatting of replacements. Reviewers: ioeric Reviewed By: ioeric Subscribers: kimgr, malcolm.parsons, JDevlieghere, cfe-commits Differential Revision: https://reviews.llvm.org/D30564 llvm-svn: 296864
* [SLP] Fixes the bug due to absence of in order uses of scalars which needs ↵Mohammad Shahid2017-03-035-83/+152
| | | | | | | | | | | | | | | | to be available for VectorizeTree() API.This API uses it for proper mask computation to be used in shufflevector IR. The fix is to compute the mask for out of order memory accesses while building the vectorizable tree instead of actual vectorization of vectorizable tree.It also needs to recompute the proper Lane for external use of vectorizable scalars based on shuffle mask. Reviewers: mkuper Differential Revision: https://reviews.llvm.org/D30159 Change-Id: Ide8773ce0ad3562f3cf4d1a0ad0f487e2f60ce5d llvm-svn: 296863
* [SDAG] Revert r296476 (and r296486, r296668, r296690).Chandler Carruth2017-03-0376-2338/+2532
| | | | | | | | | | This patch causes compile times for some patterns to explode. I have a (large, unreduced) test case that slows down by more than 20x and several test cases slow down by 2x. I'm sending some of the test cases directly to Nirav and following up with more details in the review log, but this should unblock anyone else hitting this. llvm-svn: 296862
* [PowerPC] Enable -fomit-frame-pointer by default for PPCNemanja Ivanovic2017-03-032-0/+10
| | | | | | | | | | | | As is the case on platforms like Mips, X86 and SystemZ, the -fomit-frame-pointer should be enabled by default on PPC when optimizing at -O1 and above. This brings the behaviour of LLVM on PPC in line with GCC. Committing on behalf of Hiroshi Inoue. Differential Revision: https://reviews.llvm.org/D29750 llvm-svn: 296861
* Fix a typo in the comments. Patch by marktwtn from ↵Sylvestre Ledru2017-03-031-1/+1
| | | | | | https://github.com/llvm-mirror/llvm/pull/16/files llvm-svn: 296860
* [X86] Generate VZEROUPPER for Skylake-avx512.Amjad Aboud2017-03-0354-633/+1639
| | | | | | | | VZEROUPPER should not be issued on Knights Landing (KNL), but on Skylake-avx512 it should be. Differential Revision: https://reviews.llvm.org/D29874 llvm-svn: 296859
* [clang-tidy] google-readability-casting: don't use constructor call syntax ↵Alexander Kornienko2017-03-033-3/+12
| | | | | | for const types llvm-svn: 296858
* [AArch64AsmParser] rewrite of function parseSysAliasSjoerd Meijer2017-03-032-212/+62
| | | | | | | | | | | | This is a cleanup/rewrite of the parseSysAlias function. It was not using the tablegen instruction descriptions, but was “manually” matching the mnemonics and recreating the operands whereas all this information is already in tablegen; all this code has been replaced with calls to lookupXYZByName tablegen calls. Differential Revision: https://reviews.llvm.org/D30491 llvm-svn: 296857
* [GlobalISel][X86] Support float/double and vector types.Igor Breger2017-03-0313-156/+992
| | | | | | | | | | | | | | Summary: [GlobalISel][X86] Add support for f32/f64 and vector types in RegisterBank and InstructionSelector. Reviewers: delena, zvi Reviewed By: zvi Subscribers: dberris, rovka, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D30533 llvm-svn: 296856
* Remove some dead code in FileSpec.Zachary Turner2017-03-0312-38/+14
| | | | | | | | This in turn triggered some fallout where other files had been transitively picking up includes that they needed from FileSpec.h, so I've fixed those up as well. llvm-svn: 296855
* Clean up more usages of _LIBCPP_HAS_NO_RVALUE_REFERENCESEric Fiselier2017-03-0315-58/+25
| | | | llvm-svn: 296854
* [tests] Specify the dependence to NVPTX backend for Polly ACC test casesTobias Grosser2017-03-0313-12/+16
| | | | | | | | | | | | | Some Polly ACC test cases fail without a working NVPTX backend. We explicitly specify this dependence in REQUIRES. Alternatively, we could have only marked polly-acc as supported in case the NVPTX backend is available, but as we might use other backends in the future, this does not seem to be the best choice. For this to work, we also need to make the 'targets_to_build' information available. Suggested-by: Michael Kruse <llvm@meinersbur.de> llvm-svn: 296853
OpenPOWER on IntegriCloud