- Apr 09, 2020
-
-
Christopher Tetreault authored
Summary: Remove usages of asserting vector getters in Type in preparation for the VectorType refactor. The existence of these functions complicates the refactor while adding little value. Reviewers: efriedma, sdesmalen, rriddle Reviewed By: sdesmalen Subscribers: hiraditya, dantrushin, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77261
-
Eric Fiselier authored
The use of the `&& ...` fold expression in std::array's deduction guides recursively builds a set of binary operator expressions of depth N where `N` is the number of elements in the initializer. This is problematic because arrays may be large, and instantiation depth is limited. This patch addresses the issue by flattening the SFINAE using the existing `__all` type trait.
-
Peter Collingbourne authored
alignas was introduced in C++11 and is already being used throughout LLVM. Differential Revision: https://reviews.llvm.org/D77823
-
Reid Kleckner authored
In the MS C++ ABI, the complete destructor variant for a class with virtual bases is emitted whereever it is needed, instead of directly alongside the base destructor variant. The complete destructor calls the base destructor of the current class and the base destructors of each virtual base. In order for this to work reliably, translation units that use the destructor of a class also need to mark destructors of virtual bases of that class used. Fixes PR38521 Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D77081
-
Christopher Tetreault authored
Reviewers: sdesmalen, efriedma, dexonsmith Reviewed By: efriedma Subscribers: tschuett, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77425
-
Pratyai Mazumder authored
Reviewers: kcc, vitalybuka Reviewed By: vitalybuka Subscribers: dberris, #sanitizers, llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D77638
-
Christopher Tetreault authored
-
Eli Friedman authored
Removes deprecated overloads of LoadInst constructor, CallInst::create, InvokeInst::Create, IRBuilder::CreateCall, IRBuilder::CreateInvoke. (Leaving around deprecated IRBuilder::CreateLoad for now.) Differential Revision: https://reviews.llvm.org/D76269
-
Nicolas Vasilache authored
Summary: LLVM matrix intrinsics recently introduced an option to support row-major mode. This matches the MLIR vector model, this revision switches to row-major. A corner case related to degenerate sizes was also fixed upstream. This revision removes the guard against this corner case. A bug was uncovered on the output vector construction which this revision also fixes. Lastly, this has been tested on a small size and benchmarked independently: no visible performance regression is observed. In the future, when matrix intrinsics support per op attribute, we can more aggressively translate to that and avoid inserting MLIR-level transposes. This has been tested independently to work on small matrices. Differential Revision: https://reviews.llvm.org/D77761
-
Christopher Tetreault authored
Summary: Remove usages of asserting vector getters in Type in preparation for the VectorType refactor. The existence of these functions complicates the refactor while adding little value. Reviewers: rriddle, sdesmalen, efriedma Reviewed By: sdesmalen Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77260
-
James Y Knight authored
-
Eli Friedman authored
-
Nicolas Vasilache authored
Summary: This revision adds support to lower 1-D vector transfers to LLVM. A mask of the vector length is created that compares the base offset + linear index to the dim of the vector. In each position where this does not overflow (i.e. offset + vector index < dim), the mask is set to 1. A notable fact is that the lowering uses llvm.dialect_cast to allow writing code in the simplest form by targeting the simplest mix of vector and LLVM dialects and letting other conversions kick in. Differential Revision: https://reviews.llvm.org/D77703
-
David Truby authored
This changes the references and build instructions for Flang so that they are correct now that F18 has been rechristened Flang and merged with LLVM. Reviewed at: https://github.com/flang-compiler/f18/pull/909
-
Nicolas Vasilache authored
The "cblas" lib under mlir/test is meant as a simple integration demonstration. However it is installed and ends up conflicting with external projects who want to define the real cblas. Rename to avoid conflicts. Differential revision: https://reviews.llvm.org/D76615
-
Christopher Tetreault authored
Summary: Remove usages of asserting vector getters in Type in preparation for the VectorType refactor. The existence of these functions complicates the refactor while adding little value. Reviewers: arsenm, efriedma, sdesmalen Reviewed By: arsenm Subscribers: wdng, arsenm, jvesely, nhaehnle, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77268
-
ADRA authored
[CUDA] Accept -x cu to indicate language is CUDA, transfer CUDA language flag to header-file arguments Summary: * accept -x cu to indicate language is CUDA * transfer CUDA language flag to header-file arguments Differential Revision: https://reviews.llvm.org/D77451
-
Zequan Wu authored
Fix lifetime call in landingpad blocks simplifycfg from removing the landingpad. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D77188
-
Thomas Lively authored
Summary: A previous change (53211a) had updated the argument parsing to handle large max memories, but 4294967296 would still wrap to zero after the options were parsed. This change updates the configuration to use a 64-bit integer to store the max memory to avoid that overflow. Reviewers: sbc100 Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77437
-
Med Ismail Bennani authored
-
Christopher Tetreault authored
Summary: Remove usages of asserting vector getters in Type in preparation for the VectorType refactor. The existence of these functions complicates the refactor while adding little value. Reviewers: grosbach, efriedma, sdesmalen Reviewed By: efriedma Subscribers: hiraditya, dmgreen, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77271
-
River Riddle authored
Summary: Some pattern rewriters, like dialect conversion, prohibit the unbounded recursion(or reapplication) of patterns on generated IR. Most patterns are not written with recursive application in mind, so will generally explode the stack if uncaught. This revision adds a hook to RewritePattern, `hasBoundedRewriteRecursion`, to signal that the pattern can safely be applied to the generated IR of a previous application of the same pattern. This allows for establishing a contract between the pattern and rewriter that the pattern knows and can handle the potential recursive application. Differential Revision: https://reviews.llvm.org/D77782
-
Christopher Tetreault authored
Summary: Remove usages of asserting vector getters in Type in preparation for the VectorType refactor. The existence of these functions complicates the refactor while adding little value. Reviewers: sunfish, sdesmalen, efriedma Reviewed By: efriedma Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77273
-
Hubert Tong authored
Continuing from D77388, this patch moves interface declarations associated with `MachODump.cpp` into the headers corresponding to the file that defines the variable. At the same time, these externs are moved into the `llvm::objdump` namespace. The externs defined in `MachODump.cpp` that are not referenced outside of it are given internal linkage. This patch does not rename the external functions defined by `MachODump.cpp` that are not clearly named as being specific to Mach-O. Reviewed By: jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D77730
-
Stefan Pintilie authored
Used unsigned long where uint64_t should have been used by mistake. Fixed in this patch.
-
Med Ismail Bennani authored
-
Simon Pilgrim authored
v2i8/v4i8/v8i8 + v2i16/v4i16 all show up in vectorizer code and by just using the legalized types (v16i8/v8i16) we're highly exaggerating the actual cost of the shuffle.
-
Jan Kratochvil authored
It removes some needless deep indentation and some redundant statements. It prepares the code for a more clean next patch - DWARF index callbacks D77327. Differential Revision: https://reviews.llvm.org/D77326
-
Adrian Prantl authored
Types that came from a Clang module are nested in DW_TAG_module tags in DWARF. This patch recreates the Clang module hierarchy in LLDB and 1;95;0csets the owning module information accordingly. My primary motivation is to facilitate looking up per-module APINotes for individual declarations, but this likely also has other applications. This reapplies the previously reverted commit, but without support for ClassTemplateSpecializations, which I'm going to look into separately. rdar://problem/59634380 Differential Revision: https://reviews.llvm.org/D75488
-
Jonas Devlieghere authored
Add a small artificial delay in replay mode before exiting to ensure that all asynchronous events have completed. This should reduce the level of replay flakiness on some of the slower bots.
-
Siva Chandra Reddy authored
A typo in an earlier change allowed this check to be missed. Reviewers: abrachet Differential Revision: https://reviews.llvm.org/D77256
-
David Truby authored
-
Matthias Gehre authored
Summary: Previously, the check would fix ``` using fn = void(int); void f(fn *); void test() { // CHECK-MESSAGES: :[[@LINE+2]]:12: warning: parameter 'I' is unused // CHECK-FIXES: {{^}} f([](int /*I*/) { f([](int I) { return; }); } ``` into `f([]() { return; });` which breaks compilation. Now the check is disabled from Lambdas. The AST is not so easy to use. For ``` auto l = [](int) { return; }; f(l); ``` one gets ``` `-CallExpr <line:7:5, col:8> 'void' |-ImplicitCastExpr <col:5> 'void (*)(fn *)' <FunctionToPointerDecay> | `-DeclRefExpr <col:5> 'void (fn *)' lvalue Function 0x55a91a545e28 'f' 'void (fn *)' `-ImplicitCastExpr <col:7> 'void (*)(int)' <UserDefinedConversion> `-CXXMemberCallExpr <col:7> 'void (*)(int)' `-MemberExpr <col:7> '<bound member function type>' .operator void (*)(int) 0x55a91a546850 `-ImplicitCastExpr <col:7> 'const (lambda at line:6:14)' lvalue <NoOp> `-DeclRefExpr <col:7> '(lambda at line:6:14)':'(lambda at line:6:14)' lvalue Var 0x55a91a5461c0 'l' '(lambda at line:6:14)':'(lambda at line:6:14)' ``` There is no direct use of the `operator()(int I)` of the lambda, so the `!Indexer->getOtherRefs(Function).empty()` does not fire. In the future, we might be able to use the conversion operator `operator void (*)(int)` to mark the call operator as having an "other ref". Reviewers: aaron.ballman, alexfh, hokein, njames93 Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77680
-
Scott Egerton authored
This adds the __riscv_bitmanip macro and the 'b' target feature to enable it. Differential Revision: https://reviews.llvm.org/D71553
-
Simon Cook authored
This adds support for enabling experimental/unratified RISC-V ISA extensions in the -march string in the case where an explicit version number has been declared, and the -menable-experimental-extensions flag has been provided. This follows the design as discussed on the mailing lists in the following RFC: http://lists.llvm.org/pipermail/llvm-dev/2020-January/138364.html Since the RISC-V toolchain definition currently rejects any extension with an explicit version number, the parsing logic has been tweaked to support this, and to allow standard extensions to have their versions checked in future patches. The bitmanip 'b' extension has been added as a first use of this support, it should easily extend to other as yet unratified extensions (such as the vector 'v' extension). Differential Revision: https://reviews.llvm.org/D73891
-
Paolo Savini authored
This adds the instruction encoding and mnenomics for the proposed RISC-V Bit Manipulation extension (version 0.92). It is implemented with each category of instruction as its own target feature, with the 'b' extension feature enabling all options. Since this extension is not yet ratified, all target features are prefixed with 'experimental-' to note their status. Differential Revision: https://reviews.llvm.org/D65649
-
Louis Dionne authored
These scripts allow creating dylibs that are very close to the dylibs shipped on Apple platforms.
-
jasonliu authored
Summary: This patch adds support for handling of variadic functions for AIX. This includes ensuring that use and consume correct type of va_list (char *va_list) for AIX. Authored by: ZarkoCA Reviewers: cebowleratibm, sfertile, jasonliu Reviewed by: jasonliu Differential Revision: https://reviews.llvm.org/D76130
-
Stefan Pintilie authored
Add initial support for PC Relative addressing for constant pool loads. This includes adding a new relocation for @pcrel and adding a new PowerPC flag to identify PC relative addressing. Differential Revision: https://reviews.llvm.org/D74486
-
Kazushi (Jam) Marukawa authored
Summary: VE has special operands to represent 0b000...000111...111 (`(m)0`) and 0b111...111000...000 (`(m)1`) bit sequences. This patch supports those operands not only in machine instructions but also in DAG lowering. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D77769
-