- Feb 17, 2022
-
-
Lei Huang authored
-
Lei Zhang authored
The pad-slice swap pattern generates `scf.if` and `tensor.generate` to guard against zero-sized slices if it cannot prove the slice is always non-zero. This is safe but quite conservative. It can be unnecessary for cases where we know by problem definition such cases does not exist, even if with dynamic shaped ops or unknown tile/slice sizes, e.g., convolution padding size = 1 with kernel dim size = 3. So this commit introduces a control to the pattern to specify whether to generate the if constructs to handle such cases better, given that once the if constructs is materialized, it's very hard to analyze and simplify. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D117017
-
Benjamin Kramer authored
memcpy can handle them as long as they're contiguous. Differential Revision: https://reviews.llvm.org/D119938
-
Arthur O'Dwyer authored
It actually *is* important (for structured bindings) that `get(tuple)` be ADL-able; but that's not the point of this test in particular. Reviewed as part of D119860.
-
Arthur O'Dwyer authored
We shouldn't be calling `rethrow_exception` via ADL -- and neither should anybody in the wild be calling it via ADL, so it's not like we need to test this ADL ability of `rethrow_exception` in particular. Reviewed as part of D119860.
-
Arthur O'Dwyer authored
We shouldn't be calling these functions via ADL -- and neither should anybody in the wild be calling it via ADL, so it's not like we need to test the ADL ability of these functions in particular. Reviewed as part of D119860.
-
Arthur O'Dwyer authored
Reviewed as part of D119860.
-
Arthur O'Dwyer authored
Reviewed as part of D119860.
-
Arthur O'Dwyer authored
Reviewed as part of D119860.
-
Arthur O'Dwyer authored
We shouldn't be calling `prev` via ADL -- and neither should anybody in the wild be calling it via ADL, so it's not like we need to test this ADL ability of `prev` in particular. Reviewed as part of D119860.
-
Arthur O'Dwyer authored
We shouldn't be calling `next` via ADL -- and neither should anybody in the wild be calling it via ADL, so it's not like we need to test this ADL ability of `next` in particular. Reviewed as part of D119860.
-
Arthur O'Dwyer authored
We shouldn't be calling `move` via ADL -- and neither should anybody in the wild be calling it via ADL, so it's not like we need to test this ADL ability of `move` in particular. Reviewed as part of D119860.
-
Arthur O'Dwyer authored
Fixes #49601. Differential Revision: https://reviews.llvm.org/D119891
-
Arthur O'Dwyer authored
Differential Revision: https://reviews.llvm.org/D119863
-
- Feb 16, 2022
-
-
Arthur O'Dwyer authored
Drive-by remove some use of raw `new`, and expand test coverage a tiny bit. Differential Revision: https://reviews.llvm.org/D119861
-
Philip Reames authored
-
Arthur O'Dwyer authored
"cxx2b-consteval-if.cpp" was showing up misindented.
-
Vladislav Khmelevsky authored
This patch changes patchELFAllocatableRelaSections from going through old relocations sections and update the relocation offsets to emitting the relocations stored in binary sections. This is needed in case we would like to remove and add dynamic relocations during BOLT work and it is used by golang support pass. Note: Currently we emit relocations in the old sections, so the total number of them should be equal or less of old number. Testing: No special tests are neeeded, since this patch does not fix anything or add new functionality (it only prepares to add). Every PIC-compiled test binary will use this code and thus become a test. But just in case the aarch64 dynamic relocations tests were added. Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D117612
-
Nikita Popov authored
By convention, memcpy/memmove intrinsics are always used with i8 pointers (though this is not enforced), so in practice this code was always using an i8 type. Make that explicit. Of course, i8 is not a very profitable choice, and this code could be more performant by picking an appropriate larger type. But that would require additional test coverage and correctness review, and certainly shouldn't be a decision based on the pointer element type.
-
Louis Dionne authored
Otherwise, AppleClang ignores -fmodules entirely, so we are not actually testing anything. Differential Revision: https://reviews.llvm.org/D119862
-
Sven van Haastregt authored
The named and generic address space overloads for atomic_init added by 50f8abb9 ("[OpenCL] Add OpenCL 3.0 atomics to -fdeclare-opencl-builtins", 2022-02-11) were not guarded by the corresponding extensions.
-
Kevin P. Neal authored
Currently the fsub optimizations in InstSimplify don't know how to fold X - -0.0 to X when we know X is not zero and the constrained intrinsics are used. This adds the support. This review is split out from D107285. Differential Revision: https://reviews.llvm.org/D119746
-
Tue Ly authored
Algorithm for hypotf: compute (a*a + b*b) in double precision, then use Dekker's algorithm to find the rounding error, and then correcting it after taking its square-root. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D118157
-
Louis Dionne authored
As suggested in https://reviews.llvm.org/D112155. Differential Revision: https://reviews.llvm.org/D119836
-
Peter Kasting authored
This relands 73e585e4 (and 0574b5fc), with a fix for the failing test (by using Optional<StringRef>s instead of making StringRef::empty() mean absence of value). Differential Revision: https://reviews.llvm.org/D118070
-
Nikita Popov authored
Address space casts in general may change the element type, but don't allow it in the method working on Address, so we can preserve the element type. CreatePointerBitCastOrAddrSpaceCast() still needs to be addressed.
-
Sanjay Patel authored
D119851
-
Florian Hahn authored
Blocks with UnreachableInst terminators are considered as root nodes in the PDT. This pessimize DSE, if there are no aliasing reads from the potentially dead store and the block with the unreachable terminator. If any of the root nodes of the PDF has UnreachableInst as terminator, fall back to the CFG scan, even the common dominator of all killing blocks does not post-dominate the block with potentially dead store. It looks like the compile-time impact for the extra scans is negligible. https://llvm-compile-time-tracker.com/compare.php?from=779bbbf27fe631154bdfaac7a443f198d4654688&to=ac59945f1bec1c6a7d7f5590c8c69fd9c5369c53&stat=instructions Fixes #53800. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D119760
-
Adrian Kuegel authored
-
Nikita Popov authored
These are leftovers from when there were separate MSSA/non-MSSA check lines.
-
Tim Northover authored
It provides some functions needed by add/sub.
-
Kristof Beyls authored
-
Simon Pilgrim authored
Expand the ISD::AVGCEILU to determine the known bits of the result. First part of PR53622 Differential Revision: https://reviews.llvm.org/D119629
-
Marek Kurdej authored
Fixes https://github.com/llvm/llvm-project/issues/52649. This was already fixed in commit https://github.com/llvm/llvm-project/commit/e967d97a35a93c883528a9672159edff05f5addb.
-
Anastasia Stulova authored
Reflect the latest development in clang docs. Differential Revision: https://reviews.llvm.org/D119719
-
Nathan Sidwell authored
parseNestedName's main loop allowed parsing a grammar that was more flexible than the actual grammar. This refactors that to rule out some more incorrect manglings. 1) The 'L' extension only applies to unqualified-name components, so check it just there. 2) The 'M' suffix is, AFAICT, removed from the grammar. Rather than eliminate it, let's parse it after we've parsed a component. Added some additional bad mangling tests, which are now rejected. I don't break the 'T' and 'D[tT]' cases out of the loop, even though they can only appear at first position, as it seems simpler to just check there is nothing SoFar. Reviewed By: ChuanqiXu Differential Revision: https://reviews.llvm.org/D119542
-
Nathan Sidwell authored
The Itanium mangler constructors use both NSDMI and explicit member construction for default values. This is confusing. *) Use NSDMIs wherever possible *) Use forwarding ctor for the nesting case with an llvm::raw_null_ostream (and explicitly set NullOut flag in that ctor). *) Copy the ModuleSubstitutions. This is a bug with no effect in the current mangling, but not in the newer mangling. Reviewed By: ChuanqiXu Differential Revision: https://reviews.llvm.org/D119550
-
Nemanja Ivanovic authored
The added run lines build a bitcode file for x86 and an object file for whatever the default target is that is running the test. This causes an incompatibility between the files. Add the triple to the llvm-mc invocation.
-
Florian Hahn authored
Add a few test cases with clobbers (writes and lifetime.end) that should prevent memcpy->byval forwarding, but those clobbers are missed at the moment.
-
Andrzej Warzynski authored
This patch updates `validModule` not to use `getModule`. `getModule` will dereference `module`, but that will lead to a seg-fault if `module` is a `nullptr`. Differential Revision: https://reviews.llvm.org/D119705
-