- Feb 27, 2023
-
-
Nico Weber authored
-
Alex Bradbury authored
The `tyname_cell` definitions at the top are now all the same, so replace them with a single `alloca_cell` type.
-
Alex Bradbury authored
Preparation for further additions.
-
Alexey Lapshin authored
This patch adds support of DWARFv5 .debug_rnglists table. As DWARFLinker resolves relocations, it is able to always use DW_FORM_addr instead of DW_FORM_addrx. DW_FORM_addrx helps to minimize number of relocations, it is also used for split DWARF. Both of these cases are not relevant for the DWARFLinker. Thus, this patch converts all DW_FORM_addrx forms into the DW_FORM_addr. And, as the result, it converts range lists of DW_FORM_rnglistx form into the DW_FORM_sec_offset. For the --update case all DW_FORM_addrx, DW_FORM_rnglistx are preserved as is. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D143903
-
Noah Goldstein authored
Added: OR, SMAX, SMIN, UMAX, UMIN, ABS, SHL, SRL, SRA, MUL Intentionally not generically using TLI.isBinOp as that causes regressions as there are many binops that cannot combine with masked instructions. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D143860
-
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D144144
-
Noah Goldstein authored
`{v}blend{d|ps|pd}` is preferable to `{v}blendw` so widen so that we can match it. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D143789 -
Noah Goldstein authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D143788
-
Simon Pilgrim authored
-
William S. Moses authored
Invariant.group's are not sufficiently handled by LICM. Specifically, if a given invariant.group loaded pointer is not overwritten between the start of a loop, and its use in the load, it can be hoisted. The invariant.group (on an already invariant pointer operand) ensures the result is the same. If it is not overwritten between the start of the loop and the load, it is therefore legal to hoist. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D144053
-
zhongyunde authored
Fix https://github.com/llvm/llvm-project/issues/59740. NOTE: retry as we can't reproduce the break locally when first commit. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D141188
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
- Feb 26, 2023
-
-
Brad Smith authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
bitselect(52,-6553,m) -> xor(and(xor(52,-6553),m),52) folds much better than or(and(52,not(m)),and(-6553,m))
-
Sanjay Patel authored
-
Simon Pilgrim authored
As noted on Issue #45817 we didn't have scalar coverage for this
-
Piotr Zegar authored
Implemented support for bit-field members as a loop variable or upper limit. Supporting also non bit-field integer members. Fixes issues: https://github.com/llvm/llvm-project/issues/58614 Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D142587
-
Mehdi Amini authored
The flag name isn't the best: avoiding negative is in general more readable and conveys the intent better.
-
Simon Pilgrim authored
Extend tests for D144449 to ensure we aren't regressing code on targets with a slow INC/DEC instruction (or i686 without CMOV)
-
Roy Jacobson authored
A somewhat common code-pattern is to default a destructor in the source file and not in the header. For example, this is the way to use smart pointers with forward-declared classes: ```c++ struct Impl; struct A { ~A(); // Can't be defaulted in the header. private: std::unique_ptr<Impl> impl; }; ``` To be able to use this check with this pattern, I modified the behavior with `AllowSoleDefaultDtor` to not trigger on destructors if they aren't defined yet. Since a declared destructor should still be defined somewhere in the program, this won't miss bad classes, just diagnose on less translation units. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D143851 -
Mark de Wever authored
The current clang-tidy settings work in the CI but not on all systems outside the CI. - The range 16...17 doesn't work when only clang-17 is installed. - Running CMake a second time will fail. This addresses these issues. Reviewed By: philnik, #libc Differential Revision: https://reviews.llvm.org/D144785
-
Younan Zhang authored
We don't want to produce inlay hints for arguments for which user has left param name comments. But we're not decomposing location of the parameter correctly at the moment because the location we've passed into `SM.getDecomposedLoc` is not always FileID. Fixes clangd/clangd#1495 Reviewed By: nridge Differential Revision: https://reviews.llvm.org/D144074
-
Simon Pilgrim authored
-
Valentin Clement authored
Calling the runtime on disassociated pointer or unallocated allocatable will trigger a segfault. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D144752
-
Piotr Zegar authored
Correct example, and add information about limitations. Fixes: https://github.com/llvm/llvm-project/issues/55572 Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D144594
-
Alexis Murzeau authored
The CharPrinter is a typo and should have been named CharPointer as it configures the hungarian notation prefix for char pointers (char*). As all configuration options within readability-identifier-naming.HungarianNotation.CString.* were not read at all in the previous clang-tidy version (fixed in D144431), this option rename won't break existing users. A note in release notes is added to let users know these options were renamed. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D144790
-
Kazu Hirata authored
This patch precommits a test for: https://github.com/llvm/llvm-project/issues/60374
-
Craig Topper authored
-
Brad Smith authored
Since GCC 4.2 was removed with 10.0 and newer the respective Driver bits can be removed. Reviewed By: dim Differential Revision: https://reviews.llvm.org/D144778
-
Mehdi Amini authored
The list of boolean flags and others is becoming unresonnably long. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D143829
-
Simon Pilgrim authored
Replace dyn_cast<> with isa<> as we don't actually need the variable
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
A move towards using the generic ISD::ABDU nodes on more backends Also support ISD::ABDS for v4i32 types using the existing signbit flip trick PowerPC has a select(icmp_ugt(x,y),sub(x,y),sub(y,x)) -> abdu(x,y) combine that I intend to move to DAGCombiner in a future patch. The ABS(SUB(X,Y)) -> PPCISD::VABSD(X,Y,1) v4i32 combine wasn't legal (https://alive2.llvm.org/ce/z/jc2hLU) - so I've removed it, having already added the legal sub nsw tests equivalent. Differential Revision: https://reviews.llvm.org/D142313
-
Craig Topper authored
To do this we need to remove the always matching behavior from condop. This requires us to add more 'select' isel patterns with a bare GPR as the condition. Rename condop/invcondop to riscv_setne/riscv_seteq. This centralizes the ADDI/XORI/XOR tricks into one place.
-
Simon Pilgrim authored
As detailed on D142313, this fold should be restricted by sub nsw
-
Craig Topper authored
-
Piotr Zegar authored
Ignoring std::array type when matching 'std:array == std::array()'. In such case we shouldn't propose to use empty(). Fixes: https://github.com/llvm/llvm-project/issues/48286 Differential Revision: https://reviews.llvm.org/D144217
-