- Nov 15, 2021
-
-
Zahira Ammarguellat authored
support default values for C/C++. FPP-MODEL=PRECISE enables FFP-CONTRACT (FMA is enabled).
-
Philip Reames authored
-
Alexey Bataev authored
-
Quinn Pham authored
As part of using inclusive language within the llvm project and to fix the command because the master branch was renamed, this patch replaces master with main in `find_interesting_reviews.py`. Reviewed By: kristof.beyls Differential Revision: https://reviews.llvm.org/D113918
-
Philip Reames authored
All of the interesting logic from this routine has been removed, inline the single check into the sole non-assert caller. The assert use has little value with the restructured code and is simply dropped.
-
Lei Zhang authored
Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D113927
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D113508
-
Vitaly Buka authored
-
Philip Reames authored
-
Alexey Bataev authored
-
Zarko Todorovski authored
This reverts commit 44a64afd.
-
Steven Wan authored
The existing logic adds `-rpath` to CGO_LDFLAGS, which is not a valid linker option on AIX. This patch substitutes it with `-blibpath` on AIX. Reviewed By: daltenty Differential Revision: https://reviews.llvm.org/D113704
-
Balazs Benics authored
`CallDescriptions` deserve its own translation unit. This patch simply moves the corresponding parts. Also includes the `CallDescription.h` where it's necessary. Reviewed By: martong, xazax.hun, Szelethus Differential Revision: https://reviews.llvm.org/D113587
-
Simon Pilgrim authored
Update splitVectorIntUnary/splitVectorIntBinary to use this internally, after some operand type sanity checks. Avoid code duplication and makes it easier to split other vector instruction forms in the future.
-
Craig Topper authored
This handles the case where the mask register instruction input comes from a Phi of vsetvlis. If the VLMAX is the same as the VLMAX required by the mask register instruction, we can avoid a vsetvli. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D113204
-
Peter Steinfeld authored
Section 10.2.2.4, paragraph 3 states that, for procedure pointer assignment: If the pointer object has an explicit interface, its characteristics shall be the same as the pointer target ... Thus, it's illegal for a procedure pointer with an explicit interface to be associated with a procedure whose interface is implicit. However, there's no prohibition that disallows a procedure pointer with an implicit interface from being associated with a procedure whose interface is explicit. We were incorrectly emitting an error message for this latter case. We were also not covering the case of procedures with explicit interfaces where calling them requires the use of a descriptor. Such procedures cannot be associated with procedure pointers with implicit interfaces. Differential Revision: https://reviews.llvm.org/D113706
-
Roman Lebedev authored
-
Roman Lebedev authored
-
Mehrnoosh Heidarpour authored
https://alive2.llvm.org/ce/z/2v6rhF Fixes: https://llvm.org/PR52478 Differential Revision: https://reviews.llvm.org/D113783
-
Denys Petrov authored
Summary: Specifically, this fixes the case when we get an access to array element through the pointer to element. This covers several FIXME's. in https://reviews.llvm.org/D111654. Example: const int arr[4][2]; const int *ptr = arr[1]; // Fixes this. The issue is that `arr[1]` is `int*` (&Element{Element{glob_arr5,1 S64b,int[2]},0 S64b,int}), and `ptr` is `const int*`. We don't take qualifiers into account. Consequently, we doesn't match the types as the same ones. Differential Revision: https://reviews.llvm.org/D113480
-
Simon Pilgrim authored
-
Roman Lebedev authored
-
Chris Lattner authored
This is analogous to what LLVM's PatternMatch.h supports, but LLVM calls it m_Value for both the binding and nonbinding versions. This is an upstream from CIRCT and is used there. Differential Revision: https://reviews.llvm.org/D113905
-
Zarko Todorovski authored
This patch changes it to ignorelist and contains a filename change for the .txt file that's called. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D113689
-
Sanjay Patel authored
The first try at this patch ( bf5748a1 ) was reverted ( 5be64d41 ) because it could crash. The cause of that problem was failing to account for the optional peek-through-bitcast in the enclosing function. This version of the patch adds a clause to avoid the fold in case of bitcasts because it is unlikely to be profitable in that scenario. A test case based on https://llvm.org/PR52504 was added to make sure we don't have that problem again. Original commit message: and (pcmpgt X, -1), Y --> pandn (vsrai X, BitWidth-1), Y This avoids the -1 constant vector in favor of an arithmetic shift instruction if it exists (the ISA is still not complete after all these years...). We catch this pattern late in combining by matching PCMPGT, so it should not interfere with more general folds. Differential Revision: https://reviews.llvm.org/D113603
-
Sanjay Patel authored
This goes with D113603 - which was reverted because it could crash on this and similar examples.
-
Roman Lebedev authored
[X86][Costmodel] `getReplicationShuffleCost()`: promote 8 bit-wide elements to 32 bit when no AVX512VBMI Currently `X86TTIImpl::getInterleavedMemoryOpCostAVX512()` asks about i8 elt type, so this change does affect vectorization. In the end, it will ask about i1. We should also try to promote to i16 if we have AVX512BW, i'll do that in a follow-up. All costs here look good, i've added the missing truncation costs in preparatory patches. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D113853
-
Roman Lebedev authored
[X86][Costmodel] `trunc v32i16 to v64i8` can appear after legalization, cost is same as for `trunc v32i16 to v32i8` Some of the costs get larger here, but i suppose that makes sense since we'd previously query scalarization costs that may not be really representative of the reality. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D113852
-
Roman Lebedev authored
[X86][Costmodel] `trunc v8i64 to v16i8/v32i8/v64i8` can appear after legalization, cost is same as for `trunc v8i64 to v8i8` While this one is trivial and identical to the previous patch, there is a weird cost change in a follow-up patch that i'm not sure about. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D113851
-
Roman Lebedev authored
[X86][Costmodel] `trunc v16i32 to v32i8/v64i8` can appear after legalization, cost is same as for `trunc v16i32 to v16i8` While this one is trivial and identical to the previous patch, there is a weird cost change in a follow-up patch that i'm not sure about. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D113850
-
Kiran Chandramohan authored
Add a fir.llvm_ptr type to allow any level of indirections Currently, fir pointer types (fir.ref, fir.ptr, and fir.heap) carry a special Fortran semantics, and cannot be freely combined/nested. When implementing some features, lowering sometimes needs more liberty regarding the number of indirection levels. Add a fir.llvm_ptr that has no constraints. Allow its usage in fir.coordinate_op, fir.load, and fir.store. Convert the FIR LLVMPointer to an LLVMPointer in the LLVM dialect. Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D113755 Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Jon Chesterfield authored
Using llvm-link to add rocm device-libs probably doesn't work Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D112639
-
Simon Pilgrim authored
If an operand is a bitcasted or widended constant, try to more aggressively create broadcastable constants for folding, which in particular helps non-VLX modes. I've refactored getAVX512Node so that VLX targets can make better use of this as well. NOTE: In the future, I think we should consider removing the broadcast of constant data from DAG entirely and move this to either X86InstrInfo::foldMemoryOperand or a new pass - AVX1/2 targets has similar problems with missed (whole vector) folds that need to be improved as well. Differential Revision: https://reviews.llvm.org/D113845
-
Alexey Bataev authored
A bunch of scalars can be treated as a splat not only if all elements are the same but also if some of them are undefvalues. Differential Revision: https://reviews.llvm.org/D113774
-
Ella Ma authored
Required by https://stackoverflow.com/questions/58073606 As the output argument is stripped out in the clang-check tool, it seems impossible for clang-check users to customize the output file name, even with -extra-args and -extra-arg-before. This patch adds the -analyzer-output-path argument to allow users to adjust the output name. And if the argument is not set or the analyzer is not enabled, the original strip output adjuster will remove the output arguments. Differential Revision: https://reviews.llvm.org/D97265
-
Valentin Clement authored
As for D113662, this patch just add a place holder for the fir.global_len operation conversion. This operation is part of F20xx and is not implemented yet. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D113887
-
Andrzej Warzynski authored
This patch extends the `FIRToLLVMLowering` pass in Flang by adding a hook to transform `fir.unboxchar` to a sequence of LLVM MLIR instructions. This is part of the upstreaming effort from the `fir-dev` branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Differential Revision: https://reviews.llvm.org/D113747 Originally written by: Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Valentin Clement authored
Extra commit after D113878
-
Louis Dionne authored
-
Matt Devereau authored
Regenerate acle_st1*.c tests using update_cc_test_checks.py
-