- Jun 13, 2024
-
-
Matt Arsenault authored
Mostly fixes handling of bfloat vectors, but also some missing i16 cases.
-
Matt Arsenault authored
An 8 x i16 raw load was incorrectly using a 64-bit memory type, which would assert in the MachineMemOperand constructor. This is preparation for a cleanup which will make the buffer intrinsics work for all legal types.
-
Björn Pettersson authored
DAGTypeLegalizer::SplitVecRes_INSERT_VECTOR_ELT and DAGTypeLegalizer::SplitVecRes_EXTRACT_VECTOR_ELT did not handle non byte-sized elements properly. In fact, it only dealt with elements smaller than 8 bits (as well as byte-sized elements). This patch generalizes the support for non byte-sized element by always widening the the vector elements to next "round integer type" (a power of 2 bit size). This should make sure that we can access a single element via a simple byte-addressed scalar load/store. Also removing a suspicious CustomLowerNode call from SplitVecRes_INSERT_VECTOR_ELT. Considering that it did not reset the Lo/Hi out arguments before the return I think that DAGTypeLegalizer::SplitVectorResult could be fooled into registering the input vector as being the result. This should however not have caused any problems since DAGTypeLegalizer::SplitVectorResult is doing the same CustomLowerNode call, making the code removed by this patch redundant.
-
Tom Eccles authored
Fixes #92440 I had to delete part of reduction09.f90 because I don't think that should have ever worked.
-
Jay Foad authored
-
Tai Ly authored
In order to fold, we need to create DenseElementsAttr, which does not support quantized element types. This patch adds tests for folding quntized element types and disable tosa folders where appropriate. refactored canonicalize.mlir test to use --split-input-file also fixed verifier for trait MulOperandsAndResultElementType for quantized element types Signed-off-by:Tai Ly <tai.ly@arm.com>
-
Matt Arsenault authored
Re-use already queried call arguments and matched APFloat, instead of re-matching the original argument.
-
jeanPerier authored
Deal with the cases where lower bounds, or attribute, or dynamic type must be updated when passing an assumed-rank actual argument to an assumed-rank dummy argument. copy-in/copy-out and passing target assumed-rank to intent(in) pointers will be handled in separate patch.
-
Pavel Labath authored
…ARFDIE This puts them closer to the other two functions doing something very similar. I've tried to stick to the original logic of the functions as much as possible, though I did apply some easy simplifications. The changes in DWARFDeclContext.h are there to make the unit tests produce more useful error messages.
-
jeanPerier authored
LBOUND and SHAPE runtime were added with an API that avoids making a dynamic allocation for the small result storage. Update the UBOUND API that was already there and used in lowering outside of the assumed-rank case. Add tests for the assumed-rank case.
-
jeanPerier authored
Dynamic type and element size of the descriptor dummy must match the dummy static type when the dummy is not polymorphic, otherwise IS_CONTIGUOUS, C_SIZEOF.... won't work properly inside the callee. When the actual argument is polymorphic the descriptor of the actual may have a different dynamic type/element size. Hence, the dummy argument cannot simply take or copy the descriptor of the actual argument.
-
NAKAMURA Takumi authored
-
Mitch Phillips authored
When running some tests with --gtest_repeat=100 --gtest_shuffle, I encountered some problems because the allocator wasn't torn down completely, and the singleton pointer ended up pointing to a use-after-scope'd object. This patch has a couple of fixes and niceties: 1. Removing the once-init stuff from tests, now that it's implicitly done in GuardedPoolAllocator::installAtFork() anyway. 2. Calling uninitTestOnly() in the late_init test. 3. Resetting the HasReportedBadPoolAccess when the signal handlers are installed (allowing for --gtest_repeat w/ recoverable mode). 4. Adding a check and resetting the singleton pointer in uninitTestOnly(). -
Matt Arsenault authored
Do not require a libm ldexp libcall to emit the ldexp intrinsic when transforming pow(2, x) -> ldexp(1, x) This enables the half intrinsic case to fold.
-
Martin Storsjö authored
The same has been done in a couple other existing tests, that also are skipped on Windows (e.g. ld-path.c). Some tests that really do want to test setting the path on Windows does it differently, see e.g. ps4-ps5-linker-win.c. Since a65771fc, the spirv-toolchain.cl test does one test where PATH is set. Setting PATH does work in some build configurations - however, if built with e.g. llvm-mingw, the built Clang executable depends on libc++.dll (and libunwind.dll) which are found in PATH. If the PATH is overridden, the newly built Clang executable no longer can run.
-
Vyacheslav Levytskyy authored
This PR fixes a problem in logics of cleaning unused constants, ensuring that cleaning of temporary constants doesn't purge tracked constants. On a rare occasion when this happens SPIR-V Backend emits a code that refers to a non-existent register, earlier related with a constant. Attached to the PR test case is a minimal reproducer where names of variables and instructions lead to such a rare coincidence.
-
Vyacheslav Levytskyy authored
This PR adds builtin functions to insert instructions from 'Group and Subgroup' section of the SPIR-V Specification. Corresponding tests are updated, `spirv-val` run is added where it was missed.
-
Ivan Kosarev authored
Some tools generate such instructions with the FORMAT field set to 0, which corresponds to buf_fmt_invalid, but that should not prevent them from being recognised on decoding.
-
Kristof Beyls authored
I'm not aware of any other documentation changes that are needed to complete the migration from chromium to github to report security issues. The top-level security.md file refers to https://llvm.org/docs/Security.html#how-to-report-a-security-issue for documentation on reporting a security issue, which is being updated as part of this PR.
-
Rajveer Singh Bharadwaj authored
This adds a fix-it hint in situations where a modifiable lvalue is expected, but a prvalue or non-modifiable lvalue of pointer type was found, so long as dereferencing the pointer would result in a modifiable lvalue. Resolves #93066
-
Johannes Doerfert authored
We already used a flat array of kernel launch parameters for the AMD GPU launch but now we also use this scheme for the NVIDIA GPU launch. The only remaining/required use of the indirection is the host plugin (due ot ffi). This allows to us simplify the use for non-OpenMP kernel launch.
-
Pierre van Houtryve authored
It's very expensive and doesn't achieve anything. I one test I did, it saves almost 10s on a 2m23s build, bringing it down to 2m15s using a downstream branch.
-
pvanhout authored
-
Haojian Wu authored
-
Nikita Popov authored
I believe we should return after the SDR for the error case, instead of invoking it a second time with Error::success().
-
Zain Jaffal authored
I am using `isKnownInversion` in the following pr https://github.com/llvm/llvm-project/pull/94915 it is useful to have the method in a shared class so I can reuse it. I am not sure if `ValueTracking` is the correct place but it looks like most of the methods with the pattern `isKnownX` belong there.
-
PiJoules authored
This is the actual freelist allocator which utilizes the generic FreeList and the Block classes. We will eventually wrap the malloc interface around this. This is a part of #94270 to land in smaller patches.
-
Johannes Doerfert authored
We cannot use assumed dead information for nonnull IR-implied deduction as we will never go back and re-check. This was reported in https://github.com/llvm/llvm-project/pull/85810
-
Tom Stellard authored
These were caught by the clang static analyzer.
-
Timm Bäder authored
Neither isConstant() not isConstQualified() return true for these.
-
Ivy Zhang authored
Reverts llvm/llvm-project#93443
-
Fangrui Song authored
For bolt/test/runtime/X86/exceptions-pic.test, llvm-bolt seems to call emitLabel twice and the assert will fail. Work around it after 2cc4bc13
-
Vitaly Buka authored
blendvs are very similar to select, so we adjust arguments and forward them into select handler.
-
LLVM GN Syncbot authored
-
Matheus Izvekov authored
This reverts the functional elements of commit 3e78fa86 and redoes it, by fixing the true root cause of #61317. A TemplateName can be non-canonical; profiling it based on the canonical name would result in inconsistent preservation of as-written information in the AST. The true problem in #61317 is that we would not consider the methods with requirements expression which contain DTSTs as the same in relation to merging of declarations when importing modules. The expressions would never match because they contained DTSTs pointing to different redeclarations of the same class template, but since canonicalization for them was broken, their canonical types would not match either. --- No changelog entry because #61317 was already claimed as fixed in previous release.
-
Congcong Cai authored
`#` and `##` preprocessing tokens cannot be replaced by constexpr function. It should be ignored in check.
-
Ivy Zhang authored
Add an `fastMathAttr` on `arith::extf` and `arith::truncf`. If these two ops are inserted by some promotion passes (like legalize-to-f32 / emulate-unsupported-floats), they will be labeled as `FastMathFlags::contract`, denoting that they can be then `eliminated by canonicalizer`. The `elimination` can help improve performance, while may introduce some numerical differences.
-
dyung authored
-
Fangrui Song authored
Follow-up to a91c8398.
-
Fangrui Song authored
so that tools like llc can use the option as well. ca91538c is a prerequisite.
-