- Feb 27, 2023
-
-
Nilanjana Basu authored
Inserting scalar result of 'uaddlv' neon intrinsic function to a destination vector currently makes use of the integer unit. Subsequent patches will eliminate the redundant use of the integer registers in a more generic way that will include this special case. This is an initial set of tests for this functionality. Differential Revision: https://reviews.llvm.org/D143038
-
Lei Zhang authored
We use `use64bitIndex` in the option to decide the target device address bitwidth. This makes it consistent with index type conversion too. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D144827
-
Lei Zhang authored
Vulkan requires GPU processor ID/count builtin variables to be 32-bit scalar or vector for all the cases. Similarly there are special requirements for OpenCL. We need to make sure those rules are respected when converting using 64bit for index. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D144819
-
Rahul Kayaith authored
The asm printer grew the ability to automatically fall back to the generic format for invalid ops, so this logic doesn't need to be in the bindings anymore. The printer already handles supressing diagnostics that get emitted while checking if the op is valid. Reviewed By: mehdi_amini, stellaraccident Differential Revision: https://reviews.llvm.org/D144805
-
Jun Zhang authored
Signed-off-by:Jun Zhang <jun@junz.org>
-
Serge Pavlov authored
If a template function contained a pragma that made it strictfp, code generation for such function crashed, because the instantiation did not have strictfp attribute. As a solution this attribute is copied from the template to instantiation. Differential Revision: https://reviews.llvm.org/D143919
-
Craig Topper authored
-
Jie Fu authored
/data/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:1200:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough] case X86II::RawFrm: ^
-
Shengchen Kan authored
1. Add a variable `HasRegOp` to record if the instruction has a register operand 2. Enumerate all the formats with a register operand in the switch 2. Add a default (unreachable) label in the switch (suggested by @reames) Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D144776
-
Craig Topper authored
-
Amara Emerson authored
We use this combine in the AArch64 postlegalizer combiner, which causes this function to query the legalizer rules for the action for an invalid opcode/type combination (G_AND and p0). Moving the legalizer query until after the validity check in matchHoistLogicOpWithSameOpcodeHands() fixes this.
-
isuckatcs authored
This patch implements the exception handling rules found in N4849 14.4 and as a result fixes many false positives in the bugprone-exception-escape checker. Differential Revision: https://reviews.llvm.org/D135495
-
Lei Zhang authored
This commit just adds options to control index type bitwidth in GPUToSPIRV conversion, and updates tests to prepare for 64bit index conversion. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D144826
-
LLVM GN Syncbot authored
-
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
-