summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [x86] adjust select to sra tests; NFCSanjay Patel2019-10-141-16/+12
| | | | | | | Avoid demanded-bits-based specializations (that may not be ideal, but that's another problem). llvm-svn: 374783
* [IRBuilder] Update IRBuilder::CreateFNeg(...) to return a UnaryOperatorCameron McInally2019-10-1429-425/+440
| | | | | | | | Reapply r374240 with fix for Ocaml test, namely Bindings/OCaml/core.ml. Differential Revision: https://reviews.llvm.org/D61675 llvm-svn: 374782
* [ARM] Selection for MVE VMOVNDavid Green2019-10-144-300/+66
| | | | | | | | | | | | | | The adds both VMOVNt and VMOVNb instruction selection from the appropriate shuffles. We detect shuffle masks of the form: 0, N, 2, N+2, 4, N+4, ... or 0, N+1, 2, N+3, 4, N+5, ... ISel will also try the opposite patterns, with inputs reversed. These are selected to VMOVNt and VMOVNb respectively. Differential Revision: https://reviews.llvm.org/D68283 llvm-svn: 374781
* Revert r374771 "[llvm-size] Tidy up error messages (PR42970)"Nico Weber2019-10-143-26/+30
| | | | | | | | | This reverts commit 83e52f5e1150018329b8907bb014c77ac382d611. Makes Object/macho-invalid.test fail everywhere, e.g. here: http://lab.llvm.org:8011/builders/llvm-hexagon-elf/builds/23669/steps/test-llvm/logs/FAIL%3A%20LLVM%3A%3Amacho-invalid.test llvm-svn: 374780
* [x86] add tests for possible select to sra transforms; NFCSanjay Patel2019-10-141-0/+229
| | | | llvm-svn: 374779
* [libc++][test] Silence more warnings in variant testsCasey Carter2019-10-144-4/+4
| | | | | | More cases of signed-to-unsigned conversion warnings that missed the train for d2623522. llvm-svn: 374778
* [ARM] Add some VMOVN tests. NFCDavid Green2019-10-141-0/+704
| | | | llvm-svn: 374777
* minidump: Use yaml for memory info testsPavel Labath2019-10-144-2/+47
| | | | | | | Also, delete some minidump binary files that are no longer used in any test. llvm-svn: 374776
* [CostModel][X86] Add CTPOP scalar costs (PR43656)Simon Pilgrim2019-10-143-26/+73
| | | | | | | | Add specific scalar costs for ctpop instructions, these are based on the llvm-mca's SLM throughput numbers (the oldest model we have). For targets supporting POPCNT, we provide overrides that assume 1cy costs. llvm-svn: 374775
* [RISCV] enable LTO support, pass some options to linker.Sam Elliott2019-10-146-89/+154
| | | | | | | | | | | | | | | | | | | | | | | | Summary: 1. enable LTO need to pass target feature and abi to LTO code generation RISCV backend need the target feature to decide which extension used in code generation. 2. move getTargetFeatures to CommonArgs.h and add ForLTOPlugin flag 3. add general tools::getTargetABI in CommonArgs.h because different target uses different way to get the target ABI. Patch by Kuan Hsu Chen (khchen) Reviewers: lenary, lewis-revill, asb, MaskRay Reviewed By: lenary Subscribers: hiraditya, dschuff, aheejin, fedor.sergeev, mehdi_amini, inglorion, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, steven_wu, rogfer01, MartinMosbeck, brucehoult, the_o, dexonsmith, rkruppe, PkmX, jocewei, psnobl, benna, Jim, lenary, s.egerton, pzheng, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67409 llvm-svn: 374774
* [Alignment][NFC] Move and type functions from MathExtras to AlignmentGuillaume Chatelet2019-10-1411-41/+85
| | | | | | | | | | | | | | | | | Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Reviewers: courbet Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68942 llvm-svn: 374773
* [AArch64] Stackframe accesses to SVE objects.Sander de Smalen2019-10-145-45/+321
| | | | | | | | | | | | | | | | | Materialize accesses to SVE frame objects from SP or FP, whichever is available and beneficial. This patch still assumes the objects are pre-allocated. The automatic layout of SVE objects within the stackframe will be added in a separate patch. Reviewers: greened, cameron.mcinally, efriedma, rengolin, thegameg, rovka Reviewed By: cameron.mcinally Differential Revision: https://reviews.llvm.org/D67749 llvm-svn: 374772
* [llvm-size] Tidy up error messages (PR42970)Fangrui Song2019-10-143-30/+26
| | | | | | | | | Clean up some formatting inconsistencies in the error messages and correctly exit with non-zero in all error cases. Differential Revision: https://reviews.llvm.org/D68906 Patch by Alex Cameron llvm-svn: 374771
* [DebugInfo] Fix truncation of call site immediatesDavid Stenberg2019-10-142-1/+57
| | | | | | | | | | | | | | | | | | | | Summary: This addresses a bug in collectCallSiteParameters() where call site immediates would be truncated from int64_t to unsigned. This fixes PR43525. Reviewers: djtodoro, NikolaPrica, aprantl, vsk Reviewed By: aprantl Subscribers: hiraditya, llvm-commits Tags: #debug-info, #llvm Differential Revision: https://reviews.llvm.org/D68869 llvm-svn: 374770
* DWARFExpression: Fix/add support for (v4) debug_loc base address selection ↵Pavel Labath2019-10-142-12/+47
| | | | | | | | | | | | | | | | | | | | entries The DWARFExpression is parsing the location lists in about five places. Of those, only one actually had proper support for base address selection entries. Since r374600, llvm has started to produce location expressions with base address selection entries more aggresively, which caused some tests to fail. This patch adds support for these entries to the places which had it missing, fixing the failing tests. It also adds a targeted test for the two of the three fixes, which should continue testing this functionality even if the llvm output changes. I am not aware of a way to write a targeted test for the third fix (DWARFExpression::Evaluate). llvm-svn: 374769
* Revert "Add a pass to lower is.constant and objectsize intrinsics"Dmitri Gribenko2019-10-1438-399/+457
| | | | | | | This reverts commit r374743. It broke the build with Ocaml enabled: http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/19218 llvm-svn: 374768
* [AMDGPU] Come back patch for the 'Assign register class for cross block ↵Alexander Timofeev2019-10-1446-440/+562
| | | | | | | | | | | | | | | | | | | | | | | | values according to the divergence.' Detailed description: After https://reviews.llvm.org/D59990 submit several issues were discovered. Changes in common code were preserved but AMDGPU specific part was reverted to keep the backend working correctly. Discovered issues were addressed in the following commits: https://reviews.llvm.org/D67662 https://reviews.llvm.org/D67101 https://reviews.llvm.org/D63953 https://reviews.llvm.org/D63731 This change brings back AMDGPU specific changes. Reviewed by: rampitec, arsenm Differential Revision: https://reviews.llvm.org/D68635 llvm-svn: 374767
* Fixing typo in llvm/IR/Intrinsics.tdVictor Campos2019-10-141-1/+1
| | | | | | Fixing typo in comment line. llvm-svn: 374766
* [X86][BtVer2] Improved latency and throughput of float/vector loads and stores.Andrea Di Biagio2019-10-148-65/+65
| | | | | | | | | | | | | | | | | | | | This patch introduces the following changes to the btver2 scheduling model: - The number of micro opcodes for YMM loads and stores is now 2 (it was incorrectly set to 1 for both aligned and misaligned loads/stores). - Increased the number of AGU resource cycles for YMM loads and stores to 2cy (instead of 1cy). - Removed JFPU01 and JFPX from the list of resources consumed by pure float/vector loads (no MMX). I verified with llvm-exegesis that pure XMM/YMM loads are no-pipe. Those are dispatched to the FPU but not really issues on JFPU01. Differential Revision: https://reviews.llvm.org/D68871 llvm-svn: 374765
* [NFC][TTI] Add Alignment for isLegalMasked[Load/Store]Sam Parker2019-10-149-37/+53
| | | | | | | | | Add an extra parameter so the backend can take the alignment into consideration. Differential Revision: https://reviews.llvm.org/D68400 llvm-svn: 374763
* Fix D68936Guillaume Chatelet2019-10-141-1/+1
| | | | llvm-svn: 374761
* build_llvm_package.bat: Run check-clang-tools and check-clangd tests.Hans Wennborg2019-10-141-0/+8
| | | | llvm-svn: 374759
* [Alignment][NFC] Support compile time constantsGuillaume Chatelet2019-10-144-2/+78
| | | | | | | | | | | | | | | | | Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Reviewers: courbet Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68936 llvm-svn: 374758
* [docs] loop pragmas: options implying transformationsSjoerd Meijer2019-10-141-0/+8
| | | | | | | | | | | Following our discussion on the cfe dev list: http://lists.llvm.org/pipermail/cfe-dev/2019-August/063054.html, I have added a paragraph that is explicit about loop pragmas, and transformation options implying the corresponding transformation. Differential Revision: https://reviews.llvm.org/D66199 llvm-svn: 374756
* [X86] Teach EmitTest to handle ISD::SSUBO/USUBO in order to use the Z flag ↵Craig Topper2019-10-144-61/+41
| | | | | | | | | | | | | | | | | | | | | | | from the subtract directly during isel. This prevents isel from emitting a TEST instruction that optimizeCompareInstr will need to remove later. In some of the modified tests, the SUB gets duplicated due to the flags being needed in two places and being clobbered in between. optimizeCompareInstr was able to optimize away the TEST that was using the result of one of them, but optimizeCompareInstr doesn't know to turn SUB into CMP after removing the TEST. It only knows how to turn SUB into CMP if the result was already dead. With this change the TEST never exists, so optimizeCompareInstr doesn't have to remove it. Then it can just turn the SUB into CMP immediately. Fixes PR43649. llvm-svn: 374755
* [clang] [clang-offload-bundler] Fix finding installed llvm-objcopyMichal Gorny2019-10-141-0/+2
| | | | | | | | | | | | | | | | | Allow finding installed llvm-objcopy in PATH if it's not present in the directory containing clang-offload-bundler. This is the case if clang is being built stand-alone, and llvm-objcopy is already installed while the c-o-b tool is still present in build directory. This is consistent with how e.g. llvm-symbolizer is found in LLVM. However, most of similar searches in LLVM and Clang are performed without special-casing the program directory. Fixes r369955. Differential Revision: https://reviews.llvm.org/D68931 llvm-svn: 374754
* clangd tests: use extended regex with sedNico Weber2019-10-143-3/+3
| | | | | | | | | The escaped parens seem to confuse the combination of lit, cygwin quoting, and cygwin's sed. unxutils sed in cmd.exe is fine with both forms, so use the extended regex form that doesn't need an escaped paren. llvm-svn: 374753
* convert another test to unix line endingsNico Weber2019-10-141-14/+14
| | | | llvm-svn: 374752
* convert a test to unix line endingsNico Weber2019-10-141-84/+84
| | | | llvm-svn: 374751
* fix typo in 374747Nico Weber2019-10-141-1/+1
| | | | llvm-svn: 374750
* Prefer 'env not' over 'not env' in tests.Nico Weber2019-10-1416-30/+30
| | | | | | | | | That way, lit's builtin 'env' command can be used for the 'env' bit. Also it's clearer that way that the 'not' shouldn't cover 'env' failures. llvm-svn: 374749
* [X86] Autogenerate complete checks. NFCCraig Topper2019-10-142-64/+159
| | | | llvm-svn: 374748
* Make symbols.test pass on Windows.Nico Weber2019-10-142-2/+2
| | | | | | | | See commit message of r374746 for details. Hopefully final bit of PR43592. llvm-svn: 374747
* Make code-action-request.test and request-reply.test pass on Windows.Nico Weber2019-10-142-5/+5
| | | | | | | | | | | | clangd's test:// scheme expands to /clangd-test on non-Win and to C:/clang-test on Win, so it can't be mixed freely with file:///clangd-test since that's wrong on Windows. This makes both tests consistenly use the test:// scheme. (Alternatively, we could use the //INPUT_DIR pattern used in a few other tests.) Part of PR43592. llvm-svn: 374746
* Don't run background-index.test on Windows.Nico Weber2019-10-141-1/+1
| | | | | | | | | The test had a "UNSUPPORTED: win32" line, but the spelling of that changed in r339307 a year ago. Finally update this test too. Part of PR43592. llvm-svn: 374745
* [NewGVN] Use m_Br to simplify code a bit. (NFC)Florian Hahn2019-10-131-5/+5
| | | | llvm-svn: 374744
* Add a pass to lower is.constant and objectsize intrinsicsJoerg Sonnenberger2019-10-1338-457/+399
| | | | | | | | | | | | | | | | | This pass lowers is.constant and objectsize intrinsics not simplified by earlier constant folding, i.e. if the object given is not constant or if not using the optimized pass chain. The result is recursively simplified and constant conditionals are pruned, so that dead blocks are removed even for -O0. This allows inline asm blocks with operand constraints to work all the time. The new pass replaces the existing lowering in the codegen-prepare pass and fallbacks in SDAG/GlobalISEL and FastISel. The latter now assert on the intrinsics. Differential Revision: https://reviews.llvm.org/D65280 llvm-svn: 374743
* Improve __builtin_constant_p loweringJoerg Sonnenberger2019-10-134-95/+75
| | | | | | | | | | | | | | | | __builtin_constant_p used to be short-cut evaluated to false when building with -O0. This is undesirable as it means that constant folding in the front-end can give different results than folding in the back-end. It can also create conditional branches on constant conditions that don't get folded away. With the pending improvements to the llvm.is.constant handling on the LLVM side, the short-cut is no longer useful. Adjust various codegen tests to not depend on the short-cut or the backend optimisations. Differential Revision: https://reviews.llvm.org/D67638 llvm-svn: 374742
* merge-request.sh: Update 9.0 metabug for 9.0.1Simon Atanasyan2019-10-131-1/+1
| | | | llvm-svn: 374741
* [Attributor] Shortcut no-return through will-returnJohannes Doerfert2019-10-137-14/+29
| | | | | | | | No-return and will-return are exclusive, assuming the latter is more prominent we can avoid updates of the former unless will-return is not known for sure. llvm-svn: 374739
* [Attributor][FIX] NullPointerIsDefined needs the pointer AS (AANonNull)Johannes Doerfert2019-10-135-6/+28
| | | | | | Also includes a shortcut via AADereferenceable if possible. llvm-svn: 374737
* [Attributor][MemBehavior] Fallback to the function state for argumentsJohannes Doerfert2019-10-135-19/+36
| | | | | | | | | Even if an argument is captured, we cannot have an effect the function does not have. This is fine except for the special case of `inalloca` as it does not behave by the rules. TODO: Maybe the special rule for `inalloca` is wrong after all. llvm-svn: 374736
* [Attributor][FIX] Use check prefix that is actually testedJohannes Doerfert2019-10-134-24/+39
| | | | | | | | | | | | | | | | Summary: This changes "CHECK" check lines to "ATTRIBUTOR" check lines where necessary and also fixes the now exposed, mostly minor, problems. Reviewers: sstefan1, uenoku Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68929 llvm-svn: 374735
* [NFC][InstCombine] Some preparatory cleanup in ↵Roman Lebedev2019-10-131-23/+21
| | | | | | dropRedundantMaskingOfLeftShiftInput() llvm-svn: 374734
* [Docs] Moves Control Flow Document to User GuidesDeForest Richards2019-10-132-10/+11
| | | | | | Moves Control Flow document from Reference docs page to User guides page. llvm-svn: 374733
* [X86] getTargetShuffleInputs - Control KnownUndef mask element resolution as ↵Simon Pilgrim2019-10-131-11/+11
| | | | | | | | well as KnownZero. We were already controlling whether the KnownZero elements were being written to the target mask, this extends it to the KnownUndef elements as well so we can prevent the target shuffle mask being manipulated at all. llvm-svn: 374732
* [X86] Enable use of avx512 saturating truncate instructions in more cases.Craig Topper2019-10-137-542/+299
| | | | | | | | | | This enables use of the saturating truncate instructions when the result type is less than 128 bits. It also enables the use of saturating truncate instructions on KNL when the input is less than 512 bits. We can do this by widening the input and then extracting the result. llvm-svn: 374731
* Add missing "REQUIRES: shell" to system-include-extractor.testNico Weber2019-10-131-0/+3
| | | | | | Part of PR43592. llvm-svn: 374730
* [ConstantFold] fix inconsistent handling of extractelement with undef index ↵Sanjay Patel2019-10-132-7/+4
| | | | | | | | | (PR42689) Any constant other than zero was already folded to undef if the index is undef. https://bugs.llvm.org/show_bug.cgi?id=42689 llvm-svn: 374729
* [InstCombine] don't assume 'inbounds' for bitcast deref or null pointer in ↵Sanjay Patel2019-10-132-4/+12
| | | | | | | | | | | | | | non-default address space Follow-up to D68244 to account for a corner case discussed in: https://bugs.llvm.org/show_bug.cgi?id=43501 Add one more restriction: if the pointer is deref-or-null and in a non-default (non-zero) address space, we can't assume inbounds. Differential Revision: https://reviews.llvm.org/D68706 llvm-svn: 374728
OpenPOWER on IntegriCloud