- Sep 15, 2023
-
-
Martin Erhart authored
Use the new ownership based deallocation pass pipeline in the regression and integration tests. Some one-shot bufferization tests tested one-shot bufferize and deallocation at the same time. I removed the deallocation pass there because the deallocation pass is already thoroughly tested by itself.
-
Mariya Podchishchaeva authored
91088978 shouldn't have removed an additional check that field has incomplete array type. Fixes https://github.com/llvm/llvm-project/issues/66300 Co-authored-by:
Aaron Ballman <aaron@aaronballman.com>
-
Martin Storsjö authored
This reverts commit 64c0bddb. This seems to run into errors on some buildbots; configure errors out like this: -- Looking for _Unwind_RaiseException in unwind -- Looking for _Unwind_RaiseException in unwind - not found CMake Error at /usr/share/cmake-3.25/Modules/CheckLibraryExists.cmake:71 (try_compile): Only libraries may be used as try_compile or try_run IMPORTED LINK_LIBRARIES. Got unwind of type UTILITY. Call Stack (most recent call first): /b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/cmake/config-ix.cmake:66 (check_library_exists) /b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/CMakeLists.txt:281 (include)
-
Ingo Müller authored
This PR cleans up the test of the mix-ins of this dialect. Most of the character diff is due to factoring out the creation of the the top-level sequence into a decorator. This decorator siginficantly shortens the definition of the individual tests and can be used in all but one test, where the top-level op is a PDL op. The only functional diff is due to the fact that the decator uses `transform.any_op` instead of `pdl.operation` for the type of the root handle. The only remaining usages of the PDL dialects is now in the test a PDL-related op.
-
Martin Storsjö authored
If libc++ is available and should be used as the ubsan C++ ABI library, the check for libc++ might fail if libc++ is a static library, as the -nodefaultlibs flag inhibits a potential compiler default -lunwind. Just like the -nodefaultlibs configuration tests for and manually adds a bunch of compiler default libraries, look for -lunwind too.
-
Oleg Shyshkov authored
-
Bevin Hansson authored
visit will skip visiting instructions it already has visited to avoid issues with cycles in the data graph. However, the result of this skipping behavior is that if we encounter the same instruction twice, and that instruction has a well defined result and isn't part of a cycle, we will introduce unknowns into the analysis even though we knew the size and offset of the instruction's result. Instead of skipping such instructions, keep a cache of the result of visiting them. This result is initialized to unknown() before visiting, so if we happen to visit it again recursively (perhaps as the result of a cycle or a phi), we will get unknown as the cached result and exit out.
-
Weining Lu authored
It should be `andi`, but not `and`. Address buildbot failure: https://lab.llvm.org/buildbot/#/builders/42/builds/11634
-
Martin Storsjö authored
This matches what is done on calls, since cc981d28 (extended for another case in 5a751e74). Apply both those cases on invoke just like is done for call. Also update the preexisting comment which was left without update in 5a751e74. This fixes github issue #61941.
-
Carlo Bramini authored
If you try to build `compiler-rt` on CYGWIN, you will get message: ``` error: Unsupported target ``` Adding support for this platform. just needs to add testing if `__CYGWIN__` is defined into `lib\builtins\int_lib.h`.
-
Julien Schueller authored
like done in the ELF side this would allow to use archlinux default mingw flags: `-Wl,-O1,--sort-common,--as-needed -fstack-protector` (on archlinux packages use the GNU linker by default)
-
Timm Bäder authored
Differential Revision: https://reviews.llvm.org/D157200
-
Orlando Cazalet-Hyams authored
Fixes #65004 by trimming assignments from out of bounds stores (out of bounds of either the base variable or the backing alloca). If there's no overlap at all or the out of bounds access starts at a negative offset from the alloca, the assignment is simply skipped.
-
Rainer Orth authored
LLVM currently doesn't build with `-DBUILD_SHARED_LIBS=ON` on Solaris: `libLLVMTargetParser.so` uses `libkstat` functions without linking it. Tested on `amd64-pc-solaris2.11` and `sparcv9-sun-solaris2.11`. Differential Revision: <https://reviews.llvm.org/D158846
-
Timm Bäder authored
-
Timm Bäder authored
Differential Revision: https://reviews.llvm.org/D157174
-
Martin Erhart authored
Since ownership based buffer deallocation requires a few passes to be run in a somewhat fixed sequence, it makes sense to have a pipeline for convenience (and to reduce the number of transform ops to represent default deallocation).
-
Timm Bäder authored
Looks like some builders default to c99, which is a problem: https://lab.llvm.org/buildbot/#/builders/139/builds/49750
-
Guray Ozen authored
The #65953 added a test `128x64xf16` that does a single TMA load. This PR adds more complex test that does 2 additional TMA loads with 128B Swizzling: ``` TMA Load: Matrix-A[0:128][0:64] TMA Load: Matrix-B[0:64][0:64] TMA Load: Matrix-B[64:128][0:64] ``` The program tests the loaded data for Matrix-B. -
Nikita Popov authored
This adds an additional transform to drop zero-size memcpys, also in the case where the size is only zero after instruction simplification. The motivation is the case from PR54983 where the size is non-trivially zero, and processMemSetMemCpyDependence() keeps trying to reduce the memset size by zero bytes. This fix it's not really principled. It only works on the premise that if InstSimplify doesn't realize the size is zero, then AA also won't. The principled approach would be to instead add a isKnownNonZero() guard to the processMemSetMemCpyDependence() transform, but I suspect that would render that optimization mostly useless (at least it breaks all the existing test coverage -- worth noting that the constant size case is also handled by DSE, so I think this transform is primarily about the dynamic size case). Fixes https://github.com/llvm/llvm-project/issues/54983. Fixes https://github.com/llvm/llvm-project/issues/64886. Differential Revision: https://reviews.llvm.org/D124078
-
Ingo Müller authored
For some reason, the mix-ins of the Python bindings of this dialect used the PDL type for "any op". However, PDL isn't involved here, so it makes more sense to use the corresponding type of the transform dialect. This PR changes that.
-
Timm Bäder authored
In C, we don't get a evaluateAsInitializer() call for all global declarations, yet we have to handle DeclRefExpr pointing to them. Differential Revision: https://reviews.llvm.org/D156794
-
Petr Hosek authored
This module is only used in two places and its logic can be inlined and simplified.
-
Pierre van Houtryve authored
Addresses the FIXME for both DAGISel and GISel.
-
Kunwar Grover authored
The CMake file for IRDL was not generating documentation on the mlir website. This patch fixes this.
-
Rainer Orth authored
LLVM fails to build on 32-bit Solaris/SPARC: several programs fail to link due to undefined references to `__multi3`. This reference is from `lib/libLLVMScalarOpts.a(LoopStrengthReduce.cpp.o)`. However, This function exists neither in the 32-bit `libgcc.a` nor in `libclang_rt.builtins-sparc.a`. It's only defined in their 64-bit counterparts. The same issue affects several 32-bit targets, e.g. 32-bit PowerPC as described in Issue #54460. The fix is the same: inhibit the libcall for 32-bit compilations. This patch does just that, regenerating the affected testcases. It allows the build to complete. Tested on `sparc-sun-solaris2.11`.
-
Jonas Devlieghere authored
Add a configuration entry for whether LLDB was configured with wide character support in Editline and use it in a decorator to guard the UTF-8 prompt test.
-
Nikita Popov authored
Duplicate phi nodes were being directly removed, without invalidating MDA. This could result in a new phi node being allocated at the same address, incorrectly reusing a cache entry. Fix this by optionally allowing EliminateDuplicatePHINodes() to collect phi nodes to remove into a vector, which allows GVN to handle removal itself. Fixes https://github.com/llvm/llvm-project/issues/64598. Differential Revision: https://reviews.llvm.org/D158849
-
Wang Pengcheng authored
`VMCLR` and `VMSET` will be expanded before MC emitting, so we don't need them being in RISCVVPseudosTable.
-
Marc Auberer authored
This removes a oneUse check, that is actually unnecessary. Alive2: https://alive2.llvm.org/ce/z/qEkUEf Original patch: https://reviews.llvm.org/D159380
-
Cyndy Ishida authored
Both Swift & LLD use TextAPI reader/writer apis to interface with TBD files. Add doc strings to document what each API does. Also, add shortcut APIs for validating input is a TBD file. This reduces the differences between downstream and how tapi calls into these APIs.
-
Christopher Bate authored
This change refactors some of the utilities used to unroll larger vector computations into smaller vector computations. In fact, the indexing computations used here are rather generic and are useful in other dialects or downstream projects. Therefore, a utility for iterating over all possible tile offsets for a particular pair of static (shape, tiled shape) is introduced in IndexingUtils and replaces the existing computations in the vector unrolling transformations. This builds off of the refactoring of IndexingUtils introduced in 203fad47. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D150000
-
Jakub Kuderski authored
This is plugged in as an alternative lowering path in the gpu to spirv dialect conversion. Add custom op builders for coop matrix ops to make the create functions nicer to work with and less error-prone. The latter is accomplished by following the op syntax and also requiring stride to be a constant op to avoid confusion around the order of arguments. The remaining lowering patterns will be added in a future patch.
-
Stella Laurenzo authored
Only construction and type casting are implemented. The method to create is explicitly named "unsafe" and the documentation calls out what the caller is responsible for. There really isn't a better way to do this and retain the power-user feature this represents.
-
Brad Smith authored
-
ChiaHungDuan authored
It uses `T max( std::initializer_list<T> ilist )` which may not be included in the build path in some build systems.
-
Eymen Ünay authored
Add support for static Arm relocations of R_ARM_MOVT_ABS and R_ARM_MOVW_ABS_NC which are emitted by movt and movw instructions. The implementation contains relocation fixup and its testing as well as its encode/decode functions for reading and writing immediate values together with its unittests.
-
Alexey Bataev authored
-
Yinying Li authored
**Dense** `lvlTypes = [ "dense", "dense" ]` to `map = (d0, d1) -> (d0 : dense, d1 : dense)` `lvlTypes = [ "dense", "dense" ], dimToLvl = affine_map<(i,j) -> (j,i)>` to `map = (d0, d1) -> (d1 : dense, d0 : dense)` **DCSR** `lvlTypes = [ "compressed", "compressed" ]` to `map = (d0, d1) -> (d0 : compressed, d1 : compressed)` **DCSC** `lvlTypes = [ "compressed", "compressed" ], dimToLvl = affine_map<(i,j) -> (j,i)>` to `map = (d0, d1) -> (d1 : compressed, d0 : compressed)` **Block Row** `lvlTypes = [ "compressed", "dense" ]` to `map = (d0, d1) -> (d0 : compressed, d1 : dense)` **Block Column** `lvlTypes = [ "compressed", "dense" ], dimToLvl = affine_map<(i,j) -> (j,i)>` to `map = (d0, d1) -> (d1 : compressed, d0 : dense)` This is an ongoing effort: #66146, #66309
-
Leonard Chan authored
Prior to this, we would check if the end of the allocator cache was located before the end of the chunk passed to the tls check. However, if the actual allocator cache comes after the end of the chunk, then the sub in the `end - params->allocator_caches[i]` bit overflows. Since the resulting type is an unsigned uptr, this is not UB, but if the signed result would be a negative value (ie. `end < params->allocator_caches[i]`) then this will actually result in a very large unsigned value much bigger than the compared `sizeof(AllocatorCache)` which will almost always be true. This can cause ScanRangeForPointers to accept incorrect values: a begin pointing to some address, and `params->allocator_caches[i]` pointing to some much larger address way past the end of the chunk which can result in a page fault/stack overflow. Differential Revision: https://reviews.llvm.org/D159518
-