- Oct 13, 2022
-
-
Mark de Wever authored
This moves some includes missed in D133212. Reviewed By: ldionne, #libc, philnik Differential Revision: https://reviews.llvm.org/D135180
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D135773
-
Peter Rong authored
-
Volodymyr Sapsai authored
[modules] Allow to validate system headers less often with `-fmodules-validate-once-per-build-session`. Make flags `-fmodules-validate-system-headers` and `-fmodules-validate-once-per-build-session` orthogonal, so they have their own independent responsibilities - if system headers should be validated and how often. rdar://87988889 Differential Revision: https://reviews.llvm.org/D135232
-
Sanjoy Das authored
This patch takes the first step towards a more principled modeling of undefined behavior in MLIR as discussed in the following discourse threads: 1. https://discourse.llvm.org/t/semantics-modeling-undefined-behavior-and-side-effects/4812 2. https://discourse.llvm.org/t/rfc-mark-tensor-dim-and-memref-dim-as-side-effecting/65729 This patch in particular does the following: 1. Introduces a ConditionallySpeculatable OpInterface that dynamically determines whether an Operation can be speculated. 2. Re-defines `NoSideEffect` to allow undefined behavior, making it necessary but not sufficient for speculation. Also renames it to `NoMemoryEffect`. 3. Makes LICM respect the above semantics. 4. Changes all ops tagged with `NoSideEffect` today to additionally implement ConditionallySpeculatable and mark themselves as always speculatable. This combined trait is named `Pure`. This makes this change NFC. For out of tree dialects: 1. Replace `NoSideEffect`...
-
Sam McCall authored
- store NestedNameSpecifier & Loc for the qualifiers This information was entirely missing from the AST. - expose the location information for qualifier/identifier/typedefs as typeloc This allows many traversals/astmatchers etc to handle these generically along with other references. The decl vs type split can help preserve typedef sugar when https://github.com/llvm/llvm-project/issues/57659 is resolved. - fix the SourceRange of UsingEnumDecl to include 'using'. Fixes https://github.com/clangd/clangd/issues/1283 Differential Revision: https://reviews.llvm.org/D134303
-
Han Zhu authored
-
Benjamin Maxwell authored
This test shows instcombine failing to remove a alloca and memcpy for for a constant array that is read with a masked load. This will be addressed in a subsequent commit.
-
Mingming Liu authored
Pre-commit test cases to show cases when UZP1 (TRUNC, TRUNC) could be combined into TRUNC (UZP1) (with some proper bit conversions in the middle) to generate more efficient code. Differential Revision: https://reviews.llvm.org/D133280
-
Nathan Sidwell authored
Sadly the demangler copies have diverged. This resyncs them by a) pulling the meaningful llvm changes into libcxxabi's gold copy. b) rerunning the sync script. I notice uses of placement new, which assume the allocator succeeds -- that's incorrect in general, but an orthogonal problem. Reviewed By: bader Differential Revision: https://reviews.llvm.org/D135446
-
Arthur Eubanks authored
Add a check (can be disabled via a flag) that the pipeline we generate is actually parsable. Can be disabled because we don't expect to handle every pass in -print-pipeline-passes. Fixes #58280. Reviewed By: ChuanqiXu Differential Revision: https://reviews.llvm.org/D135703
-
Mehdi Amini authored
-
Mehdi Amini authored
-
- Oct 12, 2022
-
-
Sanjay Patel authored
This would solve an example from issue #58137 more generally, but it may require adding a canonicalization for shift + shift to shift + add.
-
Mark de Wever authored
Implements: - P2291R3 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in <charconv> Header Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D131317
-
Mark de Wever authored
This partly reverts D133535 and enables CTAD for more parts in format. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D135292
-
Nicolas Vasilache authored
This revision also retires code that has now become dead. Context: https://discourse.llvm.org/t/psa-retire-linalg-filter-based-patterns/63785 Differential Revision: https://reviews.llvm.org/D135771
-
Guillaume Chatelet authored
This reverts commit 4c19439d.
-
Mirko Brkusanin authored
-
Sanjay Patel authored
(X << Z) / (Y << Z) --> X / Y https://alive2.llvm.org/ce/z/CLKzqT This requires a surprising "nuw" constraint because we have to guard against immediate UB via signed-div overflow with -1 divisor. This extends 008a8903 and is another transform derived from issue #58137.
-
Guillaume Chatelet authored
This version is more composable and also simpler at the expense of being more explicit and more verbose. This patch is not meant to be submitted but gives an idea of the change. Codegen can be checked in https://godbolt.org/z/6z1dEoWbs by removing the "static inline" before individual functions. Unittests are coming. Suggested review order: - utils - op_base - op_builtin - op_generic - op_x86 / op_aarch64 - *_implementations.h Differential Revision: https://reviews.llvm.org/D135134
-
Alexey Bataev authored
Need to set the insertpoint for extractelement to point to the first instruction in the node to avoid possible crash during external uses combine process. Without it we may endup with the incorrect transformation. Differential Revision: https://reviews.llvm.org/D135591
-
Andre Vieira authored
This patch updates the instructions on how to run the mem* benchmarks in README.md. Differential Revision: https://reviews.llvm.org/D135582
-
Sanjay Patel authored
(X << Z) / (Y << Z) --> X / Y https://alive2.llvm.org/ce/z/E5eaxU This fixes the motivating example from issue #58137, but it is not the most general transform. We should probably also convert left-shift in the divisor to right-shift in the dividend for that, but that exposes another missed canonicalization for shifts and adds.
-
Nikita Popov authored
-
Jordan Rupprecht authored
-
Simon Pilgrim authored
Working on Issue #57872 - its really useful to be able to autogenerate checks
-
Louis Dionne authored
As far as I can tell, all the compilers we support have support for C++20 coroutines now. Differential Revision: https://reviews.llvm.org/D135274
-
Louis Dionne authored
-
Nikita Popov authored
-
Alexey Bataev authored
Freeze instruction in some cases makes codegen worse, so need to be very careful when emitting it. Instead improve analysis in isUndefVector function to generate mask of unused elements and use it in the analysis. Differential Revision: https://reviews.llvm.org/D135382
-
Nicolas Vasilache authored
This transformation is available and tested via the transform dialect. Differential Revision: https://reviews.llvm.org/D135767
-
Nicolas Vasilache authored
Linalg ops are generally lowered to loops using a pass and the individual application of patterns has no concrete uses. If/when necessary, this can later be reintroduced via a proper transform dialect op. Differential Revision: https://reviews.llvm.org/D135766
-
Kai Nacke authored
Root cause for the regression is that value %6598 is defined as a label, and later as an i32 value. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D135778
-
Florian Hahn authored
Extend test coverage to also include inductions with step > 1 and also with runtime trip counts.
-
Valentin Clement authored
Polymorphic entities with allocatable or pointer attribute cannot be passed directly as passed-object when the type-bound procedure is expecting a simply dummy polymorphic entity. Use fir.rebox to adapt the fir.class box to the tbp type. Depends on D135649 Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D135654
-
Tobias Gysi authored
One constant generated in MemRefToLLVM had a hardcoded bitwidth of 64 bits. The fix uses the typeConverter to create a constant that matches the bitwidth of the provided by the data layout. The issue was detected in an attempt to add a verifier to the LLVM ICmp operation that checks that the types of the compared arguments match. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D135775
-
Louis Dionne authored
However, mark them as EXCLUDE_FROM_ALL when we don't want to build them. Simply declaring the targets should be of no harm, and it allows other projects to mention these targets regardless of whether they end up being built or not. While the diff may not make that obvious, this patch basically moves the definition of e.g. `cxx_shared` out of the `if (LIBCXX_ENABLE_SHARED)` and instead marks it as `EXCLUDE_FROM_ALL` conditionally on whether LIBCXX_ENABLE_SHARED is passed. It then does the same for libunwind and libc++abi targets. Differential Revision: https://reviews.llvm.org/D134221
-
gonglingqin authored
Support SETLE/SETEQ and expand SETGE/SETNE/SETGT Differential Revision: https://reviews.llvm.org/D135511
-
Sanjay Patel authored
These folds were added recently with: 6b869be8 8da2fa85 ...but they didn't account for the "exact" attribute, and that can be safely propagated: https://alive2.llvm.org/ce/z/F_WhnR https://alive2.llvm.org/ce/z/ft9Cgr
-