summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* SubtargetFeature: Cleanup; NFCMatthias Braun2017-02-212-104/+65
| | | | | | | | | - Fix doxygen comments - Remove duplicated comments - Remove section comments (which became wrong over time) - Use more `const` and references but less `auto` llvm-svn: 295687
* Factor out function to determine whether we're performing a templateRichard Smith2017-02-2114-48/+55
| | | | | | | | | instantiation. In preparation for converting the template stack to a more general context stack (so we can include context notes for other kinds of context). llvm-svn: 295686
* Add a wrapper around copy_if in STLExtras; NFCSanjoy Das2017-02-216-46/+48
| | | | | | I will add one more use for this in a later change. llvm-svn: 295685
* [BranchFolding] Update debug location along with the update of branch ↵Taewook Oh2017-02-212-3/+86
| | | | | | | | | | | | | | | | | | | | | | | instruction. Summary: Currently, BranchFolder drops DebugLoc for branch instructions in some places. For example, for the test code attached, the branch instruction of 'entry' block has a DILocation of ``` !12 = !DILocation(line: 6, column: 3, scope: !11) ``` , but this information is gone when then block is lowered because BranchFolder misses it. This patch is a fix for this issue. Reviewers: qcolombet, aprantl, craig.topper, MatzeB Reviewed By: aprantl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29902 llvm-svn: 295684
* Sema: use PropertyDecl for property selectorSaleem Abdulrasool2017-02-202-8/+23
| | | | | | | | | | | Using the constructed name for the class properties with dot syntax may yield an inappropriate selector (i.e. if it is specified via property attributes). Prefer the declaration for the selector, falling back to the constructed name otherwise. Patch by David Herzka! llvm-svn: 295683
* [X86] Add additonal check lines to one of the rotate tests.Craig Topper2017-02-201-1/+3
| | | | llvm-svn: 295682
* [X86] FileCheckize one of the rotate tests.Craig Topper2017-02-201-2/+4
| | | | llvm-svn: 295681
* [IndVars] Add an assertSanjoy Das2017-02-201-0/+3
| | | | | | | We've already checked that the loop is in simplify form before, but a little paranoia never hurt anyone. llvm-svn: 295680
* [IR/Verifier] List the CU we weren't able to find in `llvm.dbg.cu`.Davide Italiano2017-02-203-6/+5
| | | | llvm-svn: 295678
* MemorySSA: Add support for renaming uses in the updater.Daniel Berlin2017-02-205-31/+102
| | | | | | | | | | | | | | Summary: This lets one add aliasing stores to the updater. (i'm next going to move the creation/etc functions to the updater) Reviewers: george.burgess.iv Subscribers: llvm-commits, Prazek Differential Revision: https://reviews.llvm.org/D30154 llvm-svn: 295677
* [X86] FileCheckize one of the rotate tests.Craig Topper2017-02-201-7/+23
| | | | llvm-svn: 295676
* Fix use-after-free found by ASANSteven Wu2017-02-201-1/+1
| | | | | | | DenseMap::lookup returns copy of the value in the map. Returning the address of the temporary return value will cause use-after-free. llvm-svn: 295675
* [Sema][ObjC] perform-selector ARC check should see @selector in parensAlex Lorenz2017-02-202-1/+3
| | | | llvm-svn: 295674
* [AVX-512] Add a few more patterns for selecting masked vpternlog with ↵Craig Topper2017-02-202-0/+88
| | | | | | broadcast loads where the passthru operand is not operand 0. llvm-svn: 295673
* [Cmake] Bump required cmake version to 3.4.3.Michael Kruse2017-02-201-1/+1
| | | | | | | | This is currently the minimum required version by LLVM. Since LLVM is needed to build Polly, we also require at least that version. Suggested-by: Philip Pfaffe <philip.pfaffe@gmail.com> llvm-svn: 295672
* [Cmake] Install the isl headers into the install tree.Michael Kruse2017-02-201-0/+14
| | | | | | | | | | | | | | | | | | | | isl headers are currently missing in a Polly installation. Because the Polly headers depend on those, code can't be compiled against an installed Polly. This patch installs the isl headers. I left a TODO, as optionally it should be possible to use a system version of isl instead of the one shipped with Polly. When compiling, clients of the installation need to add -I${PREFIX}/include/polly/ to there include path right now, because there currently is no way to export this path automatically. Contributed-by: Philip Pfaffe <philip.pfaffe@gmail.com> Differential Revision: https://reviews.llvm.org/D29931 llvm-svn: 295671
* [X86] Tidyup combineExtractVectorElt. NFCI.Simon Pilgrim2017-02-201-8/+9
| | | | | | | | Pull out repeated code for extraction index operand and source vector value type. Use isNullConstant helper to check for zero extraction index. llvm-svn: 295670
* [X86][SSE] Regenerate extracted bitcasted constant tests and add 32-bit test ↵Simon Pilgrim2017-02-201-6/+31
| | | | | | target llvm-svn: 295669
* [globalisel] OperandPredicateMatcher's shouldn't need to generate the ↵Daniel Sanders2017-02-202-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | MachineOperand expr. NFC Summary: Each OperandPredicateMatcher shouldn't need to know how to generate the expression to reference a MachineOperand. The OperandMatcher should provide it. In addition to separating responsibilities, this also lays some groundwork for decoupling source patterns from destination patterns to allow invented operands or operands provided by GlobalISel's equivalent to the ComplexPattern<> class. Depends on D29709 Reviewers: t.p.northover, ab, rovka, qcolombet, aditya_nandakumar Reviewed By: ab Subscribers: dberris, kristof.beyls, llvm-commits, igorb Differential Revision: https://reviews.llvm.org/D29710 llvm-svn: 295668
* Revert "[tsan] Provide external tags (object types) via debugging API"Diana Picus2017-02-203-75/+0
| | | | | | This reverts commit r295318 as the test is flaky on AArch64. llvm-svn: 295667
* [X86][SSE] Regenerate re-materialized store tests and add 64-bit test targetSimon Pilgrim2017-02-201-11/+57
| | | | llvm-svn: 295666
* [X86][SSE] Regenerate vselect widening tests and add 32-bit test targetSimon Pilgrim2017-02-201-18/+91
| | | | llvm-svn: 295665
* Revert "[PGO] Suspend SIGKILL for PR_SET_PDEATHSIG in profile-write"Renato Golin2017-02-204-76/+0
| | | | | | | | Revert "[PGO] remove unintended debug trace. NFC" This reverts commit r295469, r295364, as they are unstable on ARM/AArch64. llvm-svn: 295664
* clang-format: [JS] Improve line-wrapping behavior of template strings.Daniel Jasper2017-02-204-41/+42
| | | | | | | | Specifically, similar to other blocks, clang-format now wraps both after "${" and before the corresponding "}", if the contained expression spans multiple lines. llvm-svn: 295663
* [ARM] GlobalISel: Don't select atomic loadsDiana Picus2017-02-201-0/+6
| | | | | | | | | | | | | | | There used to be a check in the IRTranslator that prevented us from having to deal with atomic loads/stores. That check has been removed in r294993 and the AArch64 backend was updated accordingly. This commit does the same thing for the ARM backend. In general, in the ARM backend we introduce fences during the atomic expand pass, so we don't have to worry about atomics, *except* for the 32-bit ARMv8 target, which handles atomics more like AArch64. Since we don't want to worry about that yet, just bail out of instruction selection if we find any atomic loads. llvm-svn: 295662
* [globalisel] Separate the SelectionDAG importer from the emitter. NFCDaniel Sanders2017-02-201-5/+11
| | | | | | | | | | | | | | | | Summary: In the near future the rules will be sorted between these two steps to ensure that more important rules are not prevented by less important ones. Reviewers: t.p.northover, ab, rovka, qcolombet, aditya_nandakumar Reviewed By: ab Subscribers: dberris, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D29709 llvm-svn: 295661
* [X86] Fix EXTRACT_VECTOR_ELT with variable index from v32i16 and v64i8 vector.Igor Breger2017-02-208-228/+512
| | | | | | | | | | | | Its more profitable to go through memory (1 cycles throughput) than using VMOVD + VPERMV/PSHUFB sequence ( 2/3 cycles throughput) to implement EXTRACT_VECTOR_ELT with variable index. IACA tool was used to get performace estimation (https://software.intel.com/en-us/articles/intel-architecture-code-analyzer) For example for var_shuffle_v16i8_v16i8_xxxxxxxxxxxxxxxx_i8 test from vector-shuffle-variable-128.ll I get 26 cycles vs 79 cycles. Removing the VINSERT node, we don't need it any more. Differential Revision: https://reviews.llvm.org/D29690 llvm-svn: 295660
* clang-format: Prevent weird line-wraps in complex lambda introducersDaniel Jasper2017-02-202-4/+16
| | | | | | | | | | | | | | | | | | | Before: aaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( [aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]() -> ::std:: unordered_set<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa> { // }); After: aaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa( [aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]() -> ::std::unordered_set< aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa> { // }); llvm-svn: 295659
OpenPOWER on IntegriCloud