summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add missing include.Zachary Turner2018-09-211-0/+1
| | | | llvm-svn: 342781
* [NativePDB] Add support for reading function signatures.Zachary Turner2018-09-2119-49/+1338
| | | | | | | This adds support for parsing function signature records and returning them through the native DIA interface. llvm-svn: 342780
* [PDB] Add native reading support for UDT / class types.Zachary Turner2018-09-2119-142/+1087
| | | | | | | | | | | | This allows the native reader to find records of class/struct/ union type and dump them. This behavior is tested by using the diadump subcommand against golden output produced by actual DIA SDK on the same PDB file, and again using pretty -native to confirm that we actually dump the classes. We don't find class members or anything like that yet, for now it's just the class itself. llvm-svn: 342779
* [New PM][PassInstrumentation] Adding PassInstrumentation to the ↵Fedor Sergeev2018-09-215-6/+125
| | | | | | | | | | | | | | | AnalysisManager runs As a prerequisite to time-passes implementation which needs to time both passes and analyses, adding instrumentation points to the Analysis Manager. The are two functional differences between Pass and Analysis instrumentation: - the latter does not increment pass execution counter - it does not provide ability to skip execution of the corresponding analysis Reviewers: chandlerc, philip.pfaffe Differential Revision: https://reviews.llvm.org/D51275 llvm-svn: 342778
* [COFF] Support linking to import libraries from GNU binutilsMartin Storsjo2018-09-219-52/+279
| | | | | | | | | | | | | | | | | | | | | | | | GNU binutils import libraries aren't the same kind of short import libraries as link.exe and LLD produce, but are a plain static library containing .idata section chunks. MSVC link.exe can successfully link to them. In order for imports from GNU import libraries to mix properly with the normal import chunks, the chunks from the existing mechanism needs to be added into named sections like .idata$2. These GNU import libraries consist of one header object, a number of object files, one for each imported function/variable, and one trailer. Within the import libraries, the object files are ordered alphabetically in this order. The chunks stemming from these libraries have to be grouped by what library they originate from and sorted, to make sure the section chunks for headers and trailers for the lists are ordered as intended. This is done on all sections named .idata$*, before adding the synthesized chunks to them. Differential Revision: https://reviews.llvm.org/D38513 llvm-svn: 342777
* llvm-dwarfdump --statistics: Unique abstract origins across multiple CUs.Adrian Prantl2018-09-213-23/+424
| | | | | | | | Instead of indexing local variables by DIE offset, use the variable name + the path through the lexical block tree. This makes the lookup key consistent across duplicate abstract origins in different CUs. llvm-svn: 342776
* [x86] add more tests for poetntial andnp splitting with AVX1; NFCSanjay Patel2018-09-211-3/+54
| | | | llvm-svn: 342775
* Make compare function in r342648 have strict weak ordering.Richard Trieu2018-09-211-2/+9
| | | | | | | Comparison functions used in sorting algorithms need to have strict weak ordering. Remove the assert and allow comparisons on all lists. llvm-svn: 342774
* [X86] Add AVX512 target to load scalar to vector testsSimon Pilgrim2018-09-211-0/+1
| | | | | | To investigate broadcast instruction codegen for D51553 llvm-svn: 342773
* [WebAssembly] Simplified selecting asmmatcher stack instructions.Wouter van Oortmerssen2018-09-213-10/+3
| | | | | | | | | | | | | | | | Summary: By using the existing isCodeGenOnly bit in the tablegen defs, as suggested by tlively in https://reviews.llvm.org/D51662 Tested: llvm-lit -v `find test -name WebAssembly` Reviewers: tlively Subscribers: dschuff, sbc100, jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52373 llvm-svn: 342772
* Test commit. Removed a blank line.Jorge Gorbe Moya2018-09-211-1/+0
| | | | llvm-svn: 342771
* [analyzer] Process state in checkEndFunction in RetainCountCheckerGeorge Karpenkov2018-09-215-299/+65
| | | | | | | | | | | | | | Modify the RetainCountChecker to perform state "adjustments" in checkEndFunction, as performing work in PreStmt<ReturnStmt> does not work with destructors. The previous version made an implicit assumption that no code runs after the return statement is executed. rdar://43945028 Differential Revision: https://reviews.llvm.org/D52338 llvm-svn: 342770
* [analyzer] Highlight sink nodes in redGeorge Karpenkov2018-09-211-0/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D52337 llvm-svn: 342769
* [analyzer] Associate diagnostics created in checkEndFunction with a return ↵George Karpenkov2018-09-216-14/+55
| | | | | | | | | | statement, if possible If not possible, use the last line of the declaration, as before. Differential Revision: https://reviews.llvm.org/D52326 llvm-svn: 342768
* [analyzer] [NFC] Prefer make_unique over "new"George Karpenkov2018-09-211-14/+11
| | | | | | Differential Revision: https://reviews.llvm.org/D52336 llvm-svn: 342767
* [analyzer] Fix bug in isInevitablySinkingGeorge Karpenkov2018-09-211-8/+7
| | | | | | | | | | | | If the non-sink report is generated at the exit node, it will be suppressed by the current functionality in isInevitablySinking, as it only checks the successors of the block, but not the block itself. The bug shows up in RetainCountChecker checks. Differential Revision: https://reviews.llvm.org/D52284 llvm-svn: 342766
* [analyzer] [NFC] Dead code removalGeorge Karpenkov2018-09-215-27/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D52269 llvm-svn: 342765
* [libc++abi] is_strcmp parameter to is_equal is unused for WIN32Pirama Arumuga Nainar2018-09-211-0/+1
| | | | | | | | | | | | Summary: Mark it as unused to avoid -Wunused-parameter. Reviewers: EricWF, srhines, mstorsjo Subscribers: christof, ldionne, libcxx-commits, cfe-commits Differential Revision: https://reviews.llvm.org/D52368 llvm-svn: 342764
* SafeStack: Fix flaky test (PR39001)Vlad Tsyrklevich2018-09-211-8/+16
| | | | | | | | | | | | | | | | | | | | Summary: pthread_join() can return before a thread finishes exit()ing in the kernel and a subsequent tgkill() can report the thread still alive. Update the pthread-cleanup.c test to sleep and retry if it hits this possible flake. Thanks to Jeremy Morse for reporting. Reviewers: jmorse, eugenis, vitalybuka Reviewed By: jmorse, vitalybuka Subscribers: delcypher, jfb, llvm-commits, #sanitizers, kcc Differential Revision: https://reviews.llvm.org/D52330 llvm-svn: 342763
* Move architecture-specific address adjustment to architecture pluginsTatyana Krasnukha2018-09-218-236/+393
| | | | | | Differential Revision: https://reviews.llvm.org/D48623 llvm-svn: 342762
* [WebAssembly][NFC] Rename simd-conversions test to simd-bitcastsThomas Lively2018-09-211-0/+0
| | | | | | | | | | | | | | Summary: This name is more accurate and I want to reuse the simd-conversions name for testing the actual conversion ops. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52333 llvm-svn: 342761
* Pass code-model through Module IR to LTO which will use it.Caroline Tice2018-09-217-1/+114
| | | | | | | | | | | Currently the code-model does not get saved in the module IR, so if a code model is specified when compiling with LTO, it gets lost and is not propagated properly to LTO. This patch, along with one for the front end, fixes that. Differential Revision: https://reviews.llvm.org/D52322 llvm-svn: 342760
* [NFC] use bit_cast in PointerSumTypeJF Bastien2018-09-211-3/+2
| | | | | | The code was already using union and memcpy to do this. Remove the memcpy. We can't just change the union because a reference to its member is returned. llvm-svn: 342759
* Add necessary support for storing code-model to module IR.Caroline Tice2018-09-212-0/+34
| | | | | | | | | | | | Currently the code-model does not get saved in the module IR, so if a code model is specified when compiling with LTO, it gets lost and is not propagated properly to LTO. This patch does what is necessary in the front end to pass the code-model to the module, so that the back end can store it in the Module . Differential Revision: https://reviews.llvm.org/D52323 llvm-svn: 342758
* build: add libedit to include pathsTatyana Krasnukha2018-09-213-0/+12
| | | | | | Differential Revision: https://reviews.llvm.org/D51999 llvm-svn: 342757
* [x86] add (negative) andnp test for D52318; NFCSanjay Patel2018-09-211-0/+22
| | | | llvm-svn: 342756
* [x86] add test with optsize attribute for scalar->vector transform; NFCSanjay Patel2018-09-211-0/+20
| | | | llvm-svn: 342755
* Update release notes.Rui Ueyama2018-09-211-1/+9
| | | | llvm-svn: 342754
* [WebAssembly] Made assembler only use stack instruction tablegen defsWouter van Oortmerssen2018-09-212-2/+12
| | | | | | | | | | | | | | | | | | | Summary: This ensures we have the non-register version of the instruction. The stack version of call_indirect now wants a type index argument, so that has been added in the existing tests. Tested: llvm-lit -v `find test -name WebAssembly` Reviewers: dschuff Subscribers: sbc100, jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D51662 llvm-svn: 342753
* [CUDA] Fixed parsing of optional template-argument-list.Artem Belevich2018-09-213-3/+11
| | | | | | | | | We need to consider all tokens that start with '>' when we're checking for the end of an empty template argument list. Differential Revision: https://reviews.llvm.org/D52321 llvm-svn: 342752
* [Hexagon] Avoid functions with exception handling in HexagonConstExtendersKrzysztof Parzyszek2018-09-211-0/+5
| | | | | | | The constant-extender optimization does a form of code motion, which is complicated in the presence of exception handling. llvm-svn: 342751
* [NFC] remove unused variableJF Bastien2018-09-211-1/+0
| | | | | | It was causing a warning. llvm-svn: 342750
* [CUDA] Ignore uncallable functions when we check for usual deallocators.Artem Belevich2018-09-218-17/+279
| | | | | | | | | Previously clang considered function variants from both sides of compilation and that resulted in picking up wrong deallocation function. Differential Revision: https://reviews.llvm.org/D51808 llvm-svn: 342749
* Update release notes.Rui Ueyama2018-09-211-2/+6
| | | | llvm-svn: 342748
* [sanitizer] Move __sanitizer_set_death_callback to a more appropriate fileKostya Kortchinsky2018-09-212-5/+9
| | | | | | | | | | | | | | | | | | Summary: `__sanitizer_set_death_callback` is a public interface function wrapping `SetUserDieCallback`. Said function is defined in `sanitizer_termination.cc`, which is not included in all the RT. Moving the interface function to that file allows to not have a spurious public fuinction in RT that don't use it. Reviewers: eugenis Reviewed By: eugenis Subscribers: kubamracek, delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D52363 llvm-svn: 342747
* Align AArch64 and i386 image base to superpageDimitry Andric2018-09-2150-825/+833
| | | | | | | | | | | | | | | | | | | Summary: As for x86_64, the default image base for AArch64 and i386 should be aligned to a superpage appropriate for the architecture. On AArch64, this is 2 MiB, on i386 it is 4 MiB. Reviewers: emaste, grimar, javed.absar, espindola, ruiu, peter.smith, srhines, rprichard Reviewed By: ruiu, peter.smith Subscribers: jfb, markj, arichardson, krytarowski, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D50297 llvm-svn: 342746
* [XRay][compiler-rt] Update use of internal_mmapDean Michael Berris2018-09-214-36/+41
| | | | | | | | | | | | | | | | | | | | | | | | Summary: The implementation of `internal_mmap(...)` deviates from the contract of `mmap(...)` -- i.e. error returns are actually the equivalent of `errno` results. We update how XRay uses `internal_mmap(...)` to better handle these error conditions. In the process, we change the default pointers we're using from `char*` to `uint8_t*` to prevent potential usage of the pointers in the string library functions that expect to operate on `char*`. We also take the chance to "promote" sizes of individual `internal_mmap` requests to at least page size bytes, consistent with the expectations of calls to `mmap`. Reviewers: cryptoad, mboerger Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52361 llvm-svn: 342745
* [tblgen] Fix undefined behaviour when assigning integers to large bits<n>'sDaniel Sanders2018-09-211-1/+1
| | | | | | | | | | | | | | | | | | This code: bits<96> X = 0; was triggering undefined behaviour since it iterates over bits 0..95 and tests them against the IntInit using 1LL << I. This patch resolves the undefined behaviour by continuing to treat the IntInit as a 64-bit value and simply causing all bit tests in excess of 64-bits to report false. As a result, bits<96> X = -1; will be equivalent to: bits<96> X; let X{0-63} = -1; let X{64-95} = 0; llvm-svn: 342744
* revert changes from r342722Sameer Sahasrabuddhe2018-09-213-67/+0
| | | | | | | | | "[AMDGPU] lower-switch in preISel as a workaround for legacy DA" This broke regression tests. The first breakage was noticed here: http://lab.llvm.org:8011/builders/lld-x86_64-freebsd/builds/23549 llvm-svn: 342743
* AArch64FastISel: Abort if we failed to select operand of intrinsicMatthias Braun2018-09-211-0/+3
| | | | | | | | rdar://44642447 Differential Revision: https://reviews.llvm.org/D52335 llvm-svn: 342742
* [OPENMP] Disable emission of the class with vptr if they are not used inAlexey Bataev2018-09-212-1/+12
| | | | | | | | | target constructs. Prevent compilation of the classes with the virtual tables when compiling for the device. llvm-svn: 342741
* [InstCombine] add tests for extractelement; NFCSanjay Patel2018-09-211-0/+28
| | | | | | | There are folds under visitExtractElementInst() that don't appear to have any test coverage, so adding a few basic cases here. llvm-svn: 342740
* [ADT] restrict bit_cast to trivially-constructible ToJF Bastien2018-09-211-11/+14
| | | | | | | | | | | | | | Summary: As discussed in r341853 by blaikie, the reinterpret_cast was technically an aliasing violation. Restrict our bit_cast implementation to To which are trivially-constructible (and note the existing restriction to constexpr). Once we move to C++17 we can use a version of bit_cast without these restrictions, or if we care we can SFINAE a different implementation when To isn't trivially-constructible. Originally landed in r342710 and reverted in r342711 because is_trivially_copyable is only in GCC 5.1 and later. Reviewers: dblaikie, rsmith Subscribers: dexonsmith, kristina, llvm-commits Differential Revision: https://reviews.llvm.org/D52332 llvm-svn: 342739
* [OPENMP][NVPTX] Enable support for lastprivates in SPMD constructs.Alexey Bataev2018-09-215-101/+157
| | | | | | | Previously we could not use lastprivates in SPMD constructs, patch allows supporting lastprivates in SPMD with uninitialized runtime. llvm-svn: 342738
* [OPENMP][NVPTX] Add support for lastprivates/reductions handling in SPMD ↵Alexey Bataev2018-09-216-1/+74
| | | | | | | | | | | | | | | | | | | constructs with lightweight runtime. Summary: We need the support for per-team shared variables to support codegen for lastprivates/reductions. Patch adds this support by using shared memory if the total size of the reductions/lastprivates is <= 128 bytes, then pre-allocated buffer in global memory if size is <= 4K bytes,or uses malloc/free, otherwise. Reviewers: gtbercea, kkwli0, grokos Subscribers: guansong, openmp-commits Differential Revision: https://reviews.llvm.org/D51875 llvm-svn: 342737
* [X86][Sched] Add zero idiom sched data to the SNB model.Clement Courbet2018-09-215-38/+436
| | | | | | | | | | | | | | | | | | | | Summary: On SNB, renamer-based zeroing does not work for: - 16 and 8-bit GPRs[1]. - MMX [2]. - ANDN variants [3] [1] echo 'sub %ax, %ax' | /tmp/llvm-exegesis -mode=uops -snippets-file=- [2] echo 'pxor %mm0, %mm0' | /tmp/llvm-exegesis -mode=uops -snippets-file=- [3] echo 'andnps %xmm0, %xmm0' | /tmp/llvm-exegesis -mode=uops -snippets-file=- Reviewers: RKSimon, andreadb Subscribers: gbedwell, craig.topper, llvm-commits Differential Revision: https://reviews.llvm.org/D52358 llvm-svn: 342736
* [AST][NFC] DeclarationName.h : add missing parentheses to silence warningsBruno Ricci2018-09-211-5/+5
| | | | | | | Some bots are complaining about missing parentheses in assertions added in r342729: [AST] Various optimizations + refactoring in DeclarationName(Table) llvm-svn: 342735
* NFC: deduplicate isRepeatedBytePattern from clang to LLVM's isBytewiseValueJF Bastien2018-09-211-101/+13
| | | | | | | | | | | | | Summary: This code was in CGDecl.cpp and really belongs in LLVM. It happened to have isBytewiseValue which served a very similar purpose but wasn't as powerful as clang's version. Remove the clang version, and augment isBytewiseValue to be as powerful so that clang does the same thing it used to. LLVM part of this patch: D51751 Subscribers: dexonsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D51752 llvm-svn: 342734
* Add dependency on llc required by find-variable-dwo testTatyana Krasnukha2018-09-211-0/+1
| | | | llvm-svn: 342733
* Skip test if gcc version is less than 7.1 since it doesn't support ↵Tatyana Krasnukha2018-09-211-0/+4
| | | | | | -gcolumn-info option llvm-svn: 342732
OpenPOWER on IntegriCloud