- May 30, 2024
-
-
Piotr Zegar authored
Verify that size/length methods are called with no arguments. Closes #88203
-
Krzysztof Parzyszek authored
The `target reduction` combination is no longer accepted. Disable the test to avoid build failures, until a better fix is ready.
-
vdonaldson authored
If present, the optional second argument of the ieee_exceptions intrinsic module procedure ieee_support_flag may be either a scalar or an array. Change the signature of the routine that implements this function so that it is processed as a transformational function, not an elemental function, which accounts for this argument variant.
-
Nikita Popov authored
-
LLVM GN Syncbot authored
-
Jay Foad authored
-
Oleksandr T authored
Fixes #93002
-
Krzysztof Parzyszek authored
The "reduction" clause is not allowed on the "target" construct.
-
Roger Ferrer Ibáñez authored
The current way of lowering `llvm.clear_cache` is a bit unusual. As suggested by Matt Arsenault we are better off using an ISD node. This change introduces a new `ISD::CLEAR_CACHE`, registers a new libcall by default named `__clear_cache` and the default legalisation is a libcall. This is preparatory work for a custom lowering of `ISD::CLEAR_CACHE` needed by RISC-V on some platforms.
-
Christian Sigg authored
-
Kristof Beyls authored
-
Nico Weber authored
-
Matt Arsenault authored
-
Guillaume Chatelet authored
Found while investigating #93709
-
Cullen Rhodes authored
In -convert-vector-to-arm-sme the permutation_map is explicitly checked for transpose when converting xfer ops, but for 2-D vector types the only non-identity permutation map is transpose so this can be simplified.
-
Michael Buch authored
This reverts commit 42944e46.
-
Jay Foad authored
-
Jerry Zhang Jian authored
Signed-off-by:Jerry Zhang Jian <jerry.zhangjian@sifive.com>
-
Stephen Tozer authored
This patch updates the emacs, vim, and vscode syntax highlighters to recognize debug records.
-
Shengchen Kan authored
-
Sander de Smalen authored
Changing this into if -> else if -> else if > else is NFC, because the values of FnType are mutually exclusive.
-
Sander de Smalen authored
We can do this in favour of checking the feature macro that is set when compiling for '+sme', like we do in other tests.
-
Andrzej Warzyński authored
Renames asm-constraint-jR.ll and asm-constraint-jR.ll - on case-insensitive files systems those are treated as one file. Originally introduced in #92338.
-
Ramkumar Ramachandra authored
Generalize LoopVectorizationPlanner::isMoreProfitable smoothly across the fixed-vector and scalable-vector cases, taking the trip-count into account, and fixing logical pitfalls that arise from a lack of generality.
-
Stefan Gränitz authored
-
Nikita Popov authored
With opaque pointers, we no longer need a zero-index GEP to get the first element.
-
Sergei Barannikov authored
This is similar to 373c343a, but for targets with zero-or-negative-one booleans. The difference in tests is mostly due to G_SEXT_INREG being illegal for some targets, in which case it gets expanded into G_SHL/G_ASHR pair, which is not currently optimized by the combiner.
-
Tom Eccles authored
This is generally just for consistency with the rest of the pipeline. The assertion for the insertion point is because I am not sure if omp::PrivateClauseOp is supported by FirOpBuilder::getAllocaBlock. I didn't try to fix it because I don't see why we would generate IR like that. See RFC: https://discourse.llvm.org/t/rfc-add-an-interface-for-top-level-container-operations
-
jeanPerier authored
First commit is reviewed in https://github.com/llvm/llvm-project/pull/93682. Lower RANK using fir.box_rank. This patches updates fir.box_rank to accept box reference, this avoids the need of generating an assumed-rank fir.load just for the sake of reading ALLOCATABLE/POINTER rank. The fir.load would generate a "dynamic" memcpy that is hard to optimize without further knowledge. A read effect is conditionally given to the operation.
-
Vlad Serebrennikov authored
A follow-up to #92953. This should fix unexpected performance gains when Clang is built with GCC, and fix downstream LTO crashes reported in https://github.com/llvm/llvm-project/commit/4feae05c6abda364a9295aecfa600d7d4e7dfeb6#r142466703
-
Mubashar Ahmad authored
This patch implements the lowering of vector.deinterleave for 1D vectors. For fixed vector types, the operation is lowered to two llvm shufflevector operations. One for even indexed elements and the other for odd indexed elements. A poison operation is used to satisfy the parameters of the shufflevector parameters. For scalable vectors, the llvm vector.deinterleave2 intrinsic is used for lowering. As such the results found by extraction and used to form the result struct for the intrinsic. -
Nikita Popov authored
Remove zero-index constant expression GEPs, which are not needed with opaque pointers and will get folded away.
-
Him188 authored
This patch adds basic support for scalable vector types in load & store instructions for AArch64 with GISel. Only scalable vector types with a 128-bit base size are supported, e.g. `<vscale x 4 x i32>`, `<vscale x 16 x i8>`. This patch adapted some ideas from a similar abandoned patch [https://github.com/llvm/llvm-project/pull/72976](https://github.com/llvm/llvm-project/pull/72976).
-
Oleksandr "Alex" Zinenko authored
When an operation is erased in Python, its children may still be in the "live" list inside Python bindings. After this, if some of the newly allocated operations happen to reuse the same pointer address, this will trigger an assertion in the bindings. This assertion would be incorrect because the operations aren't actually live. Make sure we remove the children operations from the "live" list when erasing the parent. This also concentrates responsibility over the removal from the "live" list and invalidation in a single place. Note that this requires the IR to be sufficiently structurally valid so a walk through it can succeed. If this invariant was broken by, e.g, C++ pass called from Python, there isn't much we can do.
-
Pavel Labath authored
This is necessary to correctly resolve the context within types, as the name of the type is only present in the type unit.
-
Pavel Labath authored
Module names can be matched either by a full path or just their basename. The completion machinery tried to do both, but had several bugs: - it always inserted the basename as a completion candidate, even if the string being completed was a full path - due to FileSpec canonicalization, it lost information about trailing slashes (it treated "lib/<TAB>" as "lib<TAB>", even though it's clear the former was trying to complete a directory name) - due to both of the previous issues, the completion candidates could end up being shorter than the string being completed, which caused crashes (string out of range errors) when attempting to substitute the results. This patch rewrites to logic to remove these kinds of issues: - basename and full path completion are handled separately - full path completion is attempted always, basename only if the input string does not contain a slash - the code remembers both the canonical and original spelling or the completed argument. The canonical arg is used for matching, while the original spelling is used for completion. This way "/foo///.//b<TAB>" can still match "/foo/bar", but it will complete to "/foo///.//bar".
-
Pavel Labath authored
A synthetic child provider might need to do considerable amount of work to compute the number of children. lldb-dap is currently calling that for all synthethic variables, but it's only actually using the value for values which it deems to be "indexed" (which is determined by looking at the name of the first child). This patch reverses the logic so that GetNumChildren is only called for variables with a suitable first child.
-
Matheus Izvekov authored
Implement AST text dumping of the TemplateName for TemplateSpecializationType and DeducedTemplateSpecializationType.
-
AtariDreams authored
Alive2 Proof: https://alive2.llvm.org/ce/z/Yd2CKF
-
Matheus Izvekov authored
-