summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [RT ARM] Avoid Linux include with a redefinitionRenato Golin2017-02-211-4/+9
| | | | | | | | | To avoid depending on kernel headers, we just repeat the single define we need, which is likely never going to change. Patch by Joakim Sindholt <opensource@zhasha.com> llvm-svn: 295738
* Do not leak OpenedHandles.Vassil Vassilev2017-02-212-7/+4
| | | | | | Reviewed by Vedant Kumar (D30178) llvm-svn: 295737
* [X86][AVX512] Update VPBROADCASTQ test to combine from VPERMQ instead of ↵Simon Pilgrim2017-02-211-7/+6
| | | | | | | | VPERMI2Q. VPERMI2Q doesn't have shuffle decoding from re-materializable constants. llvm-svn: 295736
* [X86][AVX] Rename shuffle combine tests to show combined shuffle type. NFCI.Simon Pilgrim2017-02-212-9/+9
| | | | llvm-svn: 295735
* [ARM] Correct SP/PC handling in t2MOVrJohn Brawn2017-02-211-0/+100
| | | | | | Add a missing test that I forgot to svn add in my previous commit llvm-svn: 295734
* [X86][AVX2] Fix VPBROADCASTQ folding on 32-bit targets.Simon Pilgrim2017-02-213-4/+18
| | | | | | As i64 isn't a value type on 32-bit targets, we need to fold the VZEXT_LOAD into VPBROADCASTQ. llvm-svn: 295733
* [ARM] Correct SP/PC handling in t2MOVrJohn Brawn2017-02-212-4/+20
| | | | | | | | | | PC isn't allowed in the source operand of t2MOVr, so change the register class to one without PC. SP handling is slightly trickier and changes depending on if we're in ARMv8, so do that in checkTargetMatchPredicate. Differential Revision: https://reviews.llvm.org/D30199 llvm-svn: 295732
* [X86][AVX2] Add AVX512 test targets to AVX2 shuffle combines.Simon Pilgrim2017-02-211-24/+50
| | | | llvm-svn: 295731
* [compiler-rt][asan] Add support for desallocation of unhandled pointersEtienne Bergeron2017-02-217-8/+63
| | | | | | | | | | | | | | Summary: On windows 10, the ucrt DLL is performing allocations before the function hooking and there are multiple allocations not handled by Asan. When a free occur at the end of the process, asan is reporting desallocations not malloc-ed. Reviewers: rnk, kcc Reviewed By: rnk, kcc Subscribers: kcc, llvm-commits, kubamracek, chrisha, dberris Differential Revision: https://reviews.llvm.org/D25946 llvm-svn: 295730
* [X86][AVX] Add tests showing missed VPBROADCASTQ folding on 32-bit targets.Simon Pilgrim2017-02-212-0/+54
| | | | | | | | As i64 isn't a value type on 32-bit targets, we fail to fold the VZEXT_LOAD into VPBROADCASTQ. Also shows that we're not decoding VPERMIV3 shuffles very well.... llvm-svn: 295729
* [mips] Define macros related to -mabicalls in the preprocessorSimon Dardis2017-02-212-2/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Historically, NetBSD, FreeBSD and OpenBSD have defined the macro ABICALLS in the preprocessor when -mabicalls is in effect. Mainline GCC later defined __mips_abicalls when -mabicalls is in effect. This patch teaches the preprocessor to define these macros when appropriate. NetBSD does not require the ABICALLS macro. This resolves PR/31694. Thanks to Sean Bruno for highlighting this issue! Reviewers: slthakur, seanbruno Reviewed By: seanbruno Subscribers: joerg, brad, emaste, seanbruno, cfe-commits Differential Revision: https://reviews.llvm.org/D29032 llvm-svn: 295728
* [ELF] - Do not segfault when using --gc-sections with linker scriptGeorge Rimar2017-02-212-0/+21
| | | | | | | | | | | Patch fixes PR32024. Sections that were not marked as Live has null output section. Previously we tried to access that field and segfaulted. Differential revision: https://reviews.llvm.org/D30188 llvm-svn: 295727
* [DependenceInfo] Simplify creation and subsequent use of AccessSchedule [NFC]Tobias Grosser2017-02-211-31/+22
| | | | | | | | | | | | | | We only ever use the wrapped domain of AccessSchedule, so stop creating an entire union_map and then pulling the domain out. Reviewers: grosser Tags: #polly Contributed-by: Siddharth Bhat <siddu.druid@gmail.com> Differential Revision: https://reviews.llvm.org/D30179 llvm-svn: 295726
* Add a test for the feature introduced in r295240.Ed Schouten2017-02-211-0/+32
| | | | | | | | | | | r295240 tweaked LLD to generate a symbol table when passing in --export-dynamic, even when creating static executables. Add a test to make sure this never regresses. Reviewed by: ruiu, rafael Differential Revision: https://reviews.llvm.org/D30175 llvm-svn: 295725
* [ELF] - Shortify at-addr.s testcase.George Rimar2017-02-211-79/+16
| | | | llvm-svn: 295724
* [X86][SSE] Prefer to combine shuffles to VZEXT over VZEXT_MOVL.Simon Pilgrim2017-02-212-29/+14
| | | | | | This matches what is already done during shuffle lowering and helps prevent the need for a zero-vector in cases where shuffles match both patterns. llvm-svn: 295723
* [ELF] - Postpone evaluation of LMA offset.George Rimar2017-02-213-3/+107
| | | | | | | | | | | | | | | | | | Previously we evaluated the values of LMA incorrectly for next cases: .text : AT(ADDR(.text) - 0xffffffff80000000) { ... } .data : AT(ADDR(.data) - 0xffffffff80000000) { ... } .init.begin : AT(ADDR(.init.begin) - 0xffffffff80000000) { ... } Reason was that we evaluated offset when VA was not assigned. For case above we ended up with 3 loads that has similar LMA and it was incorrect. That is critical for linux kernel. Patch updates the offset after VA calculation. That fixes the issue. Differential revision: https://reviews.llvm.org/D30163 llvm-svn: 295722
* [X86][SSE] Added SSE41 shuffle combining test file.Simon Pilgrim2017-02-211-0/+38
| | | | | | Currently just contains one case where we combine to VZEXT_MOVL instead of VZEXT which would avoid the need for a zero vector to be generated llvm-svn: 295721
* [ELF] - Improve diagnostic messages for move location counter errors.George Rimar2017-02-215-14/+22
| | | | | | | | | | Previously LLD would error out just "ld.lld: error: unable to move location counter backward" What does not really reveal the place of issue, Patch adds location to the output. Differential revision: https://reviews.llvm.org/D30187 llvm-svn: 295720
* [InstCombine] Do not exercise nested max/min pattern on absAnna Thomas2017-02-212-1/+25
| | | | | | | | | | | | | | | | | | | Summary: This is a fix for assertion failure in `getInverseMinMaxSelectPattern` when ABS is passed in as a select pattern. We should not be invoking the simplification rule for ABS(MIN(~ x,y))) or ABS(MAX(~x,y)) combinations. Added a test case which would cause an assertion failure without the patch. Reviewers: sanjoy, majnemer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30051 llvm-svn: 295719
* [AVX512] Fix EXTRACT_VECTOR_ELT for v2i1/v4i1/v32i1/v64i1 with variable index.Igor Breger2017-02-213-3/+266
| | | | | | Differential Revision: https://reviews.llvm.org/D30189 llvm-svn: 295718
* [SLP] Tests for shuffle/blending operations.Alexey Bataev2017-02-211-0/+167
| | | | llvm-svn: 295717
* [ARM] GlobalISel: Lower calls to void() functionsDiana Picus2017-02-213-0/+62
| | | | | | | For now, we hardcode a BLX instruction, and generate an ADJCALLSTACKDOWN/UP pair with amount 0. llvm-svn: 295716
* [clang-tidy] Reword the "code outside header guard" warning.Benjamin Kramer2017-02-212-65/+95
| | | | | | | | | | | | The check doesn't really know if the code it is warning about came before or after the header guard, so phrase it more neutral instead of complaining about code before the header guard. The location for the warning is still not optimal, but I don't think fixing that is worth the effort, the preprocessor doesn't give us a better location. Differential Revision: https://reviews.llvm.org/D30191 llvm-svn: 295715
* [clang-format] Remove unused member variables from BreakableTokenKrasimir Georgiev2017-02-212-20/+6
| | | | llvm-svn: 295714
* [DeLICM] Map values hoisted by LICM back to the array.Michael Kruse2017-02-212-5/+1379
| | | | | | | | | | | | | | | | | | | | Implement the -polly-delicm pass. The pass intends to undo the effects of LoopInvariantCodeMotion (LICM) which adds additional scalar dependencies into SCoPs. DeLICM will try to map those scalars back to the array elements they were promoted from, as long as the array element is unused. The is the main patch from the DeLICM/DePRE patch series. It does not yet undo GVN PRE for which additional information about known values is needed and does not handle PHI write accesses that have have no target. As such its usefulness is limited. Patches for these issues including regression tests for error situatons will follow. Reviewers: grosser Differential Revision: https://reviews.llvm.org/D24716 llvm-svn: 295713
* Log: Fix race in accessing the stream variablePavel Labath2017-02-213-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The code was attempting to copy the shared pointer member in order to guarantee atomicity, but this is not enough. Instead, protect the pointer with a proper read-write mutex. This bug was present here for a long time, but my recent refactors must have altered the timings slightly, such that now this fails fairly often when running the tests: the test runner runs the "log disable" command just as the thread monitoring the lldb-server child is about to report that the server has exited. I add a test case for this. It's not possible to reproduce the race deterministically in normal circumstances, but I have verified that before the fix, the test failed when run under tsan, and was running fine afterwards. Reviewers: clayborg, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D30168 llvm-svn: 295712
* tablegen: Fix android buildPavel Labath2017-02-211-1/+2
| | | | | | use llvm::to_string instead of std:: version. llvm-svn: 295711
* Fix lookup through injected-class-names in implicit deduction guides in theRichard Smith2017-02-212-8/+27
| | | | | | | | | | case where the class template has a parameter pack. Checking of the template arguments expects an "as-written" template argument list, which in particular does not have any parameter packs. So flatten the packs into separate arguments before passing them in. llvm-svn: 295710
* [X86] Remove ssse3 intrinsic tests from the avx intrinsics test file.Craig Topper2017-02-212-220/+33
| | | | | | They are all covered by the SSSE3 intrinsics test with SSSE3, AVX, and AVX512 command lines. llvm-svn: 295708
* [X86] Remove sse4.2 intrinsic tests from the avx intrinsics test file. Fix ↵Craig Topper2017-02-215-402/+69
| | | | | | | | | | some other consistency issues. They are all covered by the SSE4.2 intrinsics test with SSE4.2, AVX, and AVX512 command lines. Merge sse42.ll into the other intrinsics test. Rename sse42_64.ll to be named like other intrinsic tests. llvm-svn: 295707
* [X86] Remove sse4.1 intrinsic tests from the avx intrinsics test file.Craig Topper2017-02-211-343/+4
| | | | | | They are all covered by the SSE4.1 intrinsics test with SSE4.1, AVX, and AVX512 command lines. llvm-svn: 295706
* [X86] Remove sse3 intrinsic tests from the avx intrinsics test file.Craig Topper2017-02-212-113/+35
| | | | | | They are all covered by the SSE3 intrinsics test with SSE2, AVX, and AVX512 command lines. llvm-svn: 295705
* The patch introduces new way of narrowing complex (>UINT16 variants) solutions.Evgeny Stupachenko2017-02-213-3/+161
| | | | | | | | | | | | | | | | | | | The new method introduced under "-lsr-exp-narrow" option (currenlty set to true). Summary: The method is based on registers number mathematical expectation and should be generally closer to optimal solution. Please see details in comments to "LSRInstance::NarrowSearchSpaceByDeletingCostlyFormulas()" function (in lib/Transforms/Scalar/LoopStrengthReduce.cpp). Reviewers: qcolombet Differential Revision: http://reviews.llvm.org/D29862 From: Evgeny Stupachenko <evstupac@gmail.com> llvm-svn: 295704
* [ELF] - Make ASSERT() return Dot instead of evaluated value.George Rimar2017-02-213-7/+5
| | | | | | | | | | | | | | | | | | | | Previously ASSERT we implemented returned expression value. Ex: . = ASSERT(0x100); would set Dot value to 0x100 Form of assert when it is assigned to Dot was implemented for compatibility with very old GNU ld which required it. Some scripts in the wild, including linux kernel scripts use such ASSERTs at the end for doing different checks. Currently we fail with "unable to move location counter backward" for such scripts. Patch changes ASSERT to return location counter value to fix that. Differential revision: https://reviews.llvm.org/D30171 llvm-svn: 295703
* [X86] Remove aes intrinsic tests from the avx intrinsics test file.Craig Topper2017-02-211-71/+4
| | | | | | They are all covered by the AES intrinsics test with a legacy command line and an AVX command line. llvm-svn: 295702
* [X86] Add an AVX command line and regenerate AES intrinsics test using the ↵Craig Topper2017-02-211-7/+57
| | | | | | update_llc_test_checks.py llvm-svn: 295701
* [X86] Remove sse2 intrinsic tests from the avx intrinsics test file.Craig Topper2017-02-215-1223/+113
| | | | | | | | They are all covered by the SSE2 intrinsics test with SSE2, AVX, and AVX512 command lines. Also remove an unneeded lfence intrinsic test since it was already covered. llvm-svn: 295700
* [X86] Remove sse1 intrinsic tests from the avx intrinsics test file.Craig Topper2017-02-215-549/+98
| | | | | | | | They are all covered by the SSE intrinsics test with SSE, AVX, and AVX512 command lines. Also remove an unneeded sfence intrinsic test since it was already covered. llvm-svn: 295699
* When deducing an array bound from the length of an initializer list, don'tRichard Smith2017-02-213-9/+56
| | | | | | assume the bound has a non-dependent integral type. llvm-svn: 295698
* [X86] Use SHLD with both inputs from the same register to implement rotate ↵Craig Topper2017-02-217-1/+44
| | | | | | | | | | | | | | | | | | | on Sandy Bridge and later Intel CPUs Summary: Sandy Bridge and later CPUs have better throughput using a SHLD to implement rotate versus the normal rotate instructions. Additionally it saves one uop and avoids a partial flag update dependency. This patch implements this change on any Sandy Bridge or later processor without BMI2 instructions. With BMI2 we will use RORX as we currently do. Reviewers: zvi Reviewed By: zvi Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30181 llvm-svn: 295697
* PR32010: Fix template argument depth mixup when forming implicit constructorRichard Smith2017-02-217-41/+113
| | | | | | | | | | | | | template deduction guides for class template argument deduction. Ensure that we have a local instantiation scope for tracking the instantiated parameters. Additionally, unusually, we're substituting at depth 1 and leaving depth 0 alone; make sure that we don't reduce template parameter depth by 2 for inner parameters in the process. (This is probably also broken for alias templates in the case where they're expanded within a dependent context, but this patch doesn't fix that.) llvm-svn: 295696
* [X86] Fix formatting. NFCCraig Topper2017-02-211-1/+1
| | | | llvm-svn: 295695
* Fix spelling mistake.Jason Molenda2017-02-211-1/+1
| | | | llvm-svn: 295694
* [AVX-512] Use sse_load_f32/f64 in place of scalar_to_vector and scalar load ↵Craig Topper2017-02-212-23/+22
| | | | | | in some patterns. llvm-svn: 295693
* [AVX-512] Add test cases showing failure to fold zero extending scalar loads ↵Craig Topper2017-02-211-0/+77
| | | | | | in scalar intrinsics without the peephole pass. llvm-svn: 295692
* [AVX-512] Fix the ExeDomain for vcmpss/vcmpsd.Craig Topper2017-02-211-0/+2
| | | | llvm-svn: 295691
* [ValueTracking] clang-format a section I'm about to touch; NFCSanjoy Das2017-02-211-64/+64
| | | | | | (Whitespace only change) llvm-svn: 295690
* Add template parameter depth and index to -ast-dump output.Richard Smith2017-02-213-5/+8
| | | | llvm-svn: 295689
* ScheduleDAG: Cleanup; NFCMatthias Braun2017-02-212-393/+322
| | | | | | | | | - Fix doxygen comments (do not repeat documented name, remove definition comment if there is already one at the declaration, add \p, ...) - Add some const modifiers - Use range based for llvm-svn: 295688
OpenPOWER on IntegriCloud