summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [PowerPC Peephole] Constants into a join add, use ADDI over LI/ADD.Tony Jiang2017-09-192-0/+176
| | | | | | | | | | Two blocks prior to the join each perform an li and the the join block has an add using the initialized register. Optimize each predecessor block to instead use addi and delete the li's and add. Differential Revision: https://reviews.llvm.org/D36734 llvm-svn: 313639
* [AArch64] Extend tests of loads and stores of register pairsEvandro Menezes2017-09-192-2/+45
| | | | | | Include instances of FP register pairs. llvm-svn: 313638
* Use ThreadLauncher to launch TaskPool threadsFrancis Ricci2017-09-199-10/+21
| | | | | | | | | | | | | | | | | | Summary: This allows for the stack size to be configured, which isn't possible with std::thread. Prevents overflowing the stack when performing complex operations in the task pool on darwin, where the default pthread stack size is only 512kb. This also moves TaskPool from Utility to Host. Reviewers: labath, tberghammer, clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D37930 llvm-svn: 313637
* [Power9] Add missing Power9 instructions.Tony Jiang2017-09-197-442/+120
| | | | | | | The following 8 instructions are implemented in this patch. addpcis(subpcis, lnia), darn, maddhd, maddhdu, maddld, setb llvm-svn: 313636
* dwarfdump: Delay parsing abbreviations until they're neededDavid Blaikie2017-09-194-16/+40
| | | | | | | | | | | This speeds up dumping specific DIEs by not parsing abbreviations for units that are not used. (this is also handy to have in eventually to speed up llvm-symbolizer for .dwp files, where parsing most of the DWP file can be avoided by using the index) llvm-svn: 313635
* Revert r313600 due to bot failures on Green Dragon.Mike Edwards2017-09-191-0/+2
| | | | | | http://green.lab.llvm.org/green/job/clang-stage1-configure-RA_check/35585/ llvm-svn: 313634
* [globalisel] Add a G_BSWAP instruction and support bswap using it.Daniel Sanders2017-09-195-1/+74
| | | | llvm-svn: 313633
* [X86][SSE] Add 'redundant pand' test case from PR34620Simon Pilgrim2017-09-191-0/+19
| | | | llvm-svn: 313632
* [x86] regenerate checks; NFCSanjay Patel2017-09-191-13/+76
| | | | llvm-svn: 313631
* [SLP] Reduce test, NFC.Alexey Bataev2017-09-191-134/+56
| | | | llvm-svn: 313630
* [globalisel] Add support for intrinsic_voidDaniel Sanders2017-09-192-0/+31
| | | | llvm-svn: 313629
* [Sema] Disallow assigning record lvalues with nested const-qualified fields.Bjorn Pettersson2017-09-197-16/+141
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: According to C99 6.3.2.1p1, structs and unions with nested const-qualified fields (that is, const-qualified fields declared at some recursive level of the aggregate) are not modifiable lvalues. However, Clang permits assignments of these lvalues. With this patch, we both prohibit the assignment of records with const-qualified fields and emit a best-effort diagnostic. This fixes https://bugs.llvm.org/show_bug.cgi?id=31796 . Committing on behalf of bevinh (Bevin Hansson). Reviewers: rtrieu, rsmith, bjope Reviewed By: bjope Subscribers: Ka-Ka, rogfer01, bjope, fhahn, cfe-commits Differential Revision: https://reviews.llvm.org/D37254 llvm-svn: 313628
* [globalisel] Add support for intrinsic_w_chain.Daniel Sanders2017-09-193-3/+33
| | | | | | This maps directly to G_INTRINSIC_W_SIDE_EFFECTS. llvm-svn: 313627
* [Nios2] Subtarget, basic infrastructure for frame, instructions and registersNikolai Bozhenov2017-09-1915-20/+545
| | | | | | | | | | | | | | This is the second minimal patch keeping Nios2 target buildable. I'm adding subtarget here and other stuff for frame lowering, instruction, register information methods. I do not add any test cases, as still there are missing parts like DAG selector and assembly printing. I plan to include them into the next patch. Patch by Andrei Grischenko <andrei.l.grischenko@intel.com> Differential Revision: https://reviews.llvm.org/D37256 llvm-svn: 313626
* [x86] Lowering Mask Set1 intrinsics to LLVM IRJina Nahias2017-09-1915-345/+2282
| | | | | | | | This patch, together with a matching clang patch (https://reviews.llvm.org/D37668), implements the lowering of X86 mask set1 intrinsics to IR. Differential Revision: https://reviews.llvm.org/D37669 llvm-svn: 313625
* Lowering Mask Set1 intrinsics to LLVM IRJina Nahias2017-09-1910-172/+655
| | | | | | | | This patch, together with a matching llvm patch (https://reviews.llvm.org/D37669), implements the lowering of X86 mask set1 intrinsics to IR. Differential Revision: https://reviews.llvm.org/D37668 llvm-svn: 313624
* [GPUJIT] Improved temporary file handling.Philipp Schaad2017-09-191-8/+7
| | | | | | | | | | | | | | Summary: Imporved the way the GPUJIT handles temporary files for Intel's Beignet. Reviewers: bollu, grosser Reviewed By: grosser Subscribers: philip.pfaffe, pollydev Differential Revision: https://reviews.llvm.org/D37691 llvm-svn: 313623
* Fix formatting of lambda introducers with initializers.Manuel Klimek2017-09-193-54/+18
| | | | | | | | | | | | | | | | | | | | | Most of the work was already done when we introduced a look-behind based lambda introducer detection. This patch finishes the transition by completely relying on the simple lambda introducer detection and simply recursing into normal brace-parsing code to parse until the end of the introducer. This fixes initializers in lambdas, including nested lambdas. Before: auto a = [b = [c = 42]{}]{}; auto b = [c = &i + 23]{}; After: auto a = [b = [c = 42] {}] {}; auto b = [c = &i + 23] {}; llvm-svn: 313622
* [ELF] - Do not merge sections from SHT_GROUP when -relocatableGeorge Rimar2017-09-192-6/+43
| | | | | | | | | | | | | | | | | | | This is PR34506. Imagine we have 2 sections the same name but different COMDAT groups: .section .foo,"axG",@progbits,bar,comdat .section .foo,"axG",@progbits,zed,comdat When linking relocatable we do not merge SHT_GROUP sections. But still would merge both input sections .foo into single output section .foo. As a result we will have 2 different SHT_GROUPs containing the same section, what is wrong. Patch fixes the issue, preventing merging SHF_GROUP sections with any others. Differential revision: https://reviews.llvm.org/D37574 llvm-svn: 313621
* [ELF] - Don't crash when --emit-relocs is used with --gc-sectionsGeorge Rimar2017-09-192-1/+35
| | | | | | | | | We crashed when --emit-relocs was used and relocated section was collected by GC. Differential revision: https://reviews.llvm.org/D37561 llvm-svn: 313620
* [ELF] - Introduce std::vector<InputFile *> global arrays.George Rimar2017-09-1911-68/+45
| | | | | | | | | | | | This patch removes lot of static Instances arrays from different input file classes and introduces global arrays for access instead. Similar to arrays we have for InputSections/OutputSectionCommands. It allows to iterate over input files in a non-templated code. Differential revision: https://reviews.llvm.org/D35987 llvm-svn: 313619
* [ARM] Use ADDCARRY / SUBCARRYRoger Ferrer Ibanez2017-09-195-35/+320
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is a preparatory step for D34515. This change: - makes nodes ISD::ADDCARRY and ISD::SUBCARRY legal for i32 - lowering is done by first converting the boolean value into the carry flag using (_, C) ← (ARMISD::ADDC R, -1) and converted back to an integer value using (R, _) ← (ARMISD::ADDE 0, 0, C). An ARMISD::ADDE between the two operations does the actual addition. - for subtraction, given that ISD::SUBCARRY second result is actually a borrow, we need to invert the value of the second operand and result before and after using ARMISD::SUBE. We need to invert the carry result of ARMISD::SUBE to preserve the semantics. - given that the generic combiner may lower ISD::ADDCARRY and ISD::SUBCARRYinto ISD::UADDO and ISD::USUBO we need to update their lowering as well otherwise i64 operations now would require branches. This implies updating the corresponding test for unsigned. - add new combiner to remove the redundant conversions from/to carry flags to/from boolean values (ARMISD::ADDC (ARMISD::ADDE 0, 0, C), -1) → C - fixes PR34045 - fixes PR34564 Differential Revision: https://reviews.llvm.org/D35192 llvm-svn: 313618
* Test commit.Andrei Elovikov2017-09-191-1/+0
| | | | llvm-svn: 313617
* AMDGPU: Run internalize symbols at -O0Matt Arsenault2017-09-192-36/+69
| | | | | | | | The relocations used for externally visible functions aren't supported, so the direct call emitted ends up hitting a linker error. llvm-svn: 313616
* [ubsan-minimal] Test exported symbol set against RTUBsanVedant Kumar2017-09-191-0/+16
| | | | | | | | | | | Check that the symbol sets exported by the minimal runtime and the full runtime match (making exceptions for special cases as needed). This test uses some possibly non-standard nm options, and needs to inspect the symbols in runtime dylibs. I haven't found a portable way to do this, so it's limited to x86-64/Darwin for now. llvm-svn: 313615
* [ubsan-minimal] Make the interface more compatible with RTUBSanVedant Kumar2017-09-192-6/+27
| | | | | | | | | | | | | | This eliminates a few inconsistencies between the symbol sets exported by RTUBSan and RTUBSan_minimal: * Handlers for nonnull_return were missing from the minimal RT, and are now added in. * The minimal runtime exported recoverable handlers for builtin_unreachable and missing_return. These are not supposed to exist, and are now removed. llvm-svn: 313614
* [X86][Skylake] Adding the scheduling information for the SkylakeClient targetGadi Haber2017-09-1917-853/+5047
| | | | | | | | | | | | | | This patch adds the instruction scheduling information for the SkylakeClient (SKL) architecture target by adding the file X86SchedSkylakeClient.td located under the X86 Target. We used the scheduling information retrieved from the Skylake architects in order to create the file. The scheduling information includes latency, number of micro-Ops and used ports by each SKL instruction. The patch continues the scheduling replacement and insertion effort started with the SNB target in r307529 and r310792 and for HSW in r311879. Please expect some performance fluctuations due to code alignment effects. Reviewers: craig.topper, zvi, chandlerc, igorb, aymanmus, RKSimon, delena Differential Revision: https://reviews.llvm.org/D37294 llvm-svn: 313613
* [X86] Remove some unnecessary patterns for truncate with X86ISD::SELECT and ↵Craig Topper2017-09-191-6/+0
| | | | | | | | undef preserved source. We canonicalize undef preserved sources to zero during intrinsic lowering. llvm-svn: 313612
* [LLVM] [RegionInfo] Introduce getExitingBlocks to get all predecessors of ↵Hongbin Zheng2017-09-192-0/+28
| | | | | | | | | | Exit in the current region. This function will return true if all predecessors of Exit are in the current region, false otherwise. Differential Revision: https://reviews.llvm.org/D36210 llvm-svn: 313611
* [X86] Add VPERMPD/VPERMQ and VPERMPS/VPERMD to the execution domain fixing ↵Craig Topper2017-09-1930-549/+571
| | | | | | table. llvm-svn: 313610
* docs: Fix formatting in HowToReleaseLLVMTom Stellard2017-09-191-8/+8
| | | | | | This is a follow up to r313608. llvm-svn: 313609
* docs: Add instructions for how to submit a merge requestTom Stellard2017-09-191-0/+22
| | | | | | | | | | | | Reviewers: hansw, hans Reviewed By: hans Subscribers: hans, llvm-commits Differential Revision: https://reviews.llvm.org/D37936 llvm-svn: 313608
* Revert "Fix llvm-lit script generation in libcxx."Zachary Turner2017-09-194-20/+6
| | | | | | | | | | | | This reverts commit 4ad71811d45268d81b60f27e3b8b2bcbc23bd7b9. There is a bot that is checking out libcxx and lit with nothing else and then running lit.py against the test tree. Since there's no LLVM source tree, there's no LLVM CMake. CMake actually reports this as a warning saying unsupported libcxx configuration, but I guess someone is depending on it anyway. llvm-svn: 313607
* Fix llvm-lit script generation in libcxx.Zachary Turner2017-09-194-6/+20
| | | | | | Differential Revision: https://reviews.llvm.org/D37997 llvm-svn: 313606
* Allow public Triple deduction from ObjectFiles.Vlad Tsyrklevich2017-09-193-20/+30
| | | | | | | | | | | | | | | Move logic that allows for Triple deduction from an ObjectFile object out of llvm-objdump.cpp into a public factory, found in the ObjectFile class. This should allow other tools in the future to use this logic without reimplementation. Patch by Mitch Phillips Differential Revision: https://reviews.llvm.org/D37719 llvm-svn: 313605
* [llvm-cov] Make report metrics agree with line exec counts, fixes PR34615Vedant Kumar2017-09-1913-134/+133
| | | | | | | | | Use the same logic as the line-oriented coverage view to determine the number of covered lines in a function. Fixes llvm.org/PR34615. llvm-svn: 313604
* [Coverage] Remove deferred region for trailing return, fixes PR34611Vedant Kumar2017-09-192-1/+15
| | | | | | | | As a special case, throw away deferred regions for trailing returns. This allows the closing curly brace to have a count, and is less distracting. llvm-svn: 313603
* [profile] Update Linux-only tests after r313597Vedant Kumar2017-09-192-2/+2
| | | | | | | Addresses bot failure: http://lab.llvm.org:8011/builders/clang-ppc64le-linux/builds/9803 llvm-svn: 313602
* Set svn:ignore property on *.pyc.Zachary Turner2017-09-190-0/+0
| | | | | | I think this is what is causing the build to constantly encounter tree conflicts. llvm-svn: 313601
* Drop -O1 case from nrvo-string.cppHans Wennborg2017-09-181-2/+0
| | | | | | It relied on r313400 which was reverted in r313589. llvm-svn: 313600
* [profile] Update InstrProfData.incVedant Kumar2017-09-181-1/+1
| | | | llvm-svn: 313599
* [Coverage] Use a new API to label gap areasVedant Kumar2017-09-182-23/+43
| | | | | | | This will make it possible for llvm-cov to pick better line execution counts, and is part of the fix for llvm.org/PR34612. llvm-svn: 313598
* [Coverage] Use gap regions to select better line exec countsVedant Kumar2017-09-1811-48/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | After clang started emitting deferred regions (r312818), llvm-cov has had a hard time picking reasonable line execuction counts. There have been one or two generic improvements in this area (e.g r310012), but line counts can still report coverage for whitespace instead of code (llvm.org/PR34612). To fix the problem: * Introduce a new region kind so that frontends can explicitly label gap areas. This is done by changing the encoding of the columnEnd field of MappingRegion. This doesn't substantially increase binary size, and makes it easy to maintain backwards-compatibility. * Don't set the line count to a count from a gap area, unless the count comes from a wrapped segment. * Don't highlight gap areas as uncovered. Fixes llvm.org/PR34612. llvm-svn: 313597
* [llvm-cov] Repair a test. NFC.Vedant Kumar2017-09-181-1/+1
| | | | | | | The checks with the MARKER prefix were not being run over the right input, because stderr was not redirected properly. llvm-svn: 313596
* [llvm-cov] Simplify code to find the first uncovered segment. NFC.Vedant Kumar2017-09-181-14/+8
| | | | | | | Now that that segment builder is guaranteed to produce segments in sorted order, we don't need a linear scan to get the right result. llvm-svn: 313595
* [lit] Use realpath when adding to the config map.Zachary Turner2017-09-182-0/+2
| | | | | | | | | | | | | Since the path a user specifies to the llvm-lit script might be different than the source tree they built from (since they could be behind different symlinks), we need to use realpath to make sure that path comparisons work as expected. Even better would be to use a custom dictionary comparison with actual file equivalence comparison semantics, but this is the least friction to unbreak things for now. llvm-svn: 313594
* bpf: add inline-asm supportYonghong Song2017-09-185-0/+175
| | | | | | Signed-off-by: Yonghong Song <yhs@fb.com> Acked-by: Alexei Starovoitov <ast@kernel.org> llvm-svn: 313593
* [ThinLTO/gold] Implement ThinLTO cache pruning supportYi Kong2017-09-182-0/+47
| | | | | | Differential Revision: https://reviews.llvm.org/D37993 llvm-svn: 313592
* [Docs] Document cache pruning support for goldYi Kong2017-09-181-2/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D37995 llvm-svn: 313591
* Fix inverted regex search.Zachary Turner2017-09-181-4/+4
| | | | | | | I was using the pattern as the source string and vice versa causing strange regular expression errors. llvm-svn: 313590
OpenPOWER on IntegriCloud