- Sep 15, 2023
-
-
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
-
Aart Bik authored
Rationale: Some compiler settings don't like the size_t vs uint64_t setup.
-
ChiaHungDuan authored
The fragmentation of secondary cache is the difference between mapped page size and the user request size
-
Daniil Dudkin authored
This patch is part of a larger initiative aimed at fixing floating-point `max` and `min` operations in MLIR: https://discourse.llvm.org/t/rfc-fix-floating-point-max-and-min-operations-in-mlir/72671. The commit addresses the task 1.4 of the RFC by adding LLVM lowering to the corresponding LLVM intrinsics. Please **note**: this PR is part of a stack of patches and depends on #66429.
-
Arthur Eubanks authored
Currently clang's medium code model treats all data as large, putting them in a large data section and using more expensive instruction sequences to access them. Following gcc's -mlarge-data-threshold, which allows putting data under a certain size in a normal data section as opposed to a large data section. This allows using cheaper code sequences to access some portion of data in the binary (which will be implemented in LLVM in a future patch). And under the medium codel mode, only put data above the large data threshold into large data sections, not all data. Reviewed By: MaskRay, rnk Differential Revision: https://reviews.llvm.org/D149288
-
Fabian Mora authored
This patch adds an NVPTX compilation path that enables JIT compilation on NVIDIA targets. The following modifications were performed: 1. Adding a format field to the GPU object attribute, allowing the translation attribute to use the correct runtime function to load the module. Likewise, a dictionary attribute was added to add any possible extra options. 2. Adding the `createObject` method to `GPUTargetAttrInterface`; this method returns a GPU object from a binary string. 3. Adding the function `mgpuModuleLoadJIT`, which is only available for NVIDIA GPUs, as there is no equivalent for AMD. 4. Adding the CMake flag `MLIR_GPU_COMPILATION_TEST_FORMAT` to specify the format to use during testing.
-
Daniil Dudkin authored
This patch refactors the `AtomicRMWOpConverter` class to use the dedicated operations from Arith dialect instead of using `cmpf` + `select` pattern. Also, a test for `minimumf` kind of `atomic_rmw` has been added.
-
Daniil Dudkin authored
This patch is part of a larger initiative aimed at fixing floating-point `max` and `min` operations in MLIR: https://discourse.llvm.org/t/rfc-fix-floating-point-max-and-min-operations-in-mlir/72671. Here we introduce new operations for floating-point numbers: `minnum` and `maxnum`. These operations have different semantics than `minumumf` and `maximumf` ops. They follow the eponymous LLVM intrinsics semantics, which differs in the handling positive and negative zeros and NaNs. This patch addresses the 1.3 task from the RFC.
-
Douglas Yung authored
-