- Jul 06, 2023
-
-
Luke Lau authored
Reviewed By: reames Differential Revision: https://reviews.llvm.org/D153875
-
Luke Lau authored
This patch teaches the RISCV TargetLowering class to lower interleave intrinsics to vsseg2, so it can lower interleaved stores for scalable vectors. Previously, we could only lower stores of interleaves for fixed length vectors with vector shuffles. This uses the lowerInterleaveIntrinsic interface for the interleaved access pass that was added in D146218, and subsumes the DAG combine approach taken in D144175 Reviewed By: reames Differential Revision: https://reviews.llvm.org/D153864
-
Luke Lau authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D153863
-
Michael Jones authored
The accuracy for the MPFR numbers in the strtofloat fuzz test was set too high, causing rounding issues when rounding to a smaller final result. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D154150
-
Petr Hosek authored
We should be using the standard includes. Differential Revision: https://reviews.llvm.org/D154529
-
Dave Pagan authored
The loop directive is a descriptive construct which allows the compiler flexibility in how it generates code for the directive's associated loop(s). See OpenMP specification 5.2 [257:8-9]. Codegen added in this patch for the combined 'loop' directives are: 'target teams loop' -> 'target teams distribute parallel for' 'teams loop' -> 'teams distribute parallel for' 'target parallel loop' -> 'target parallel for' 'parallel loop' -> 'parallel for' NOTE: The implementation of the 'loop' directive itself is unchanged. Differential Revision: https://reviews.llvm.org/D145823
-
James Y Knight authored
Right now, the filesystem APIs _mostly_ use Win32 API calls, but a small number of functions use CRT APIs instead. The semantics are effectively the same, except for which sorts of error codes are returned. We want to be consistent about returning only native Win32 error codes, as a prerequisite for https://reviews.llvm.org/D151493. This change switches getcwd, chdir, and mkdir. It does _not_ switch open/close, because there are difficulties around the use of C-runtime file descriptor numbers. Instead, those two APIs are removed from posix_compat.h, and the win32-specific code inlined into the operations.cpp FileDescriptor class (with a TODO comment). Reviewed By: #libc, mstorsjo, Mordante Differential Revision: https://reviews.llvm.org/D153037
-
Yusra Syeda authored
This patch adds support for the ADA (associated data area), doing the following: -Creates the ADA table to handle displacements -Emits the ADA section in the SystemZAsmPrinter -Lowers the ADA_ENTRY node into the appropriate load instruction Differential Revision: https://reviews.llvm.org/D153788
-
Petr Hosek authored
This reverts commit 046deabd since it broke libc-aarch64-ubuntu-fullbuild-dbg.
-
Petr Hosek authored
D152592 introduced LIBC_INCLUDE_DIR for the location of the include directory, use it in relevant CMake rules. Differential Revision: https://reviews.llvm.org/D154278
-
Florian Hahn authored
When normalizing a SCEV expression during expansion, there should be no need for it to be invertible, as it will only be used for code generation. This fixes a crash after 7f5b15ad. Fixes https://github.com/llvm/llvm-project/issues/63678.
-
Henrik G. Olsson authored
Both the pattern for finding the clang version metadata, and the emitted checker, are now more robust, to handle a vendor prefix. Differential Revision: https://reviews.llvm.org/D154520
-
Petr Hosek authored
When crt1 isn't available, which is typical on baremetal, hermetic tests aren't created and the hermetic test target won't be available. Differential Revision: https://reviews.llvm.org/D154279
-
Nawrin Sultana authored
Differential Revision: https://reviews.llvm.org/D152289
-
Igor Kirillov authored
This commit allows generating of complex number intrinsics for expressions with constants or loops invariants, which are represented as splats. For instance, after vectorizing loops in the following code snippets, the ComplexDeinterleaving pass will be able to generate complex number intrinsics: ``` complex<> x = ...; for (int i = 0; i < N; ++i) c[i] = a[i] * b[i] * x; ``` or ``` for (int i = 0; i < N; ++i) c[i] = a[i] * b[i] * (11.0 + 3.0i); ``` Differential Revision: https://reviews.llvm.org/D153355 -
Arthur Eubanks authored
So that the linker can find libraries in the winsysroot. Reviewed By: hans, rnk Differential Revision: https://reviews.llvm.org/D151946
-
John Brawn authored
My previous fix used a gcc-style attribute, but not all compilers will accept that. Instead use [[maybe_unused]], which is what we use elsewhere for this kind of thing.
-
Ian Anderson authored
This may be a clang bug, but explicit exports interfere with `export *`, especially in local submodule visibility mode. For example, exporting `depr.stdint_h` from `cstdint` causes std::int32_t to become an "unresolved using declaration" in LSV if `cstdint` and `stdint.h` are promoted to top level modules. This was previously worked around by exporting `Darwin.C.stdint` in `depr.stdint_h`, but that only works on Apple platforms, and it stops working when `cstdint` and `stdint.h` are promoted to top level modules. Remove all of the explicit `export` statements in modules that have `export *`. Reviewed By: ldionne, Mordante, #libc Differential Revision: https://reviews.llvm.org/D153212
-
Ian Anderson authored
Several headers that are included by the modular headers are missing from the module map, add those in. The either/or implementation headers `<__algorithm/pstl_backends/cpu_backends/serial.h>`/`<__algorithm/pstl_backends/cpu_backends/thread.h>` need to be textual, as does `<__undef_macros>`. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D153213
-
Amaury Séchet authored
-
John Brawn authored
A stage 2 buildbot that compiles with -Wall -Werror is showing a failure because a dummy value is unused. Use the unused attribute to suppress the warning, and add a comment about why we have this value.
-
Luke Lau authored
When emitting a vfcvt with a rounding mode, we end up generating an unnecessary vmset because the only rounding mode pseudos have a mask operand. This patch adds a pseudo without a mask, and marks the masked variant with the MaskedPseudo class so the doPeepholeMergeVMV optimisation knows to remove the redundant vmset. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D154266
-
Mark de Wever authored
The feature is applied as DR instead of a normal paper. MSVC STL and libstdc++ will do the same. Implements - P2510R3 Formatting pointers Depends on D153192 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D153195
-
Mark de Wever authored
This updates the tests to match the actual output on Windows. Note some tests still need more investigation. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D153498
-
Alex Langford authored
This does 2 things: - Corrects a minor typo (`value subvalue` -> `valid subvalue`) - Removes an unnecessary instance of `str().c_str()` (creating a temporary std::string from a StringRef just to get a valid null-terminated string). Differential Revision: https://reviews.llvm.org/D154387
-
- Jul 05, 2023
-
-
Alex Langford authored
This method, as far as I can ascertain, is non-trivial to actually use to work with (if not impossible). It doesn't make sense to use from Python and you do not have access to the accompanying TypeSystem, so it doesn't really do anything useful. A possible follow-up is to gut the implementation and have it return `nullptr`. Differential Revision: https://reviews.llvm.org/D153918
-
Benjamin Kramer authored
`not` is a C++ keyword, but it seems to cause trouble with MSVC
-
Alex Langford authored
For some context, Raphael tried to this before: https://reviews.llvm.org/D104231 These methods are not tested at all, and in some cases, are not even fully implemented (e.g. SBHostOS::ThreadCreated). I'm not convinced it's possible to use these correctly from Python, and I'm not aware of any users of these methods. It's difficult to remove these methods wholesale, but we can start with deprecating them. A possible follow-up to this change (which may require an RFC to get more buy in from the community) is to gut these functions entirely. That is, remove the implementations and replace them either with nothing or have them dump out a message to stderr saying not to use these. Differential Revision: https://reviews.llvm.org/D153900
-
Simon Pilgrim authored
[X86] ComputeNumSignBitsForTargetNode - attempt to recognise PACKSSDW(PACKSSDW(X,Y),PACKSSDW(Z,W)) patterns These are often used when we're packing vXi64 comparison results, but we don't have PACKSSQD so have to bitcast, which doesn't work well with num sign bits value tracking.
-
Simon Pilgrim authored
Fold allsignbits pack patterns to make better use of cheap (and commutable) logic ops
-
Renato Golin authored
This adds the first strict element-wise named op to Linalg. The semantics here is to not allow auto-cast, broadcast semantics and to restrict the operations only to identical types. The remaining semantics must come in the form of surrounding operations on operands, to avoid ambiguity. Examples: ``` // Cast int-to-fp %0 = linalg.copy ins(%in: tensor<32x32xi32>) outs(%out: tensor<32x32xf32>) %1 = linalg.add ins(%arg, %0: tensor<32x32xf32>, tensor<32x32xf32>) outs(%0: tensor<32x32xf32>) // This can be lowered to %1 = linalg.generic {...} ins(%arg, %in: tensor<32x32xf32>, tensor<32x32xi32>) outs(%0: tensor<32x32xf32>) { ^bb0(%a: f32, %i: i32, %out: f32): %f = arith.uitofp %i : f32 %0 = arith.addf %a, %f : f32 linalg.yield %0 : f32 } // Broadcast %0 = linalg.broadcast ins(%in: tensor<32xf32>) init(%out: tensor<32x32xf32>) %1 = linalg.add ins(%arg, %0: tensor<32x32xf32>, tensor<32x32xf32>) outs(%0: tensor<32x32xf32>) // This can be lowered to #bcast_map = affine_map<(d0, d1) -> (d0)> %1 = linalg.generic {... #bcast_map] } ins(%arg, %in: tensor<32x32xf32>, tensor<32xf32>) outs(%0: tensor<32x32xf32>) { ^bb0(%a: f32, %b: f32, %out: f32): %0 = arith.addf %a, %b : f32 linalg.yield %0 : f32 } ``` Once this gets accepted, other arithmetic and maths operations will be added accordingly, with the same semantics. Differential Revision: https://reviews.llvm.org/D154500 -
Valentin Clement authored
Wrong error was reported mentioning that the common block was in more than one data sharing clause. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D154393
-
John Brawn authored
UnresolvedSet::erase works by popping the last element then replacing the element to be erased with that element. When the element to be erased is itself the last element this leads to writing past the end of the set, causing an assertion failure. Fix this by making erase of the last element just pop that element. Differential Revision: https://reviews.llvm.org/D154502
-
Nikita Popov authored
To make sure it is removed in the same InstCombine iteration.
-
David Green authored
If we know bits are already 0, we will not need to clear them again with a BIC. So we can use KnownBits to shrink the size of the constant in the creation BIC from And, potentially undoing the known-bits folds that happen during compilation. BIC only has a single register operand for input and output, so has less scheduling freedom than a AND, but usually saves the materialization of a constant. Differential Revision: https://reviews.llvm.org/D154217
-
David Green authored
-
Corentin Jabot authored
The type was never saved, and therefore never transformed in dependent contexts. Reviewed By: aaron.ballman, #clang-language-wg Differential Revision: https://reviews.llvm.org/D154492
-
Nikita Popov authored
The suffix for the git revision may not be present (or may not be a git revision).
-
Nikita Popov authored
Support the canonical range check pattern for KnownBits assumptions. This is the same as the generic ConstantRange handling, just shifted by an offset.
-
Akash Banerjee authored
Fix clang test error cuased by commit 4a492265. Minor change in order of globals.
-