summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Revert r279953 - Fix pair::operator=(TupleLike&&)Eric Fiselier2016-08-292-136/+1
| | | | | | | The test emits warnings causing the test-suite to fail. Since I want this patch merged into 3.9 I'll recommit it with a clean test. llvm-svn: 279954
* Fix pair::operator=(TupleLike&&).Eric Fiselier2016-08-292-1/+136
| | | | | | | | This assignment operator was previously broken since the SFINAE always resulted in substitution failure. This caused assignments to turn into copy construction + assignment. llvm-svn: 279953
* [Orc] Simplify LogicalDylib and move it back inside CompileOnDemandLayer. AlsoLang Hames2016-08-296-324/+158
| | | | | | | | | | | | | | | | | | | | switch to using one indirect stub manager per logical dylib rather than one per input module. LogicalDylib is a helper class used by the CompileOnDemandLayer to manage symbol resolution between modules during lazy compilation. In particular, it ensures that internal symbols resolve correctly even in the case where multiple input modules contain the same internal symbol name (which must to be promoted to external hidden linkage so that functions in any given module can be split out by lazy compilation). LogicalDylib's resolution scheme (before this commit) required one stub-manager per input module. This made recompilation of functions (by adding a module containing a new definition) difficult, as the stub manager for any given symbol was bound to the module that supplied the original definition. By using one stubs manager for the whole logical dylib symbols can be more easily replaced, although support for doing this is not included in this patch (it will be implemented in a follow up). llvm-svn: 279952
* [AVX-512] Add support for selecting 512-bit VPABSB/VPABSW when BWI is available.Craig Topper2016-08-283-10/+21
| | | | llvm-svn: 279951
* [AVX-512] Add patterns for selecting 128/256-bit EVEX VPABS instructions.Craig Topper2016-08-282-2/+37
| | | | llvm-svn: 279950
* [AVX-512] Add testcases showing that we don't emit 512-bit vpabsb/vpabsw. ↵Craig Topper2016-08-281-5/+155
| | | | | | Will be fixed in a future commit. llvm-svn: 279949
* Implement C++17 std::sample.Eric Fiselier2016-08-287-62/+333
| | | | | | | | This patch implements the std::sample function added to C++17 from LFTS. It also removes the std::experimental::sample implementation which now forwards to std::sample. llvm-svn: 279948
* Mark LWG 2716 as complete - shuffle and sample disallows lvalue URNGs.Eric Fiselier2016-08-286-13/+19
| | | | | | | | | | | Libc++'s implementation of shuffle and sample already support lvalue and rvalue RNG's. This patch adds tests for both categories and marks the issue as complete. This patch also contains drive-by change for std::experimental::sample which improves the diagnostics produced when the correct iterator categories are not supplied. llvm-svn: 279947
* AST: improve layout of SimpleTypoCorrectorSaleem Abdulrasool2016-08-281-6/+5
| | | | | | | | | Add the "explicit" specifier to the single-argument constructor of SimpleTypoCorrector. Reorder the fields to remove excessive padding (8 bytes). Patch by Alexander Shaposhnikov! llvm-svn: 279946
* Implement LWG 2711. Constrain path members.Eric Fiselier2016-08-287-12/+211
| | | | llvm-svn: 279945
* Fix some typos in the docSylvestre Ledru2016-08-283-5/+5
| | | | llvm-svn: 279944
* Fix some typos in the docSylvestre Ledru2016-08-287-7/+7
| | | | llvm-svn: 279943
* Fix a typo in the doc: overriden -> overriddenSylvestre Ledru2016-08-282-2/+2
| | | | llvm-svn: 279942
* EHABI: fail on WMMX vops without WMMX supportSaleem Abdulrasool2016-08-281-4/+10
| | | | | | | | | When the unwinder is built without WMMX support, if we encounter a WMMX register virtual operation, early rather than attempting to continue as we would not have saved the register set anyways. This should never come down this path, but, just in case, help it abort more explicitly. llvm-svn: 279941
* [Docs] Update libc++ target names after r279675.Eric Fiselier2016-08-282-3/+3
| | | | llvm-svn: 279940
* [x86] add tests for <3 x N> vector types (PR29114)Sanjay Patel2016-08-281-0/+40
| | | | llvm-svn: 279939
* [CMake] Be more consistent about naming targets and components in libc++abiEric Fiselier2016-08-283-6/+12
| | | | | | | | | | | | | | | | | | This patch (and commit summary) mirror r279675 by Chris B which was applied to libc++ but not libc++abi. Summary: The point of this patch is to have a consistent convention for naming build, check and install targets so that the targets can be constructed from the project name. This change renames a bunch of CMake components and targets from libcxxabi to cxxabi. For each renamed target I've added a convenience target that matches the old target name and depends on the new target. This will preserve function of the old targets so that the change doesn't break the world. We can evaluate if it is worth removing the extra targets later. llvm-svn: 279938
* [InstCombine] use m_APInt to allow icmp (and X, Y), C folds for splat ↵Sanjay Patel2016-08-285-50/+42
| | | | | | constant vectors llvm-svn: 279937
* [CMake] Apply r279151 cleanup to libc++abi.Eric Fiselier2016-08-284-10/+13
| | | | | | | | | | | | This patch applies changes similar to those in r279515 to libc++abi. Summary of changes in this patch: * Renamed variable LLVM_CONFIG -> LLVM_CONFIG_PATH * Renamed variable LIBCXXABI_BUILT_STANDALONE -> LIBCXXABI_STANDALONE_BUILD * Add an include of AddLLVM in the tests subdirectory for add_lit_testsuite. llvm-svn: 279936
* test: fix test under ASAN and MSANSaleem Abdulrasool2016-08-281-0/+4
| | | | | | | | | | | | When we're running tests under ASAN or MSAN, they're compiled with -O1, which enables tail call elimination. This causes backtrace_test to fail: the compiler performs tail call elimination for call3_nothrow, but it can't for call3_throw, leading to a mismatched frame count. Disable tail call elimination (and inlining, just to be explicit) to avoid this. Patch by Shoaib Meenai! llvm-svn: 279935
* [X86][AVX512] Only combine EVEX targets shuffles to shuffles of the same ↵Simon Pilgrim2016-08-282-8/+20
| | | | | | | | | | number of vector elements Over eager combing prevents the correct folding of writemasks. At the moment this occurs for ALL EVEX shuffles, in the future we need to check that the user of the root shuffle is a VSELECT that can fold to a writemask. llvm-svn: 279934
* [PowerPC] Implement lowering for atomicrmw min/max/umin/umaxHal Finkel2016-08-285-5/+587
| | | | | | Implement lowering for atomicrmw min/max/umin/umax. Fixes PR28818. llvm-svn: 279933
* Revert "Start reifying error descriptions. Second try: Try to appease Visual ↵Filipe Cabecinhas2016-08-284-126/+12
| | | | | | | | | Studio." This reverts r279931. Will try it with the same Visual Studio version before committing again. llvm-svn: 279932
* Start reifying error descriptions. Second try: Try to appease Visual Studio.Filipe Cabecinhas2016-08-284-12/+126
| | | | | | | | | | | | | | | | | | | | | | Summary: This commit sets up the infrastructure to use reified error descriptions, and moves ReportStackOverflow to the new system. After we convert all the errors, we'll be able to simplify ScopedInErrorReport and remove the older debugging mechanism which had some errors partly reified in some way. We'll be able to maintain the external API. ScopedInErrorReport will be able to track one of the reified errors at a time. The purpose of this is so we have its destructor actually print the error and possibly interface with the debugger (will depend on the platform, of course). Reviewers: kcc, samsonov, timurrrr Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D23672 llvm-svn: 279931
* [Loop Vectorizer] Fixed memory confilict checks.Elena Demikhovsky2016-08-288-30/+109
| | | | | | | | | Fixed a bug in run-time checks for possible memory conflicts inside loop. The bug is in Low <-> High boundaries calculation. The High boundary should be calculated as "last memory access pointer + element size". Differential revision: https://reviews.llvm.org/D23176 llvm-svn: 279930
* [AVX-512] Promote AND/OR/XOR to v2i64/v4i64/v8i64 even when we have ↵Craig Topper2016-08-288-56/+177
| | | | | | | | | | AVX512F/AVX512VL. Previously we weren't creating masked logical operations if bitcasts appeared between the logic operation and the select. The IR optimizers can move bitcasts across logic operations and create these cases. To minimize the number of cases we need to handle, this change promotes all logic ops to an i64 vector type just like when only SSE or AVX is available. Unfortunately, this also has the consequence of making it difficult to select unmasked VPANDD/VPORD/VPXORD in all the cases it was previously used. This is the cause of most of the test change. This shouldn't result in any functional change though. llvm-svn: 279929
* [AVX-512] Add tests to show that we don't select masked logic ops if there ↵Craig Topper2016-08-281-0/+51
| | | | | | | | are bitcasts between the logic op and the select. This is taken from optimized IR of clang test cases for masked logic ops. llvm-svn: 279928
* [X86] Rename PABSB/D/W instructions to be consistent with SSE/AVX ↵Craig Topper2016-08-282-40/+40
| | | | | | instructions instead of ending 128/256. NFC llvm-svn: 279927
* Avoid embedded preprocessor directives in __treeDimitry Andric2016-08-271-5/+8
| | | | | | | | | | Similar to rL242623, move C++ version checks outside of _NOEXCEPT_() macro invocation argument lists, to avoid "embedding a directive within macro arguments has undefined behavior" warnings. Differential Revision: https://reviews.llvm.org/D23961 llvm-svn: 279926
* AMDGPU/R600: Enable Load combineJan Vesely2016-08-277-135/+1952
| | | | | | | | Fix and improve tests Differential Revision: https://reviews.llvm.org/D23899 llvm-svn: 279925
* [X86] Rename predicate function that detects if requires one of the REX.B, ↵Craig Topper2016-08-271-15/+16
| | | | | | REX.X or REX.R bits. It's old name conflicted with a function in X8II namespace that doesnt' quite do the same thing. NFC llvm-svn: 279924
* [X86] Keep looping over operands looking for byte registers even if we ↵Craig Topper2016-08-271-5/+4
| | | | | | already found a register that requires a REX prefix. Otherwise we don't error if a high byte register is used after SPL/BPL/DIL/SIL. llvm-svn: 279923
* [X86] Include XMM/YMM/ZMM16-23 in X86II::isX86_64ExtendedReg. This feels ↵Craig Topper2016-08-272-8/+4
| | | | | | more consistent with its name and simplifies assembler code. llvm-svn: 279922
* [X86] Don't allow DR8-DR15 to be assembled in 32-bit mode. Add missing test ↵Craig Topper2016-08-272-0/+8
| | | | | | for CR8-CR15. llvm-svn: 279921
* Fix some build bot breakages.Zachary Turner2016-08-272-6/+6
| | | | | | | There was some code that was ifdef'ed out that I didn't catch in my earlier patch. llvm-svn: 279920
* Add some unit tests for StringExtractor::GetNameColonValue.Zachary Turner2016-08-271-0/+53
| | | | | | | | These are helpful on their own, but will be even more useful once the GetNameColonValue is updated to return StringRefs instead of std::strings. llvm-svn: 279919
* [asan] Disable tests more selectively.Akira Hatanaka2016-08-273-2/+3
| | | | | | | Add "target-arch+host-os" to the feature list to enable disabling the tests I committed in r279614 and r279880 more selectively. llvm-svn: 279918
* Convert some functions to use StringRef instead of c_str, lenZachary Turner2016-08-278-65/+62
| | | | | | | | | | | | | | | | | | | | | This started as an effort to change StringExtractor to store a StringRef internally instead of a std::string. I got that working locally with just 1 test failure which I was unable to figure out the cause of. But it was also a massive changelist due to a trickle down effect of changes. So I'm starting over, using what I learned from the first time to tackle smaller, more isolated changes hopefully leading up to a full conversion by the end. At first the changes (such as in this CL) will seem mostly a matter of preference and pointless otherwise. However, there are some places in my larger CL where using StringRef turned 20+ lines of code into 2, drastically simplifying logic. Hopefully once these go in they will illustrate some of the benefits of thinking in terms of StringRef. llvm-svn: 279917
* [asan] Use "REQUIRES: x86_64-target-arch" to disable the test on i386.Akira Hatanaka2016-08-271-1/+1
| | | | | | | My attempt to disable this test on i386 by adding "UNSUPPORTED: i386-apple" in r279880 wasn't succesful, so I'm using REQUIRES instead. llvm-svn: 279916
* [X86] Remove stale comment about FixupBWInsts pass being off by default. NFCCraig Topper2016-08-271-2/+0
| | | | llvm-svn: 279915
* [AVX-512] Allow EVEX encoding unordered/ordered/equal/notequal ↵Craig Topper2016-08-272-8/+28
| | | | | | VCMPPS/PD/SS/SD to be commuted just like the SSE and AVX counterparts. llvm-svn: 279914
* [X86] Enable FR32/FR64 cmpeq/cmpne/cmpunord/cmpord to be commuted.Craig Topper2016-08-273-4/+13
| | | | llvm-svn: 279913
* [AVX-512] Add load folding for EVEX vcmpps/pd/ss/sd.Craig Topper2016-08-273-0/+62
| | | | llvm-svn: 279912
* [LTO] Don't create a new common unless merged has different sizeTeresa Johnson2016-08-273-7/+8
| | | | | | | | | | | | | | | | | Summary: This addresses a regression in common handling from the new LTO API in r278338. Only create a new common if the size is different. The type comparison against an array type fails when the size is different but not an array. GlobalMerge does not handle the array types as well and we lose some global merging opportunities. Reviewers: mehdi_amini Subscribers: junbuml, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D23955 llvm-svn: 279911
* AMDGPU: Mark sched model completeMatt Arsenault2016-08-271-1/+1
| | | | | | Fixes bug 26800 llvm-svn: 279910
* AMDGPU: Remove unneeded implicit exec uses/defsMatt Arsenault2016-08-272-40/+48
| | | | | | | SI_BREAK, SI_IF_BREAK, and SI_ELSE_BREAK do not def exec. SI_IF_BREAK and SI_ELSE_BREAK do not read it either. llvm-svn: 279909
* [Orc] Explicitly specify type for assignment.Lang Hames2016-08-271-3/+3
| | | | | | | This should fix the MSVC errors in http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/15120 llvm-svn: 279908
* GVN-hoist: invalidate MD cache (PR29144)Sebastian Pop2016-08-271-0/+2
| | | | | | | | | Without invalidating the entries in the MD cache we would try to access instructions that were removed in previous iterations of hoisting. Differential Revision: https://reviews.llvm.org/D23927 llvm-svn: 279907
* [RegBankSelect] Do not abort when the target wants to fall back.Quentin Colombet2016-08-272-20/+59
| | | | llvm-svn: 279906
* [InstructionSelect] Do not abort when the target wants to fall back.Quentin Colombet2016-08-272-7/+30
| | | | llvm-svn: 279905
OpenPOWER on IntegriCloud