- Feb 19, 2020
-
-
Kerry McLaughlin authored
Summary: Implements the following intrinsics: - @llvm.aarch64.sve.eorbt - @llvm.aarch64.sve.eortb - @llvm.aarch64.sve.pmullb.pair - @llvm.aarch64.sve.pmullt.pair Reviewers: sdesmalen, c-rhodes, dancgr, cameron.mcinally, efriedma, rengolin Reviewed By: efriedma Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74769
-
Djordje Todorovic authored
Differential Revision: https://reviews.llvm.org/D73534
-
Tamas Petz authored
With this patch lld recognizes ARM SBREL relocations. R_ARM*_MOVW_BREL relocations are not tested because they are not used. Patch by Tamas Petz Differential Revision: https://reviews.llvm.org/D74604
-
Raphael Isemann authored
This should use -> instead of '.', but the fix-it functionality of the expression evaluator saved us here. Let's use the proper syntax in the first place as we don't want to test fix-its here.
-
Raphael Isemann authored
This directory escaped the modularization effort it seems. Just adding this to the Host module along with the other common headers, which should make this code less likely to break under modules and speed up compilation.
-
David Green authored
We already make use of the VADDV vector reduction instruction for cases where the input and the output start out at the same type. The MVE instruction however will sum into an i32, so if we are summing a v16i8 into an i32, we can still use the same instructions. In terms of IR, this looks like a sext of a legal type (v16i8) into a very illegal type (v16i32) and a vecreduce.add of that into the result. This means we have to catch the pattern early in a DAG combine, producing a target VADDVs/u node, where the signedness is now important. This is the first part, handling VADDV and VADDVA. There are also VADDVL/VADDVLA instructions, which are interesting because they sum into a 64bit value. And VMLAV and VMLALV, which are interesting because they also do a multiply of two values. It may look a little odd in places as a result. On it's own this will probably not do very much, as the vectorizer will not produce this IR yet. Differential Revision: https://reviews.llvm.org/D74218
-
Florian Hahn authored
The tests added in D74425/commit a71feda2 fail with an assertion on macOS, as they seem to require ELF support. Passing a linux triple ensures the object files are using ELF. This fixes some GreenDragon failures.
-
Raphael Isemann authored
Summary: Currently when printing data types we include implicit scopes such as inline namespaces or anonymous namespaces. This leads to command output like this (for `std::set<X>` with X being in an anonymous namespace): ``` (lldb) print my_set (std::__1::set<(anonymous namespace)::X, std::__1::less<(anonymous namespace)::X>, std::__1::allocator<(anonymous namespace)::X> >) $0 = size=0 {} ``` This patch removes all the implicit scopes when printing type names in TypeSystemClang::GetDisplayTypeName so that our output now looks like this: ``` (lldb) print my_set (std::set<X, std::less<X>, std::allocator<X> >) $0 = size=0 {} ``` As previously GetDisplayTypeName and GetTypeName had the same output we actually often used the two as if they are the same method (they were in fact using the same implementation), so this patch also fixes the places where we actually want the display type name and not the actual type name. N... -
Raphael Isemann authored
-
Raphael Isemann authored
All calls to operator new in this test fail for me with: ``` expression --show-types -- *(new foo(47))` Error output: error: Execution was interrupted, reason: internal c++ exception breakpoint(-6).. The process has been returned to the state before expression evaluation. ``` As calling operator new isn't the idea of this test, this patch moves that logic to the binary with some new_* utility functions and explicitly tests this logic in the constructor test (where we can isolate the failures and skip them on Linux).
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D74708
-
Petar Avramovic authored
Consider large operands in G_MERGE_VALUES and G_UNMERGE_VALUES as Ambiguous during regbank selection. Introducing new InstType AmbiguousWithMergeOrUnmerge which will allow us to recognize whether to narrow scalar or use s64:fprb. This change exposed a bug when reusing data from TypeInfoForMF. Thus when Instr is about to get destroyed (using narrow scalar) clear its data in TypeInfoForMF. Internal data is saved based on Instr's address, and it will no longer be valid. Add detailed asserts for InstType and operand size. Generate generic instructions instead of MIPS target instructions during argument lowering and custom legalizer. Select G_UNMERGE_VALUES and G_MERGE_VALUES when proper banks are selected: {s32:gprb, s32:gprb, s64:fprb} for G_UNMERGE_VALUES and {s64:fprb, s32:gprb, s32:gprb} for G_MERGE_VALUES. Update tests. One improvement is when floating point argument in gpr(or two gprs) gets passed to another function through gpr unnecessary fpr-to-gpr moves are no longer generated. Differential Revision: https://reviews.llvm.org/D74623 -
Balázs Kéri authored
Summary: The check accepts now a `return (*this = something);` as return statement too (beneath of `*this`). Reviewers: alexfh, hokein, aaron.ballman, JonasToth Reviewed By: aaron.ballman Subscribers: xazax.hun, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang, #clang-tools-extra Differential Revision: https://reviews.llvm.org/D74529
-
Florian Hahn authored
-
Kirill Bobyrev authored
-
Craig Topper authored
-
Jonas Devlieghere authored
The PluginManager contains a lot of duplicate code. I already removed a bunch of it by introducing the templated PluginInstance class, and this is the next step. The PluginInstances class combines the mutex and the vector and implements the common operations. To accommodate plugin instances with additional members it is possible to access the underlying vector and mutex. The methods to query these fields make use of that. Differential revision: https://reviews.llvm.org/D74816
-
Kirill Bobyrev authored
Summary: Make it more convinient for the clients to select completion items by providing a set of default characters (punctuation). Related issue: https://github.com/clangd/clangd/issues/284 Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74606
-
Craig Topper authored
[X86] Handle splats in LowerBUILD_VECTORvXi1 by directly emitting scalar selects instead of deferring that to LowerSELECT. LoweSELECT will detect the constant inputs and convert to scalar selects, but we can do it directly here. I might remove some of the code from LowerSELECT and move it to DAG combine so doing this explicitly will make us less dependent on it happening in lowering.
-
Brian Gesiak authored
Summary: Depends on https://reviews.llvm.org/D71902. The last in a series of six patches that ports the LLVM coroutines passes to the new pass manager infrastructure. This patch has Clang schedule the new coroutines passes when the `-fexperimental-new-pass-manager` option is used. With this and the previous 5 patches, Clang is capable of building and successfully running the test suite of large coroutines projects such as https://github.com/lewissbaker/cppcoro with `ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=On`. Reviewers: GorNishanov, lewissbaker, chandlerc, junparser Subscribers: EricWF, cfe-commits, llvm-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71903
-
Brian Gesiak authored
Summary: Depends on https://reviews.llvm.org/D71901. The fifth in a series of patches that ports the LLVM coroutines passes to the new pass manager infrastructure. The first 4 patches allow users to run coroutine passes by invoking, for example `opt -passes=coro-early`. However, most of LLVM's tests for coroutines use an option, `opt -enable-coroutines`, which adds all 4 coroutine passes to the appropriate legacy pass manager extension points. This patch does the same, but using the new pass manager: when coroutine features are enabled and the new pass manager is being used, this adds the new-pass-manager-compliant coroutine passes to the pass builder's pipeline. This allows us to run all coroutine tests using the new pass manager (besides those that use the coroutine retcon ABI used by the Swift compiler, which is not yet supported in the new pass manager). Reviewers: GorNishanov, lewissbaker, chandlerc, junparser, wenlei Subscribers: wenlei, EricWF, Prazek, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71902
-
Brian Gesiak authored
Summary: Depends on https://reviews.llvm.org/D71900. The fourth in a series of patches that ports the LLVM coroutines passes to the new pass manager infrastructure. This patch implements 'coro-cleanup'. No existing regression tests check the behavior of coro-cleanup on its own, so this patch adds one. (A test named 'coro-cleanup.ll' exists, but it relies on the entire coroutines pipeline being run. It's updated to test the new pass manager in the 5th patch of this series.) Reviewers: GorNishanov, lewissbaker, chandlerc, junparser, deadalnix, wenlei Reviewed By: wenlei Subscribers: wenlei, EricWF, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71901
-
Brian Gesiak authored
This re-applies patches https://reviews.llvm.org/D71899 and https://reviews.llvm.org/D71900, which were reverted in https://reviews.llvm.org/rG11053a1cc61 and https://reviews.llvm.org/rGe999aa38d16. The underlying problem that caused two buildbots to fail with these patches is explained in https://reviews.llvm.org/rG26f356350bd -- older compliers disagree with the order in which the left- and right-hand side of an assignment in LazyCallGraph ought to be evaluated, which caused an assertion in SmallVector::operator[] to fire when the test suite was run.
-
Sourabh Singh Tomar authored
Summary: This patch teaches llvm-dwp to parse DWARFv5 info section header. Tested this using asm test case caontaining DWARFv5 info. Assemling it to DWO object, checking corresponding content using llvm-dwarfdump. Then finally, packaging it to DWP using llvm-dwp and again checking corresponding content using llvm-dwarfdump. Reviewers: dblaikie, aprantl, probinson. Reviewed By: dblaikie. Differential Revision: https://reviews.llvm.org/D74425
-
Fangrui Song authored
A future MC change may add a warning/error when a .section directive specifies incorrect sh_flags/sh_type. Fix the tests to use correct sh_flags/sh_type.
-
Brian Gesiak authored
After having committed https://reviews.llvm.org/D72226, 2 buildbots running GCC 5.4.0 began failing. The cause was the order in which those compilers evaluated the left- and right-hand sides of the expression `RC.SCCIndices[C] = RC.SCCIndices.size();`. This commit splits the expression into multiple statements to avoid ambiguity, and adds a test case that exercises the code that caused the test failures on those older compilers (which was originally included in the reviewed patch, https://reviews.llvm.org/D72226).
-
Jonas Devlieghere authored
Sort forward declarations alphabetically. Also remove the two LLVM forward declares as they frankly don't belong here.
-
Jonas Devlieghere authored
There's no reason this should be the only one living in the PluginManager itself.
-
Jonas Devlieghere authored
Use YES/NO instead of OK, known issues instead of bugs and fix some other small inconsistencies
-
Jonas Devlieghere authored
Update the build instructions for Windows with my recent experience.
-
Jonas Devlieghere authored
This patch changes the way we initialize and terminate the plugins in the system initializer. It uses an approach similar to LLVM's TARGETS_TO_BUILD with a def file that enumerates the plugins. Previous attempts to land this failed on the Windows bot because there's a dependency between the different process plugins. Apparently ProcessWindowsCommon needs to be initialized after all other process plugins but before ProcessGDBRemote. Differential revision: https://reviews.llvm.org/D73067
-
Richard Smith authored
This only has an observable effect on constant evaluation.
-
Wenlei He authored
Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74799
-
Tim Shen authored
Summary: the .row.col variant turns out to be the popular one, contrary to what I thought as .row.row. Since .row.col is so prevailing (as I inspect cuDNN's behavior), I'm going to remove the .row.row support here, which makes the patch a little bit easier. Reviewers: ftynse Subscribers: jholewinski, bixia, sanjoy.google, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74655
-
Tim Shen authored
Reviewers: ftynse, nicolasvasilache, andydavis1 Subscribers: bixia, sanjoy.google, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74378
-
Eric Christopher authored
-
River Riddle authored
GCC Older GCC confuses the type of 'callback' after it gets captured, so add a forward capture to move it properly.
-
Jonas Devlieghere authored
The plugin manager had dedicated Get*PluginCreateCallbackForPluginName methods for each type of plugin, and only a small subset of those were used. This removes the dead duplicated code.
-
Jim Lin authored
-
Jonas Devlieghere authored
Remove a bunch of duplicate code by using a templated base class.
-