summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "[coroutines][PR40978] Emit error for co_yield within catch block"Brian Gesiak2019-03-226-119/+25
| | | | | | | | The commit https://reviews.llvm.org/rC356296 is causing a regression in nested catch scopes, https://bugs.llvm.org/show_bug.cgi?id=41171. Revert this change for now in order to un-break that problem report. llvm-svn: 356774
* Revert "Move the rest of the sections over to DWARFContext."Pavel Labath2019-03-2217-327/+270
| | | | | | | | | | This reverts commit r356682 because it breaks the DWO flavours of some tests: lldb-Suite :: lang/c/const_variables/TestConstVariables.py lldb-Suite :: lang/c/local_variables/TestLocalVariables.py lldb-Suite :: lang/c/vla/TestVLA.py llvm-svn: 356773
* gn build: Merge r356750Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356772
* gn build: Merge r356570Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356771
* gn build: Merge r356662Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356770
* gn build: Merge r356692Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356769
* InstCombineSimplifyDemanded: Allow v3 results for AMDGCN buffer and image ↵Tim Renouf2019-03-222-50/+37
| | | | | | | | | | | | | intrinsics This helps to avoid the situation where RA spots that only 3 of the v4f32 result of a load are used, and immediately reallocates the 4th register for something else, requiring a stall waiting for the load. Differential Revision: https://reviews.llvm.org/D58906 Change-Id: I947661edfd5715f62361a02b100f14aeeada29aa llvm-svn: 356768
* gn build: Merge r356753Nico Weber2019-03-223-0/+5
| | | | llvm-svn: 356767
* gn build: Merge r356652 (and follow-up r56655)Nico Weber2019-03-223-0/+5
| | | | llvm-svn: 356766
* gn build: Merge r356729Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356765
* [llvm-readobj] Separate `Symbol Version` dumpers into `LLVM style` and `GNU ↵Xing GUO2019-03-225-203/+289
| | | | | | | | | | | | | | | | | | | | style` Summary: Currently, llvm-readobj can dump symbol version sections only in LLVM style. In this patch, I would like to separate these dumpers into GNU style and LLVM style for future implementation. Reviewers: grimar, jhenderson, mattd, rupprecht Reviewed By: rupprecht Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59186 llvm-svn: 356764
* [x86] auto-generate complete test checks; NFCSanjay Patel2019-03-221-9/+34
| | | | llvm-svn: 356763
* [x86] auto-generate complete test checks; NFCSanjay Patel2019-03-221-9/+30
| | | | llvm-svn: 356762
* [x86] add 'nounwind' to tests to reduce noise; NFCSanjay Patel2019-03-221-8/+8
| | | | llvm-svn: 356761
* [x86] auto-generate complete checks for test; NFCSanjay Patel2019-03-221-16/+32
| | | | llvm-svn: 356760
* [OPENMP]Add missing comment, NFC.Alexey Bataev2019-03-221-0/+4
| | | | llvm-svn: 356759
* [OPENMP]Allow no allocator clause in target regions with requiresAlexey Bataev2019-03-222-8/+24
| | | | | | | | | | | | dynamic_allocators. According to the OpenMP 5.0, 2.11.3 allocate Directive, Restrictions, allocate directives that appear in a target region must specify an allocator clause unless a requires directive with the dynamic_allocators clause is present in the same compilation unit. Patch adds a check for a presence of the requires directive with the dynamic_allocators clause. llvm-svn: 356758
* [AMDGPU] Use three- and five-dword result type in image opsTim Renouf2019-03-225-33/+30
| | | | | | | | | | | | | | | | Some image ops return three or five dwords. Previously, we modeled that with a 4 or 8 dword register class. The register allocator could cleverly spot that some subregs were dead and allocate something else there, but that caused the de-optimization that waitcnt insertion would think that the result was used immediately. This commit allows such an image op to have a result with a three or five dword result, avoiding the above de-optimization. Differential Revision: https://reviews.llvm.org/D58905 Change-Id: I3651211bbd7ed22721ee7b9fefd7bcc60a809d8b llvm-svn: 356757
* [clang-tidy] Fix a compiler warning.Alexander Kornienko2019-03-222-12/+12
| | | | | | | | | | Rename the Preprocessor field to fix the declaration of ‘std::unique_ptr<clang::Preprocessor> clang::tooling::ExpandModularHeadersPPCallbacks::Preprocessor’ changes the meaning of ‘Preprocessor’ from ‘class clang::Preprocessor’ [-fpermissive] warning. llvm-svn: 356756
* [AMDGPU] Implemented dwordx3 variants of buffer/tbuffer load/store intrinsicsTim Renouf2019-03-2211-27/+259
| | | | | | | | | | | | | | | Now we have vec3 MVTs, this commit implements dwordx3 variants of the buffer intrinsics. On gfx6, a dwordx3 buffer load intrinsic is implemented as a dwordx4 instruction, and a dwordx3 buffer store intrinsic is not supported. We need to support the dwordx3 load intrinsic because it is generated by subtarget-unaware code in InstCombine. Differential Revision: https://reviews.llvm.org/D58904 Change-Id: I016729d8557b98a52f529638ae97c340a5922a4e llvm-svn: 356755
* [SLPVectorizer] Add test related to SLP Throttling support, NFCI.Dinar Temirbulatov2019-03-221-0/+37
| | | | llvm-svn: 356754
* [ObjectYAML] Add basic minidump generation supportPavel Labath2019-03-2217-0/+795
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds the ability to read a yaml form of a minidump file and write it out as binary. Apart from the minidump header and the stream directory, only three basic stream kinds are supported: - Text: This kind is used for streams which contain textual data. This is typically the contents of a /proc file on linux (e.g. /proc/PID/maps). In this case, we just put the raw stream contents into the yaml. - SystemInfo: This stream contains various bits of information about the host system in binary form. We expose the data in a structured form. - Raw: This kind is used as a fallback when we don't have any special knowledge about the stream. In this case, we just print the stream contents in hex. For this code to be really useful, more stream kinds will need to be added (particularly for things like lists of memory regions and loaded modules). However, these can be added incrementally. Reviewers: jhenderson, zturner, clayborg, aprantl Subscribers: mgorny, lemo, llvm-commits, lldb-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59482 llvm-svn: 356753
* [OPENMP]Emit error message for allocate directive without allocatorAlexey Bataev2019-03-224-2/+89
| | | | | | | | | | | clause in target region. According to the OpenMP 5.0, 2.11.3 allocate Directive, Restrictions, allocate directives that appear in a target region must specify an allocator clause unless a requires directive with the dynamic_allocators clause is present in the same compilation unit. llvm-svn: 356752
* Extend r356573 (minidump UUID handling) to cover elf build-ids tooPavel Labath2019-03-223-1/+14
| | | | | | | | Breakpad (but not crashpad) will insert an empty (all-zero) build-id record for modules which do not have a build-id. This tells lldb to treat such records as empty/invalid uuids. llvm-svn: 356751
* [clang-tidy] Expand modular headers for PPCallbacksAlexander Kornienko2019-03-2214-24/+544
| | | | | | | | | | | | | | | | | | | | | | Summary: Add a way to expand modular headers for PPCallbacks. Checks can opt-in for this expansion by overriding the new registerPPCallbacks virtual method and registering their PPCallbacks in the preprocessor created for this specific purpose. Use module expansion in the readability-identifier-naming check Reviewers: gribozavr, usaxena95, sammccall Reviewed By: gribozavr Subscribers: nemanjai, mgorny, xazax.hun, kbarton, jdoerfert, cfe-commits Tags: #clang, #clang-tools-extra Differential Revision: https://reviews.llvm.org/D59528 llvm-svn: 356750
* [AST] OMPStructuredBlockTest: avoid using multiline string literals in macrosRoman Lebedev2019-03-221-7/+9
| | | | | | | | | | That is what i have been doing elsewhere in these tests, maybe that's it? Maybe this helps with failing builds: http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/17921 http://lab.llvm.org:8011/builders/clang-cmake-aarch64-global-isel/builds/10248 llvm-svn: 356749
* [llvm-exegesis] Fix compilation before c++17.Clement Courbet2019-03-221-1/+1
| | | | | | | ClusteringTest.cpp:25:23: error: constexpr variable cannot have non-literal type 'const llvm::exegesis::(anonymous namespace)::(lambda at /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/unittests/tools/llvm-exegesis/ClusteringTest.cpp:25:35)' static constexpr auto HasPoints = [](const std::vector<int> &Indices) { llvm-svn: 356748
* [llvm-exegesis] Add clustering test.Clement Courbet2019-03-221-5/+37
| | | | | | | | | | | | Summary: To show that dbscan is insensitive to the order of the points. Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59693 llvm-svn: 356747
* [llvm-objcopy]Add coverage for --split-dwo and --output-formatJames Henderson2019-03-221-17/+37
| | | | | | | | | | | | Also fix up a couple of minor issues in the test being updated, where FileCheck could match on incorrect output and fix the test case order to match the struct order. Reviewed by: grimar Differential Revision: https://reviews.llvm.org/D59691 llvm-svn: 356746
* Revert r356738 "[llvm-objcopy] - Implement replaceSectionReferences for ↵George Rimar2019-03-224-81/+0
| | | | | | | | | GroupSection class." Seems this broke ubsan bot: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-ubsan/builds/11760 llvm-svn: 356745
* [RISCV] Add basic RV32E definitions and MC layer supportAlex Bradbury2019-03-2216-15/+333
| | | | | | | | | | | | | | | | | | | | | The RISC-V ISA defines RV32E as an alternative "base" instruction set encoding, that differs from RV32I by having only 16 rather than 32 registers. This patch adds basic definitions for RV32E as well as MC layer support (assembling, disassembling) and tests. The only supported ABI on RV32E is ILP32E. Add a new RISCVFeatures::validate() helper to RISCVUtils which can be called from codegen or MC layer libraries to validate the combination of TargetTriple and FeatureBitSet. Other targets have similar checks (e.g. erroring if SPE is enabled on PPC64 or oddspreg + o32 ABI on Mips), but they either duplicate the checks (Mips), or fail to check for both codegen and MC codepaths (PPC). Codegen for the ILP32E ABI support and RV32E codegen are left for a future patch/patches. Differential Revision: https://reviews.llvm.org/D59470 llvm-svn: 356744
* [Tooling] Avoid working-dir races in AllTUsToolExecutorIlya Biryukov2019-03-221-14/+7
| | | | | | | | | | | | | | Reviewers: ioeric Reviewed By: ioeric Subscribers: jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D59683 llvm-svn: 356743
* [ARM] Add Cortex-M35P SupportLuke Cheeseman2019-03-221-2/+4
| | | | | | | | - Add clang frontend testing for Cortex-M35P Differential Revision: https://reviews.llvm.org/D57765 llvm-svn: 356742
* [RISCV] Optimize emission of SELECT sequencesAlex Bradbury2019-03-224-417/+804
| | | | | | | | | | | | | | | | | | | This patch optimizes the emission of a sequence of SELECTs with the same condition, avoiding the insertion of unnecessary control flow. Such a sequence often occurs when a SELECT of values wider than XLEN is legalized into two SELECTs with legal types. We have identified several use cases where the SELECTs could be interleaved with other instructions. Therefore, we extend the sequence to include non-SELECT instructions if we are able to detect that the non-SELECT instructions do not impact the optimization. This patch supersedes https://reviews.llvm.org/D59096, which attempted to address this issue by introducing a new SelectionDAG node. Hat tip to Eli Friedman for his feedback on how to best handle this issue. Differential Revision: https://reviews.llvm.org/D59355 Patch by Luís Marques. llvm-svn: 356741
* [RISCV] Allow conversion of CC logic to bitwise logicAlex Bradbury2019-03-222-0/+134
| | | | | | | | | | | | | Indicates in the TargetLowering interface that conversions from CC logic to bitwise logic are allowed. Adds tests that show the benefit when optimization opportunities are detected. Also adds tests that show that when the optimization is not applied correct code is generated (but opportunities for other optimizations remain). Differential Revision: https://reviews.llvm.org/D59596 Patch by Luís Marques. llvm-svn: 356740
* [llvm-objcopy] - Fix a st_name of the first symbol table entry.George Rimar2019-03-222-0/+54
| | | | | | | | | | | | | | | | | | | | Spec says about the first symbol table entry that index 0 both designates the first entry in the table and serves as the undefined symbol index. It should have zero value. Hence the first symbol table entry has no name. And so has to have a st_name == 0. (http://refspecs.linuxbase.org/elf/gabi4+/ch4.symtab.html) Currently, we do not emit zero value for the first symbol table entry. That happens because we add empty strings to the string builder, which for each such case adds a zero byte: (https://github.com/llvm-mirror/llvm/blob/master/lib/MC/StringTableBuilder.cpp#L185) After the string optimization performed it might return non zero indexes for the empty string requested. The patch fixes this issue for the case above and other sections with no names. Differential revision: https://reviews.llvm.org/D59496 llvm-svn: 356739
* [llvm-objcopy] - Implement replaceSectionReferences for GroupSection class.George Rimar2019-03-224-0/+81
| | | | | | | | | | | | Currently, llvm-objcopy incorrectly handles compression and decompression of the sections from COMDAT groups, because we do not implement the replaceSectionReferences for this type of the sections. The patch does that. Differential revision: https://reviews.llvm.org/D59638 llvm-svn: 356738
* [llvm-objcopy]Add support for *-freebsd output formatsJames Henderson2019-03-225-22/+46
| | | | | | | | | | | | | | GNU objcopy can support output formats like elf32-i386-freebsd and elf64-x86-64-freebsd. The only difference from their regular non-freebsd counterparts that I have observed is that the freebsd versions set the OS/ABI field to ELFOSABI_FREEBSD. This patch sets the OS/ABI field according based on the format whenever --output-format is specified. Reviewed by: rupprecht, grimar Differential Revision: https://reviews.llvm.org/D59645 llvm-svn: 356737
* [RISCV][NFC] Add test case to MC/RISCV/linker-relaxation.s showing incorrect ↵Alex Bradbury2019-03-221-12/+28
| | | | | | | | relocations being emitted A follow-up patch will fix this case. llvm-svn: 356736
* [AMDGPU] Added v5i32 and v5f32 register classesTim Renouf2019-03-2212-4/+221
| | | | | | | | | | They are not used by anything yet, but a subsequent commit will start using them for image ops that return 5 dwords. Differential Revision: https://reviews.llvm.org/D58903 Change-Id: I63e1904081e39a6d66e4eb96d51df25ad399d271 llvm-svn: 356735
* [RISCV][NFC] Expand test/MC/RISCV/linker-relaxation.s testsAlex Bradbury2019-03-221-5/+62
| | | | | | | | | | Add more complete CHECK lines for the relocations generated when relaxation is enabled, and add cases where a locally defined symbol is referenced. Two instances of pcrel_lo(defined_symbol) are commented out, as they will produce an error. A follow-up patch will fix this. llvm-svn: 356734
* [X86] Add 32-bit command lines with and without SSE2 to ↵Craig Topper2019-03-221-79/+432
| | | | | | atomic-non-integer.ll. NFC llvm-svn: 356733
* [BPF] fix flaky btf unit test static-var-derived-type.llYonghong Song2019-03-221-66/+39
| | | | | | | | | | | | | | | | | The DataSecEentries is defined as an unordered_map since order does not really matter. std::unordered_map<std::string, std::unique_ptr<BTFKindDataSec>> DataSecEntries; This seems causing the test static-var-derived-type.ll flaky as two sections ".bss" and ".readonly" have undeterministic ordering when performing map iterating, which decides the output assembly code sequence of BTF_KIND_DATASEC entries. Fix the test to have only one data section to remove flakiness. Signed-off-by: Yonghong Song <yhs@fb.com> llvm-svn: 356731
* [DWARF] Refactor RelocVisitor and fix computation of SHT_RELA-typed ↵Fangrui Song2019-03-221-2/+24
| | | | | | | | | | | | | | | | | | relocation entries Summary: This is the lld-side change of D57939 Reviewers: echristo, dblaikie, ruiu, espindola Reviewed By: echristo, ruiu Subscribers: jdoerfert, emaste, arichardson, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57940 llvm-svn: 356730
* [DWARF] Refactor RelocVisitor and fix computation of SHT_RELA-typed ↵Fangrui Song2019-03-228-376/+564
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | relocation entries Summary: getRelocatedValue may compute incorrect value for SHT_RELA-typed relocation entries. // DWARFDataExtractor.cpp uint64_t DWARFDataExtractor::getRelocatedValue(uint32_t Size, uint32_t *Off, ... // This formula is correct for REL, but may be incorrect for RELA if the value // stored in the location (getUnsigned(Off, Size)) is not zero. return getUnsigned(Off, Size) + Rel->Value; In this patch, we * refactor these visit* functions to include a new parameter `uint64_t A`. Since these visit* functions are no longer used as visitors, rename them to resolve*. + REL: A is used as the addend. A is the value stored in the location where the relocation applies: getUnsigned(Off, Size) + RELA: The addend encoded in RelocationRef is used, e.g. getELFAddend(R) * and add another set of supports* functions to check if a given relocation type is handled. DWARFObjInMemory uses them to fail early. Reviewers: echristo, dblaikie Reviewed By: echristo Subscribers: mgorny, aprantl, aheejin, fedor.sergeev, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57939 llvm-svn: 356729
* [NFC][TSan][libdispatch] Don't use ignore_noninstrumented_modules on LinuxJulian Lettner2019-03-221-3/+0
| | | | llvm-svn: 356728
* [BPF] handle derived type properly for computing type idYonghong Song2019-03-2210-15/+206
| | | | | | | | | | | | | | | | | | Currently, the type id for a derived type is computed incorrectly. For example, type #1: int type #2: ptr to #1 For a global variable "int *a", type #1 will be attributed to variable "a". This is due to a bug which assigns the type id of the basetype of that derived type as the derived type's type id. This happens to "const", "volatile", "restrict", "typedef" and "pointer" types. This patch fixed this bug, fixed existing test cases and added a new one focusing on pointers plus other derived types. Signed-off-by: Yonghong Song <yhs@fb.com> llvm-svn: 356727
* Fix a vector test to not use a local type as a template parameter. This ↵Marshall Clow2019-03-221-7/+9
| | | | | | causes a warning on C++03. NFC llvm-svn: 356726
* [Reproducers] Fix log statementsJonas Devlieghere2019-03-211-3/+3
| | | | | | This isn't python where you can omit the index inside `{}`. llvm-svn: 356725
* This test assumes that -rtlib defaults to libgcc. But that isn't true in the ↵Sterling Augustine2019-03-211-7/+0
| | | | | | | | | | | | face of -DCLANG_DEFAULT_RTLIB=compiler-rt. Subscribers: dberris, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59674 llvm-svn: 356724
OpenPOWER on IntegriCloud