summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix for PR32992. Static const classes not exported.Hans Wennborg2018-02-132-3/+32
| | | | | | | | Patch by zahiraam! Differential Revision: https://reviews.llvm.org/D42968 llvm-svn: 324991
* [clangd] Stop exposing Futures from ClangdServer operations.Sam McCall2018-02-139-111/+149
| | | | | | | | | | | | | | | | | | | | Summary: LSP has asynchronous semantics, being able to block on an async operation completing is unneccesary and leads to tighter coupling with the threading. In practice only tests depend on this, so we add a general-purpose "block until idle" function to the scheduler which will work for all operations. To get this working, fix a latent condition-variable bug in ASTWorker, and make AsyncTaskRunner const-correct. Reviewers: ilya-biryukov Subscribers: klimek, jkorous-apple, ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D43127 llvm-svn: 324990
* Fix typos.Bruce Mitchener2018-02-132-2/+2
| | | | | | | | | | Reviewers: mclow.lists, EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D43224 llvm-svn: 324989
* [DebugInfo] Avoid name conflict of generated VLA expression variable.Sander de Smalen2018-02-1311-13/+14
| | | | | | | | | | | | | | | | | Summary: This patch also adds the 'DW_AT_artificial' flag to the generated variable. Addresses the issues mentioned in http://llvm.org/PR30553. Reviewers: CarlosAlbertoEnciso, probinson, aprantl Reviewed By: aprantl Subscribers: JDevlieghere, cfe-commits Differential Revision: https://reviews.llvm.org/D43189 llvm-svn: 324988
* [X86] Add a test case showing blcic matching being broken by an and mask ↵Craig Topper2018-02-131-0/+19
| | | | | | | | applied to the input. NFC Playing around with other BMI/TBM instructions after PR35792 and saw this. llvm-svn: 324987
* [X86] Add a blsr test case with a shift from PR35792. NFCCraig Topper2018-02-131-0/+13
| | | | | | The blsr pattern here is missed because the add is shrunk, but the and is not. This leaves an any_extend between them. llvm-svn: 324986
* [X86] Teach EVEX->VEX pass to turn VRNDSCALE into VROUND when bits 7:4 of ↵Craig Topper2018-02-1312-80/+112
| | | | | | | | | | the immediate are 0 and the regular EVEX->VEX checks pass. Bits 7:4 control the scale part of the operation. If the scale is 0 the behavior is equivalent to VROUND. Fixes PR36246 llvm-svn: 324985
* [X86] Autogenerate complete checks. NFCCraig Topper2018-02-131-57/+112
| | | | llvm-svn: 324984
* [Utils] Salvage debug info from all no-op castsVedant Kumar2018-02-132-4/+17
| | | | | | | | | | | We already try to salvage debug values from no-op bitcasts and inttoptr instructions: we should handle ptrtoint instructions as well. This saves an additional 24,444 debug values in a stage2 build of clang, and (according to llvm-dwarfdump --statistics) provides an additional 289 unique source variables. llvm-svn: 324982
* Revert "Rewrite the cached map used for locating the most precise DIE among ↵David Blaikie2018-02-132-397/+33
| | | | | | | | | | | | | | | inlined subroutines for a given address." Seeing some inlining missing in internal uses of symbolizer. I'll work on a reproduction, tests, improvements & recommit as soon as possible. (Chandler would like it to be known that this improvement did make check-llvm 4x faster... - so there's certainly some fairly good motivation to push on fixing/figuring this out & getting it back in) This reverts commit r321345. llvm-svn: 324981
* [X86] Use getTypeAction in most places that were checking ↵Craig Topper2018-02-131-8/+9
| | | | | | | | ExperimentalVectorWideningLegalization. This will allow more flexibility in what types we legalize via widening or not. This should help with a couple lines in D41062. llvm-svn: 324980
* [X86] Remove duplicate CHECK-LABEL line the update script didn't delete when ↵Craig Topper2018-02-131-1/+0
| | | | | | I converted the test. llvm-svn: 324979
* Add REQUIRES: zlib to gdb-index.s testReid Kleckner2018-02-131-1/+1
| | | | llvm-svn: 324978
* Revert "Document the shortcomings of DwarfExpression::addMachineReg()."Adrian Prantl2018-02-131-7/+3
| | | | | | | This reverts commit r324972. This commit broke a bot, so perhaps it is testable after all? llvm-svn: 324977
* [Utils] Salvage debug info of DCE'ed mul/sdiv/srem instructionsVedant Kumar2018-02-134-0/+43
| | | | | | | | | | | | | Here are the number of additional debug values salvaged in a stage2 build of clang: 63 SALVAGE: MUL 1250 SALVAGE: SDIV (No values were salvaged from `srem` instructions in this experiment, but it's a simple case to handle so we might as well.) llvm-svn: 324976
* [Utils] Salvage debug info of DCE'ed shl/lhsr/ashr instructionsVedant Kumar2018-02-134-0/+45
| | | | | | | | | | | Here are the number of additional debug values salvaged in a stage2 build of clang: 1912 SALVAGE: ASHR 405 SALVAGE: LSHR 249 SALVAGE: SHL llvm-svn: 324975
* [Utils] Salvage the debug info of DCE'ed 'sub' instructionsVedant Kumar2018-02-132-0/+23
| | | | | | This salvages 14 debug values in a stage2 build of clang. llvm-svn: 324974
* [Utils] Salvage the debug info of DCE'ed 'xor' instructionsVedant Kumar2018-02-134-11/+33
| | | | | | | | This salvages 259 debug values in a stage2 build of clang. Differential Revision: https://reviews.llvm.org/D43207 llvm-svn: 324973
* Document the shortcomings of DwarfExpression::addMachineReg().Adrian Prantl2018-02-131-3/+7
| | | | | | | | | | Also make a drive-by-fix of a bug in the subregister scan code that only triggers with an incomplete or otherwise very irregular machine description. rdar://problem/37404493 llvm-svn: 324972
* GlobalISel: IRTranslate llvm.fmuladd.* intrinsicVolkan Keles2018-02-132-0/+53
| | | | | | | | | | | | Reviewers: qcolombet, ab, dsanders, aditya_nandakumar, bogner Reviewed By: qcolombet Subscribers: rovka, kristof.beyls, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D43090 llvm-svn: 324971
* [demangler] Support for initializer lists and designated initializers.Erik Pilkington2018-02-132-29/+169
| | | | llvm-svn: 324970
* [demangler] Support for dependent elaborate type specifiers.Erik Pilkington2018-02-132-3/+44
| | | | llvm-svn: 324969
* [demangler] All <qualifiers> on one type should share one entry in the ↵Erik Pilkington2018-02-132-45/+54
| | | | | | | | substitution table. Previously, both <extended-qualifier>s and <CV-qualifiers> got their own entries. llvm-svn: 324968
* [InstSimplify] allow exp/log simplifications with only 'reassoc' FMFSanjay Patel2018-02-122-51/+50
| | | | | | | | | | These intrinsic folds were added with D41381, but only allowed with isFast(). That's more than necessary because FMF has 'reassoc' to apply to these kinds of folds after D39304, and that's all we need in these cases. Differential Revision: https://reviews.llvm.org/D43160 llvm-svn: 324967
* [WebAssembly] Update ADT/TripleTest.cpp now that default file format has changedSam Clegg2018-02-121-2/+7
| | | | | | Differential Revision: https://reviews.llvm.org/D43212 llvm-svn: 324966
* [Modules] Fix remapping from Foo.Private to Foo_Private to happen before ↵Bruno Cardoso Lopes2018-02-122-33/+36
| | | | | | | | | | typo correction Typo correction is the last step here, remapping should come first. rdar://problem/37351970 llvm-svn: 324965
* [X86] Auto generate complete checks. NFCCraig Topper2018-02-121-4/+14
| | | | llvm-svn: 324964
* [InstSimplify] change tests to 'fast' to reflect current foldsSanjay Patel2018-02-121-76/+52
| | | | | | | | The diff to use 'reassoc' is part of D43160; it should not have been made with rL324961. Reverting that part here, so we'll see the intended diff with the code change. llvm-svn: 324963
* [Dominators] Always recalculate postdominators when update yields different ↵Jakub Kuderski2018-02-121-20/+25
| | | | | | | | | | | | | | | | | | | | | roots Summary: This patch makes postdominators always recalculate the tree when an update causes to change the tree roots. As @dmgreen noticed in [[ https://reviews.llvm.org/D41298 | D41298 ]], the previous implementation was not conservative enough and it was possible to end up with a PostDomTree that was different than a freshly computed one. The patch also compares postdominators with a freshly computed tree at the end of full verification to make sure we don't hit similar issues in the future. This should (ideally) be also backported to 6.0 before the release, although I don't have any reports of this causing an observable error. It should be safe to do it even if it's late in the release, as the change only makes the current behavior more conservative. Reviewers: dmgreen, dberlin, davide, brzycki, grosser Reviewed By: brzycki, grosser Subscribers: llvm-commits, dmgreen Differential Revision: https://reviews.llvm.org/D43140 llvm-svn: 324962
* [InstSimplify] consolidate tests for log-exp inverse foldsSanjay Patel2018-02-125-284/+217
| | | | | | | | | | | Some tests didn't add much value because we already show stronger constraints for the folds in other tests, so the weaker versions were deleted. Moved the remaining tests into 1 file because the folds are very similar and handled from 1 place in the code. llvm-svn: 324961
* [InstCombine] Simplify MemTransferInst's source and dest alignments separatelyDaniel Neilson2018-02-123-17/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change is part of step five in the series of changes to remove alignment argument from memcpy/memmove/memset in favour of alignment attributes. In particular, this changes the InstCombine pass to cease using the deprecated MemoryIntrinsic::getAlignment() method, and instead we use the separate getSourceAlignment and getDestAlignment APIs to simplify the source and destination alignment attributes separately. Steps: Step 1) Remove alignment parameter and create alignment parameter attributes for memcpy/memmove/memset. ( rL322965, rC322964, rL322963 ) Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing source and dest alignments. ( rL323597 ) Step 3) Update Clang to use the new IRBuilder API. ( rC323617 ) Step 4) Update Polly to use the new IRBuilder API. ( rL323618 ) Step 5) Update LLVM passes that create memcpy/memmove calls to use the new IRBuilder API, and those that use use MemIntrinsicInst::[get|set]Alignment() to use [get|set]DestAlignment() and [get|set]SourceAlignment() instead. ( rL323886, rL323891, rL324148, rL324273, rL324278, rL324384, rL324395, rL324402, rL324626, rL324642, rL324653, rL324654, rL324773, rL324774, rL324781, rL324784, rL324955 ) Step 6) Remove the single-alignment IRBuilder API for memcpy/memmove, and the MemIntrinsicInst::[get|set]Alignment() methods. Reference http://lists.llvm.org/pipermail/llvm-dev/2015-August/089384.html http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html Reviewers: majnemer, bollu, efriedma Reviewed By: efriedma Subscribers: efriedma, llvm-commits Differential Revision: https://reviews.llvm.org/D42871 llvm-svn: 324960
* [libcxx] [test] Strip trailing whitespace, NFC.Stephan T. Lavavej2018-02-1237-57/+57
| | | | llvm-svn: 324959
* Revert "[LSR] Avoid UB overflow when examining reuse opportunities"Adam Nemet2018-02-122-31/+0
| | | | | | | | This reverts commit r324943. Breaking bots, reverting for Gerolf. llvm-svn: 324958
* [WebAssembly] MC: Remove redundant struct typesSam Clegg2018-02-121-52/+35
| | | | | | Differential Revision: https://reviews.llvm.org/D43210 llvm-svn: 324957
* [analyzer] Exploration strategy prioritizing unexplored coverage firstGeorge Karpenkov2018-02-125-12/+120
| | | | | | | | | | See reviews.llvm.org/M1 for evaluation, and lists.llvm.org/pipermail/cfe-dev/2018-January/056718.html for discussion. Differential Revision: https://reviews.llvm.org/D42775 llvm-svn: 324956
* [SafeStack] Use updated CreateMemCpy API to set more accurate source and ↵Daniel Neilson2018-02-124-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | destination alignments. Summary: This change is part of step five in the series of changes to remove alignment argument from memcpy/memmove/memset in favour of alignment attributes. In particular, this changes the creation of memcpys in the SafeStack pass to set the alignment of the destination object to its stack alignment while separately setting the source byval arguments alignment to its alignment. Steps: Step 1) Remove alignment parameter and create alignment parameter attributes for memcpy/memmove/memset. ( rL322965, rC322964, rL322963 ) Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing source and dest alignments. ( rL323597 ) Step 3) Update Clang to use the new IRBuilder API. ( rC323617 ) Step 4) Update Polly to use the new IRBuilder API. ( rL323618 ) Step 5) Update LLVM passes that create memcpy/memmove calls to use the new IRBuilder API, and those that use use MemIntrinsicInst::[get|set]Alignment() to use [get|set]DestAlignment() and [get|set]SourceAlignment() instead. (rL323886, rL323891, rL324148, rL324273, rL324278, rL324384, rL324395, rL324402, rL324626, rL324642, rL324653, rL324654, rL324773, rL324774, rL324781, rL324784 ) Step 6) Remove the single-alignment IRBuilder API for memcpy/memmove, and the MemIntrinsicInst::[get|set]Alignment() methods. Reference http://lists.llvm.org/pipermail/llvm-dev/2015-August/089384.html http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html Reviewers: eugenis, bollu Reviewed By: eugenis Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42710 llvm-svn: 324955
* [X86] Reverse the operand order of the implementation of the kunpack builtins.Craig Topper2018-02-123-4/+5
| | | | | | | | The second operand needs to be in the lower bits of the concatenation. This matches llvm 5.0, gcc, and icc behavior. Fixes PR36360. llvm-svn: 324954
* [X86] Reverse the operand order of the autoupgrade of the kunpack builtins.Craig Topper2018-02-123-6/+7
| | | | | | | | The second operand needs to be in the lower bits of the concatenation. This matches llvm 5.0, gcc, and icc behavior. Fixes PR36360. llvm-svn: 324953
* [CFG] Provide construction contexts for return value constructors.Artem Dergachev2018-02-123-2/+98
| | | | | | | | | | | When the current function returns a C++ object by value, CFG elements for constructors that construct the return values can now be queried to discover that they're indeed participating in construction of the respective return value at the respective return statement. Differential Revision: https://reviews.llvm.org/D42875 llvm-svn: 324952
* Do not use Decompressor::isCompressedELFSection. NFC.Rui Ueyama2018-02-121-1/+3
| | | | | | | | | In order to identify a compressed section, we check if a section name starts with ".zdebug" or the section has SHF_COMPRESSED flag. We already use the knowledge in this function. So hiding that check in isCompressedELFSection doesn't make sense. llvm-svn: 324951
* [WebAssembly] MC: Remove redundant `private` specifiersSam Clegg2018-02-122-3/+0
| | | | | | This is inline with the other MCSection and MCSymbol subclasses llvm-svn: 324950
* Remove 'z' in .zdebug when decompressing a section.Rui Ueyama2018-02-124-31/+47
| | | | | | | | | | | When decompressing a compressed debug section, we drop SHF_COMPRESSED flag but we didn't drop "z" in ".zdebug" section name. This patch does that for consistency. This change also fixes the issue that .zdebug_gnu_pubnames are not dropped when we are creating a .gdb_index section. llvm-svn: 324949
* Look for 32-bit libraries in /usr/lib32 for MIPS O32 on FreeBSD.John Baldwin2018-02-122-0/+8
| | | | | | | | | | | | | | | Summary: FreeBSD N64 MIPS systems can include 32-bit libraries for O32 in /usr/lib32 similar to the 32-bit compatibility libraries provided for FreeBSD/amd64 and FreeBSD/powerpc64. Reviewers: dim Reviewed By: dim Differential Revision: https://reviews.llvm.org/D42972 llvm-svn: 324948
* [x86] add select test to show there's no single right answer (PR28968); NFCSanjay Patel2018-02-121-0/+29
| | | | llvm-svn: 324947
* [analyzer] [tests] Fix a typo in analyzer testing script.George Karpenkov2018-02-121-1/+1
| | | | | | Incorrect option instance construction. llvm-svn: 324946
* Simplify switch statement (NFC)Adrian Prantl2018-02-121-5/+3
| | | | llvm-svn: 324945
* s/uncompress/decompress/g.Rui Ueyama2018-02-124-12/+12
| | | | | | | In lld, we use both "uncompress" and "decompress" which is confusing. Since LLVM uses "decompress", we should use the same term. llvm-svn: 324944
* [LSR] Avoid UB overflow when examining reuse opportunitiesGerolf Hoflehner2018-02-122-0/+31
| | | | llvm-svn: 324943
* [WebAssembly] Fix casting MCSymbol to MCSymbolWasm on ELFJacob Gravelle2018-02-121-3/+5
| | | | | | | | | | | | | | Summary: wasm32-unknown-unknown-elf has MCSymbols that are not MCSymbolWasms, so we need a non-asserting cast here. Reviewers: dschuff, sunfish Subscribers: jfb, sbc100, aheejin, llvm-commits Differential Revision: https://reviews.llvm.org/D43205 llvm-svn: 324942
* [DAG] make binops with undef operands consistent with IRSanjay Patel2018-02-125-30/+27
| | | | | | | | | | | | | | | | | | | | | This started by noticing that scalar and vector types were producing different results with div ops in PR36305: https://bugs.llvm.org/show_bug.cgi?id=36305 ...but the problem is bigger. I couldn't keep it straight without a table, so I'm attaching that as a PDF to the review. The x86 tests in undef-ops.ll correspond to that table. Green means that instsimplify and the DAG agree on the result for all types. Red means the DAG was returning undef when IR was not. Yellow means the DAG was returning a non-undef result when IR returned undef. This patch assumes that we're currently doing the right thing in IR. Note: I couldn't find any problems with lowering vector constants as the code comments were warning, but those comments were written long ago in rL36413 . Differential Revision: https://reviews.llvm.org/D43141 llvm-svn: 324941
OpenPOWER on IntegriCloud