summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [OpenMP][libomptarget] Simplify warp master selection for data sharingGheorghe-Teodor Bercea2018-09-251-2/+2
| | | | | | | | | | | | | | | | | | Summary: There is currently no supported situation where the warp master is not the first thread in the warp. This also avoids the device execution from hanging on Volta GPUs when ballot_sync is called by a number of threads that is less that the size of a warp. Reviewers: ABataev, caomhin, grokos Reviewed By: grokos Subscribers: guansong, openmp-commits Differential Revision: https://reviews.llvm.org/D50188 llvm-svn: 342972
* [llvm-exegesis] Fix broken test.Guillaume Chatelet2018-09-251-1/+1
| | | | llvm-svn: 342971
* [clangd] Fix some buildbots after r342965Kirill Bobyrev2018-09-251-1/+1
| | | | | | Some compilers fail to parse struct default member initializer. llvm-svn: 342970
* Revert rL342916: [X86] Remove shift/rotate by CL memory (RMW) overridesSimon Pilgrim2018-09-257-43/+97
| | | | | | | | As suggested by Craig Topper - I'm going to look at cleaning up the RMW sequences instead. The uops are slightly different to the register variant, so requires a +1uop tweak llvm-svn: 342969
* [OpenCL] Allow zero assignment and comparisons between queue_t type variablesSven van Haastregt2018-09-252-4/+33
| | | | | | | | | | | This change allows for zero assignment and comparison of queue_t type variables, and extends null_queue.cl to test this. Patch by Alistair Davies. Differential Revision: https://reviews.llvm.org/D51727 llvm-svn: 342968
* [llvm-exegesis][NFC] Rewrite of the YAML serialization.Guillaume Chatelet2018-09-256-219/+174
| | | | | | | | | | | | | | Summary: This is a NFC in preparation of exporting the initial registers as part of the YAML dump Reviewers: courbet Reviewed By: courbet Subscribers: mgorny, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52427 llvm-svn: 342967
* Revert r342637 "[ADT] Try again to use the same version of llvm::Optional on ↵Hans Wennborg2018-09-251-9/+5
| | | | | | | | | | | | all compilers" and also revert follow-ups r342643 and r342723. This caused Clang to be miscompiled by GCC 4.8.4 (Unbuntu 14.04's default compiler) and break the Chromium build (see https://crbug.com/888061). llvm-svn: 342966
* [clangd] Implement VByte PostingList compressionKirill Bobyrev2018-09-254-87/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements Variable-length Byte compression of `PostingList`s to sacrifice some performance for lower memory consumption. `PostingList` compression and decompression was extensively tested using fuzzer for multiple hours and runnning significant number of realistic `FuzzyFindRequests`. AddressSanitizer and UndefinedBehaviorSanitizer were used to ensure the correct behaviour. Performance evaluation was conducted with recent LLVM symbol index (292k symbols) and the collection of user-recorded queries (7751 `FuzzyFindRequest` JSON dumps): | Metrics | Before| After | Change (%) | ----- | ----- | ----- | ----- | Memory consumption (posting lists only), MB | 54.4 | 23.5 | -60% | Time to process queries, sec | 7.70 | 9.4 | +25% Reviewers: sammccall, ioeric Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D52300 llvm-svn: 342965
* [clangd] Fix build bot after r342961Eric Liu2018-09-251-4/+3
| | | | | | | Use llvm::isAlpha instead of std::isalpha etc. This should fix bot failure: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/20180 llvm-svn: 342964
* [Profile] Fix gcov testsCalixte Denizet2018-09-253-7/+7
| | | | | | | | | | | | | | Summary: The gcda need to be delete before running the binary to avoid to have an increasing "# of Runs" when a test is failing Reviewers: vitalybuka, eugenis, marco-c Reviewed By: marco-c Subscribers: delcypher, llvm-commits, #sanitizers, sylvestre.ledru, marco-c Differential Revision: https://reviews.llvm.org/D52456 llvm-svn: 342963
* [COFF] Add support for creating range extension thunks for ARMMartin Storsjo2018-09-2512-37/+441
| | | | | | | | | | | | This is a feature that MS link.exe lacks; it currently errors out on such relocations, just like lld did before. This allows linking clang.exe for ARM - practically, any image over 16 MB will likely run into the issue. Differential Revision: https://reviews.llvm.org/D52156 llvm-svn: 342962
* [clangd] Check that scheme is valid when parsing URI.Eric Liu2018-09-252-5/+24
| | | | | | | | | | | | Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D52455 llvm-svn: 342961
* Fix a typo in the help of clangdSylvestre Ledru2018-09-251-1/+1
| | | | llvm-svn: 342960
* [Swig] Merge typemaps with same bodiesTatyana Krasnukha2018-09-251-196/+53
| | | | | | Differential Revision: https://reviews.llvm.org/D52376 llvm-svn: 342959
* [LoopUnroll] Add check to Latch's terminator in UnrollRuntimeLoopRemainderDavid Green2018-09-254-5/+123
| | | | | | | | | | | | | In this patch, I'm adding an extra check to the Latch's terminator in llvm::UnrollRuntimeLoopRemainder, similar to how it is already done in the llvm::UnrollLoop. The compiler would crash if this function is called with a malformed loop. Patch by Rodrigo Caetano Rocha! Differential Revision: https://reviews.llvm.org/D51486 llvm-svn: 342958
* [clangd] NFC: Remove test duplicateKirill Bobyrev2018-09-251-11/+0
| | | | | | | `FuzzyMatchQ` test was a duplicate of `FuzzyMatch` pulled from MemIndex tests. llvm-svn: 342957
* [AMDGPU] restore r342722 which was reverted with r342743Sameer Sahasrabuddhe2018-09-252-0/+66
| | | | | | | | | | | | | | | | | | | [AMDGPU] lower-switch in preISel as a workaround for legacy DA Summary: The default target of the switch instruction may sometimes be an "unreachable" block, when it is guaranteed that one of the cases is always taken. The dominator tree concludes that such a switch instruction does not have an immediate post dominator. This confuses divergence analysis, which is unable to propagate sync dependence to the targets of the switch instruction. As a workaround, the AMDGPU target now invokes lower-switch as a preISel pass. LowerSwitch is designed to handle the unreachable default target correctly, allowing the divergence analysis to locate the correct immediate dominator of the now-lowered switch. llvm-svn: 342956
* Revert rL342953 "[llvm-exegesis] Add lit tests."Clement Courbet2018-09-256-33/+10
| | | | | | We also need to make sure that we're on the right subtarget. llvm-svn: 342955
* [ELF] - Add -z global option to manual.George Rimar2018-09-251-0/+6
| | | | | | | This was requested during review of D49374, but for some unknown reason was not in the final commit. llvm-svn: 342954
* [llvm-exegesis] Add lit tests.Clement Courbet2018-09-256-10/+33
| | | | | | | | | | | | | | | Summary: Right now we only have unit tests. This will allow testing the whole tool. Even though We can't really check actual values, this will avoid regressions such as PR39055. Reviewers: gchatelet, alexshap Subscribers: mgorny, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52407 llvm-svn: 342953
* [llvm-exegesis] Add MCParser to LLVM_LINK_COMPONENTSHeejin Ahn2018-09-251-1/+1
| | | | | | We need this to make builds with `-DBUILD_SHARED_LIBS=ON` work. llvm-svn: 342952
* Deduplicate replacements from diagnostics.Eric Liu2018-09-255-9/+31
| | | | | | | | | | | | | | | | | | | Summary: After r329813, clang-apply-replacements stopped deduplicating identical replacements; however, tools like clang-tidy relies on the deduplication of identical dignostics replacements from different TUs to apply fixes correctly. This change partially roll back the behavior by deduplicating changes from diagnostics. Ideally, we should deduplicate on diagnostics level, but we need to figure out an effecient way. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D52264 llvm-svn: 342951
* Annotate LookupResult::clear() as LLVM_ATTRIBUTE_REINITIALIZES to silence ↵Fangrui Song2018-09-251-1/+1
| | | | | | | | | | | | | | bugprone-use-after-move after rC342925 Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D52446 llvm-svn: 342950
* Add macro LLVM_ATTRIBUTE_REINITIALIZESFangrui Song2018-09-251-0/+13
| | | | | | | | | | | | | | | | | | Summary: This marks legitimate use-after-move (e.g. `Found.clear()` in rC342925) which would otherwise be caught by bugprone-use-after-move. bugprone-use-after-move recognizes this attribute after rCTE339571. Reviewers: aaron.ballman, rsmith, mboehme, hokein Reviewed By: mboehme Subscribers: kristina, llvm-commits Differential Revision: https://reviews.llvm.org/D52451 llvm-svn: 342949
* [llvm-exegesis] Fix doc in r342947.Clement Courbet2018-09-251-8/+9
| | | | | | llvm-exegesis.rst was using invalid indentation for bullet points. llvm-svn: 342948
* [llvm-exegesis] Allow benchmarking arbitrary code snippets.Clement Courbet2018-09-256-63/+281
| | | | | | | | | | | | | | | | | Summary: This is a step towards fixing PR38048. Note that right now the measurements are given per instruction. We'll need to give measurements a per code snippet and update the analysis (PR38731). Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52041 llvm-svn: 342947
* [mips] Correct MUL pattern for mips64Stefan Maksimovic2018-09-252-1/+4
| | | | | | | | Guard existing pattern with a predicate, introduce a new one for revision 6. Differential Revision: https://reviews.llvm.org/D51684 llvm-svn: 342946
* Use unique_ptr to hold AsmInfo,MRI,MII,STIFangrui Song2018-09-254-21/+16
| | | | | | | | | | | | Reviewers: pcc, dblaikie Reviewed By: dblaikie Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52389 llvm-svn: 342945
* Use TRI->regsOverlap() in MachineBasicBlock::computeRegisterLivenessMikael Holmen2018-09-251-6/+4
| | | | | | | | | | | | | | | | | | | Summary: For the loop that used MCRegAliasIterator this should be NFC. For the loop that previously used MCSubRegIterator we should now detect more cases where the register is actually live out that we previously missed. Reviewers: MatzeB, arsenm Reviewed By: MatzeB Subscribers: wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D52410 llvm-svn: 342944
* [DebugInfo] Do not generate address info for removed debug labels.Hsiangkai Wang2018-09-252-4/+42
| | | | | | | | | | | | | In some senario, LLVM will remove llvm.dbg.labels in IR. For example, when the labels are in unreachable blocks, these labels will not be generated in LLVM IR. In the case, these debug labels will have address zero as their address. It is not legal address for debugger to set breakpoints or query sources. So, the patch inhibits the address info (DW_AT_low_pc) of removed labels. Differential Revision: https://reviews.llvm.org/D51908 llvm-svn: 342943
* [MachineCopyPropagation] Reimplement CopyTracker in terms of register unitsJustin Bogner2018-09-251-54/+58
| | | | | | | | | | | | Change the copy tracker to keep a single map of register units instead of 3 maps of registers. This gives a very significant compile time performance improvement to the pass. I measured a 30-40% decrease in time spent in MCP on x86 and AArch64 and much more significant improvements on out of tree targets with more registers. Differential Revision: https://reviews.llvm.org/D52374 llvm-svn: 342942
* Revert "[ORC] Switch to asynchronous resolution in JITSymbolResolver."Lang Hames2018-09-2510-152/+92
| | | | | | | | | This reverts commit r342939. MSVC's promise/future implementation does not like types that are not default constructible. Reverting while I figure out a solution. llvm-svn: 342941
* [MachineCopyPropagation] Rework how we manage RegMask clobbersJustin Bogner2018-09-251-35/+23
| | | | | | | | | | | | | | | | Instead of updating the CopyTracker's maps each time we come across a RegMask, defer checking for this kind of interference until we're actually trying to propagate a copy. This avoids the need to repeatedly iterate over maps in the cases where we don't end up doing any work. This is a slight compile time improvement for MachineCopyPropagation as is, but it also enables a much bigger improvement that I'll follow up with soon. Differential Revision: https://reviews.llvm.org/D52370 llvm-svn: 342940
* [ORC] Switch to asynchronous resolution in JITSymbolResolver.Lang Hames2018-09-2510-92/+152
| | | | | | | | | | | | | | | | | | | Asynchronous resolution (where the caller receives a callback once the requested set of symbols are resolved) is a core part of the new concurrent ORC APIs. This change extends the asynchronous resolution model down to RuntimeDyld, which is necessary to prevent deadlocks when compiling/linking on a fixed number of threads: If RuntimeDyld's linking process were a blocking operation, then any complete K-graph in a program will require at least K threads to link in the worst case, as each thread would block waiting for all the others to complete. Using callbacks instead allows the work to be passed between dependent threads until it is complete. For backwards compatibility, all existing RuntimeDyld functions will continue to operate in blocking mode as before. This change will enable the introduction of a new async finalization process in a subsequent patch to enable asynchronous JIT linking. llvm-svn: 342939
* Revert r342936 "Remove redundant null pointer check in operator delete"Louis Dionne2018-09-251-3/+5
| | | | | | | | A review for the change was opened in https://reviews.llvm.org/D52401 but the change was committed before being approved by any of the code owners for libc++. llvm-svn: 342938
* [WebAssembly] SIMD sqrtThomas Lively2018-09-253-0/+39
| | | | | | | | | | Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52387 llvm-svn: 342937
* Remove redundant null pointer check in operator deleteFangrui Song2018-09-251-5/+3
| | | | | | | | | | | | | | | | | | | | C89 4.10.3.2 The free function C99 7.20.3.2 The free function C11 7.22.3.3 The free function If ptr is a null pointer, no action shall occur. _aligned_free on MSDN: If memblock is a NULL pointer, this function simply performs no actions. Reviewers: EricWF, mclow.lists Subscribers: christof, ldionne, cfe-commits, libcxx-commits Differential Revision: https://reviews.llvm.org/D52401 llvm-svn: 342936
* [AMDGPU] Remove useless check from test. NFC.Stanislav Mekhanoshin2018-09-251-1/+0
| | | | | | | The check for assignment of zero is practically useless while the assignment moves around with different scheduling. llvm-svn: 342935
* [X86] Don't create FILD ISD nodes when X87 is disabled.Craig Topper2018-09-252-1/+28
| | | | | | | | The included test case previously asserted because the type legalizer tried to soften the FILD ISD node. Fixes PR38819. llvm-svn: 342934
* [X86] Remove superfluous curly braces. NFCCraig Topper2018-09-251-2/+1
| | | | llvm-svn: 342933
* [X86] Update comment. Use 'glued' instead of 'flagged' NFCCraig Topper2018-09-251-1/+1
| | | | llvm-svn: 342932
* [WebAssembly] Move .debug_line section address of dead function outside ↵Yury Delendik2018-09-242-2/+47
| | | | | | | | | | | | | | | | | | | | | | section range Summary: Currently we are pointing all debug information that refer removed function code to the beginning of the code section (offset = 0). A debugger may want to resolve code offset to the debug information, which will collide with offsets of the live functions. Moving offsets of dead functions outside code section range. Reviewers: sbc100 Reviewed By: sbc100 Subscribers: dblaikie, ruiu, alexcrichton, dschuff, aprantl, jgravelle-google, aheejin, sunfish, JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D49446 llvm-svn: 342930
* Driver: render arguments for the embedded bitcode correctlySaleem Abdulrasool2018-09-243-14/+161
| | | | | | | | | | When embedding bitcode, only a subset of the arguments should be recorded into the bitcode compilation commandline. The frontend job is split into two jobs, one which will generate the bitcode. Ensure that the arguments for the compilation to bitcode is properly stripped so that the embedded arguments are the permitted subset. llvm-svn: 342929
* [WebAssembly][NFC] Fix hardcoded stack indices in testsThomas Lively2018-09-241-4/+4
| | | | | | | | | | Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52388 llvm-svn: 342928
* [www] Change 'Clang 7' items from yellow to green now Clang 7 isRichard Smith2018-09-243-14/+11
| | | | | | released. llvm-svn: 342927
* [www] Update cxx_status to mark P0962R1 as done.Richard Smith2018-09-241-1/+1
| | | | llvm-svn: 342926
* P0962R1: only use the member form of 'begin' and 'end' in a range-basedRichard Smith2018-09-244-58/+157
| | | | | | | | | | for loop if both members exist. This resolves a DR whereby an errant 'begin' or 'end' member in a base class could result in a derived class not being usable as a range with non-member 'begin' and 'end'. llvm-svn: 342925
* [CUDA] Added basic support for compiling with CUDA-10.0Artem Belevich2018-09-246-3/+36
| | | | llvm-svn: 342924
* [hwasan] Record and display stack history in stack-based reports.Evgeniy Stepanov2018-09-2421-228/+908
| | | | | | | | | | | | | | | | | | | | | Summary: Display a list of recent stack frames (not a stack trace!) when tag-mismatch is detected on a stack address. The implementation uses alignment tricks to get both the address of the history buffer, and the base address of the shadow with a single 8-byte load. See the comment in hwasan_thread_list.h for more details. Developed in collaboration with Kostya Serebryany. Reviewers: kcc Subscribers: srhines, kubamracek, mgorny, hiraditya, jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D52249 llvm-svn: 342923
* Revert "[hwasan] Record and display stack history in stack-based reports."Evgeniy Stepanov2018-09-2421-908/+228
| | | | | | This reverts commit r342921: test failures on clang-cmake-arm* bots. llvm-svn: 342922
OpenPOWER on IntegriCloud