- Sep 09, 2021
-
-
Florian Mayer authored
-
LLVM GN Syncbot authored
-
Marco Gartmann authored
Finds base classes and structs whose destructor is neither public and virtual nor protected and non-virtual. A base class's destructor should be specified in one of these ways to prevent undefined behaviour. Fixes are available for user-declared and implicit destructors that are either public and non-virtual or protected and virtual. This check implements C.35 [1] from the CppCoreGuidelines. Reviewed By: aaron.ballman, njames93 Differential Revision: http://reviews.llvm.org/D102325 [1]: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-dtor-virtual
-
Florian Mayer authored
-
Simon Pilgrim authored
As discussed on the ticket, I'm intending to add additional 128->256 patterns when we have test coverage, but this addresses a known crash. Differential Revision: https://reviews.llvm.org/D109434
-
Muhammad Omair Javaid authored
This patch fixes register save/restore on expression call to also include SVE registers. This will fix expression calls like: re re p1 <Register Value P1 before expression> p <var-name or function call> re re p1 <Register Value P1 after expression> In above example register P1 should remain the same before and after the expression evaluation. Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D108739
-
Alex Zinenko authored
OpenMP reductions need a neutral element, so we match some known reduction kinds (integer add/mul/or/and/xor, float add/mul, integer and float min/max) to define the neutral element and the atomic version when possible to express using atomicrmw (everything except float mul). The SCF-to-OpenMP pass becomes a module pass because it now needs to introduce new symbols for reduction declarations in the module. Reviewed By: chelini Differential Revision: https://reviews.llvm.org/D107549
-
Bradley Smith authored
Differential Revision: https://reviews.llvm.org/D109369
-
Simon Pilgrim authored
This is necessary for PR51796 where we'll update _mm256_loadu2_m128* to use _mm256_set_m128*
-
Alfonso Sánchez-Beato authored
Allow variable number of directories, as allowed by the specification. NumberOfRvaAndSize will default to 16 if not specified, as in the past. Reviewed by: jhenderson Differential Revision: https://reviews.llvm.org/D108825
-
Sjoerd Meijer authored
-
Roman Lebedev authored
[SimplifyCFG] performBranchToCommonDestFolding(): require block-closed SSA form for bonus instructions (PR51125) I can't seem to wrap my head around the proper fix here, we should be fine without this requirement, iff we can form this form, but the naive attempt (https://reviews.llvm.org/D106317) has failed. So just to unblock the release, put up a restriction. Fixes https://bugs.llvm.org/show_bug.cgi?id=51125
-
Jun Ma authored
Differential Revision: https://reviews.llvm.org/D106056
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D101157
-
Cullen Rhodes authored
Identified in D109359.
-
Jean Perier authored
https://reviews.llvm.org/D109156 did not properly update the case where the equivalence symbol appearing in the common statement is the "base symbol of an equivalence group" (this was the only case that previously worked ok, and the patch broke it). Fix this and add a test that actually uses this code path. Differential Revision: https://reviews.llvm.org/D109439
-
Cullen Rhodes authored
For sve_fp_3op_p_zds_zx we have zero patterns downstream but the intrinsic args can be added again if/when the patterns are implemented. Identified in D109359. Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D109429
-
Cullen Rhodes authored
Also fixes a couple of warnings identified in D109359: SVEInstrFormats.td:5099:59: warning: unused template argument: sve_int_index_ri::step_vector SVEInstrFormats.td:5133:59: warning: unused template argument: sve_int_index_rr::step_vector Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D109422
-
Alexander Pivovarov authored
Add SiFive cores E20, E21, E24, E34, S21, S54 and S76 Differential Revision: https://reviews.llvm.org/D109260
-
Yvan Roux authored
Don't outline machine instructions which are using jump table indexes since they are materialized as local labels (like the already handled case of constant pools). Reviewed By: paquette Differential Revision: https://reviews.llvm.org/D109436
-
Pushpinder Singh authored
Following nvptx approach, this patch uses complex function definitions from complex_cmath.h. With this patch, ovo passes 23/34 complex mathematical test cases. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D109344
-
Matthias Springer authored
Fold dim ops of scf.for results to dim ops of the respective iter args if the loop is shape preserving. Differential Revision: https://reviews.llvm.org/D109430
-
Matthias Springer authored
Fold dim ops of linalg.tiled_loop results to dim ops of the respective iter args if the loop is shape preserving. Differential Revision: https://reviews.llvm.org/D109431
-
Tom Stellard authored
Reviewed By: cryptoad Differential Revision: https://reviews.llvm.org/D109196
-
Matthias Springer authored
Run a small analysis to see if the runtime type of the iter_arg is changing. Fold only if the runtime type stays the same. (Same as `DimOfIterArgFolder` in SCF.) Differential Revision: https://reviews.llvm.org/D109299
-
Leonard Chan authored
As of 741fabc222f226d34d806056b804244b012853b, polly builders are failing from this error. The signiature is slightly different and accepts a ScalarEvolution reference instead. This should fix the polly builders.
-
Peter Collingbourne authored
The cross-compiled lldb-server targets are added to the lldb deps if Android cross compilation is enabled. Differential Revision: https://reviews.llvm.org/D109464
-
Peter Collingbourne authored
On Linux, LLDB depends on lldb-server at runtime (on Mac, the dependency on a debug server presumably comes via the system debugserver), so I added it to deps. Differential Revision: https://reviews.llvm.org/D109463
-
Matthias Springer authored
When tiling a LinalgOp, extract_slice/insert_slice pairs are inserted. To avoid going out-of-bounds when the tile size does not divide the shape size evenly (at the boundary), AffineMin ops are inserted. Some ops have assumptions regarding the dimensions of inputs/outputs. E.g., in a `A * B` matmul, `dim(A, 1) == dim(B, 0)`. However, loop bounds use either `dim(A, 1)` or `dim(B, 0)`. With this change, AffineMin ops are expressed in terms of loop bounds instead of tensor sizes. (Both have the same runtime value.) This simplifies canonicalizations. Differential Revision: https://reviews.llvm.org/D109267
-
Leonard Chan authored
This reverts commit 407e07aa. Reverting since this seems to break OpenMP builds and our clang builders. See thread on https://reviews.llvm.org/D107895.
-
Chris Lattner authored
This moves one mid-size function out of line, inlines the trivial tcAnd/tcOr/tcXor/tcComplement methods into their only caller, and moves the magic/umagic functions into SelectionDAG since they are implementation details of its algorithm. This also removes the unit tests for magic, but these are already tested in the divide lowering logic for various targets. This also upgrades some C style comments to C++. Differential Revision: https://reviews.llvm.org/D109476
-
Jessica Paquette authored
Similar to other code which handles creating the function frame. If LR isn't live-in to the block that we're inserting the call into, we'll get a MachineVerifier error.
-
Amara Emerson authored
This is a port of a combine which matches a pattern where a wide type scalar value is stored by several narrow stores. It folds it into a single store or a BSWAP and a store if the targets supports it. Assuming little endian target: i8 *p = ... i32 val = ... p[0] = (val >> 0) & 0xFF; p[1] = (val >> 8) & 0xFF; p[2] = (val >> 16) & 0xFF; p[3] = (val >> 24) & 0xFF; => *((i32)p) = val; On CTMark AArch64 -Os this results in a good amount of savings: Program before after diff SPASS 412792 412788 -0.0% kc 432528 432512 -0.0% lencod 430112 430096 -0.0% consumer-typeset 419156 419128 -0.0% bullet 475840 475752 -0.0% tramp3d-v4 367760 367628 -0.0% clamscan 383388 383204 -0.0% pairlocalalign 249764 249476 -0.1% 7zip-benchmark 570100 568860 -0.2% sqlite3 287628 286920 -0.2% Geomean difference -0.1% Differential Revision: https://reviews.llvm.org/D109419 -
Philip Reames authored
-
Mehdi Amini authored
This is making a tablegen crash with a more friendly error. Differential Revision: https://reviews.llvm.org/D109456
-
Chris Lattner authored
-
David Blaikie authored
This ensures error messages from gtest includes the raw text of both sides of the comparison - otherwise all gtest can report is the text of the expression source, without any information about the values or how they differ.
-
David Blaikie authored
For use with APIs that want to report the file name in a different syntactic form, have other knowledge of the filename, etc.
-
David Blaikie authored
It's a common error in an API - to try to open an empty file, so it seems like a reasonable FileError to produce "hey, you tried to open an empty file" and to handle it the same way as any other file error.
-
Chris Lattner authored
This moves all the private implementation details to the bottom of the header, and pushes all the "make an APInt" stuff up to the top. This is in prep for making other changes to spiff up APInt a bit.
-