- Jun 18, 2022
-
-
Rafael Auler authored
Temporary fix for missing entry offset when creating address translation tables (BAT) after D127935 landed. Will later work on assigning a more reasonable offset different than zero. Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D128092
-
Benjamin Kramer authored
This is supposed to be header-only. Don't know how to express that in bazel.
-
Benjamin Kramer authored
This adds weak versions of the truncation libcalls in case the runtime environment doesn't have them. Differential Revision: https://reviews.llvm.org/D128091
-
Aart Bik authored
Sparse library ABI issues are fixed. https://github.com/llvm/llvm-project/issues/55992 Reviewed By: bkramer Differential Revision: https://reviews.llvm.org/D128086
-
Philip Reames authored
Should be fully covered by the generic demanded field based logic just below, and this ensures better coverage of that logic.
-
Philip Reames authored
Doing so let's the post-mutation pass leverage the demanded info to rewrite vsetvlis before a store/mask-op to eliminate later vsetvlis. Sorry for the lack of store test change; all of my attempts to write something reasonable have been handled through existing logic.
-
Florian Hahn authored
This reverts commit 7aa8a678. This version includes fixes to address issues uncovered after the commit landed and discussed at D11448. Those include: * Limit select-traversal to selects inside the loop. * Freeze pointers resulting from looking through selects to avoid branch-on-poison.
-
Sanjay Patel authored
-
Nikolas Klauser authored
Reviewed By: ldionne, Mordante, #libc, saugustine Spies: saugustine, MaskRay, arichardson, mstorsjo, jloser, libcxx-commits, arphaman Differential Revision: https://reviews.llvm.org/D127953
-
Chris Bieneman authored
The added section and table here list the object file formats LLVM MC supports and which targets support each format. Differential Revision: https://reviews.llvm.org/D127645
-
Chris Bieneman authored
This reverts commit 0dd243fa. I accidentally pushed this! Oops!
-
Frederik Gossen authored
Differential Revision: https://reviews.llvm.org/D128078
-
Chris Bieneman authored
This document is a work in progress to begin fleshing out documentation for the DirectX backend and related changes in the LLVM project. This is not intended to be exhaustive or complete, it is intended as a starting point so taht future changes have a place for documentation to land. Differential Revision: https://reviews.llvm.org/D127640
-
Chris Bieneman authored
-
Arthur Eubanks authored
-
isuckatcs authored
Introducing structured binding to data members. Differential Revision: https://reviews.llvm.org/D127643
-
Stanislav Gatev authored
Add support for comma binary operator. Differential Revision: https://reviews.llvm.org/D128013 Reviewed-by: ymandel, xazax.hun
-
Philip Reames authored
-
Nico Weber authored
-
Daniel Thornburgh authored
This adds a parser for the log symbolizer markup format discussed in https://discourse.llvm.org/t/rfc-log-symbolizer/61282. The parser operates in a line-by-line fashion with minimal memory requirements. This doesn't yet include support for multi-line tags or specific parsing for ANSI X3.64 SGR control sequences, but it can be extended to do so. The latter can also be relatively easily handled by examining the resulting text elements. Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D124686
-
Kiran Chandramohan authored
The upstreamed code was not incrementing the sliceOffset in multiples of 3. This issue is fixed by using Offsets and incrementing by 3 during every iteration. In the conversion pattern, we were comparing the definingOp of an operand with an FIR::UndefOp. Use LLVM::UndefOp for conversion. Reviewed By: clementval, Leporacanthicus Differential Revision: https://reviews.llvm.org/D128017
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
This mostly copys the `<experimental/functional>` stuff and updates the code to current libc++ style. Reviewed By: ldionne, #libc Spies: nlopes, adamdebreceni, arichardson, libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D121074
-
Philip Reames authored
This code should be dead. A simple whole register copy of an IMPLICIT_DEF, is simply an IMPLICIT_DEF of it's own. (This would not be true for freeze, but is for copy.) If we find a case which gets here with vector operand copy of an IMPLICIT_DEF, we most likely have an earlier missed optimization anyways. (The most recent case of this was e6c7a3a5, found by Craig during review of this patch.) There might be others, and if so, we'll revisit them individually as regressions are reported. Differential Revision: https://reviews.llvm.org/D127996
-
Joe Nash authored
-
isuckatcs authored
If a lazyCompoundVal to a struct is bound to the store, there is a policy which decides whether a copy gets created instead. This patch introduces a similar policy for arrays, which is required to model structured binding to arrays without false negatives. Differential Revision: https://reviews.llvm.org/D128064
-
Michael Jones authored
In the sign writer, a size_t was being compared to an int. This patch casts the size_t to an int so that the comparison doesn't cause a sign comparison warning. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D127984
-
Nikolas Klauser authored
Simplify the implementation of `std::copy` and `std::move` by using `__unwrap_iter` and `__rewrap_iter` to unwrap and rewrap `reverse_iterator<reverse_iterator<Iter>>` instead of specializing `__copy_impl` and `__move_impl`. Reviewed By: ldionne, #libc Spies: wenlei, libcxx-commits Differential Revision: https://reviews.llvm.org/D127049
-
Martin Sebor authored
The memcmp simplifier is limited to folding to constants calls with constant arrays and constant sizes. This change adds the ability to simplify memcmp(A, B, N) calls with constant A and B and variable N to the pseudocode equivalent of N <= Pos ? 0 : (A < B ? -1 : B < A ? +1 : 0) where Pos is the offset of the first mismatch between A and B. Differential Revision: https://reviews.llvm.org/D127766
-
isuckatcs authored
For DecompositionDecl, the array, which is being decomposed was not present in the CFG, which lead to the liveness analysis falsely detecting it as a dead symbol. Differential Revision: https://reviews.llvm.org/D127993
-
bixia1 authored
Linalg opdsl now supports negf/add/sub/mul on complex types. Add a test. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D128010
-
Adrian Prantl authored
llvm::formatv expects the parameter indexes to start with 0. Unfortunately it doesn't detect out-of-bounds accesses in the format string at compile-time, of which we had several inside ClangExpressionDeclMap. This patch fixes these out-of-bounds format accesses. Example output Before ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_class' in a 'TranslationUnit' CEDM::FEVD Searching the root namespace CEDM::FEVD Adding type for $__lldb_class: 1 After ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_class' in a 'TranslationUnit' CEDM::FEVD Searching the root namespace CEDM::FEVD Adding type for $__lldb_class: class (lambda) Patch by Michael Buch! Differential Revision: https://reviews.llvm.org/D128063
-
- Jun 17, 2022
-
-
Nico Weber authored
Not really needed for anything as far as I can tell (?), more for completeness.
-
Christopher Bate authored
Fixes build failure caused by 51b925df
-
Aart Bik authored
This fixes all sorts of ABI issues due to passing by-value (using by-reference with memref's exclusively). Reviewed By: bkramer Differential Revision: https://reviews.llvm.org/D128018
-
Christopher Bate authored
This change adds a transformation and pass to the NvGPU dialect that attempts to optimize reads/writes from a memref representing GPU shared memory in order to avoid bank conflicts. Given a value representing a shared memory memref, it traverses all reads/writes within the parent op and, subject to suitable conditions, rewrites all last dimension index values such that element locations in the final (col) dimension are given by `newColIdx = col % vecSize + perm[row](col/vecSize,row)` where `perm` is a permutation function indexed by `row` and `vecSize` is the vector access size in elements (currently assumes 128bit vectorized accesses, but this can be made a parameter). This specific transformation can help optimize typical distributed & vectorized accesses common to loading matrix multiplication operands to/from shared memory. Differential Revision: https://reviews.llvm.org/D127457
-
Guillaume Chatelet authored
-
Quinn Pham authored
This patch adds the instructions `MTVSCR` and `MFVSCR` as not swappable to the PPCVSXSwapRemoval pass because they are not lane-insensitive. This will prevent the compiler from optimizing out required swaps when using `lxvd2x` and `stxvd2x`. Reviewed By: #powerpc, nemanjai Differential Revision: https://reviews.llvm.org/D128062
-
Philip Reames authored
A splat of the values 0 and -1 as sign extended 12 bit immediates are always the same bit pattern regardless of the etype used to perform the operation. As a result, we can sometimes avoid introducing a vsetvli just for the purposes of a splat. Looking at the diffs, we don't get a huge amount of immediate value out of this. We mostly push the vsetvli one instruction down, usually in front of a vmerge. We also don't get the corresponding fixed length vector cases because VL typically is changed despite the actual bits written being the same. Both of these are areas I plan to explore in future patches. Interestingly, this makes a great example of why we need the forward and backward implementation to be consistent. Before we merged the demanded field handling, if we implement only the forward direction, we lost the ability to mutate a prior vsetvli and eliminate a later one entirely. This resulted in practical regressions instead of improvements. It's always nice when practice matches theory. :) Differential Revision: https://reviews.llvm.org/D128006
-
Ben Langmuir authored
Dependency scanning does not care about the order of submodules for correctness, so sort the submodules so that we get the same command-lines to build the module across different TUs. The order of inferred submodules can vary depending on the order of #includes in the including TU. Differential Revision: https://reviews.llvm.org/D128008
-