- Jul 27, 2023
-
-
Jirui Wu authored
Previously when a packed struct, containing vector data types such as uint16x8_t, is passed as a function argument, the alignment of the struct used by the function caller and the alignment used by the callee to load the argument from stack does not match. This patch implements section 6.8.2, stage C.4 of the Procedure Call Standard for the Arm 64-bit Architecture (AAPCS64): "If the argument is an HFA, an HVA, a Quad-precision Floating-point or short vector type then the NSAA is rounded up to the next multiple of 8 if its natural alignment is ≤ 8 or the next multiple of 16 if its natural alignment is ≥ 16." This ensures the alignments of the packed structs used as function arguments are the same as described in the AAPCS64 for both the caller and callee. Reference: AAPCS64 (https://github.com/ARM-software/abi-aa/blob/latest-release/aapcs64/aapcs64.rst) Reviewed By: olista01, rjmccall, tmatheson Differential Revision: https://reviews.llvm.org/D146242
-
Jirui Wu authored
Adding precommit tests to better demonstrate the effects of D146242. Reviewed By: pratlucas Differential Revision: https://reviews.llvm.org/D152932
-
ManuelJBrito authored
Regenerate some test checks in preparation for a patch that fixes https://github.com/llvm/llvm-project/issues/53218.
-
Maksim Kita authored
Improve ((x1 ^ y1) | (x2 ^ y2)) == 0 transform to also support sub ((x1 - y1) | (x2 - y2)) == 0. Depends D155703. Differential Revision: https://reviews.llvm.org/D155704
-
Maksim Kita authored
Precommit tests for D155704. Differential Revision: https://reviews.llvm.org/D155703
-
Joseph Huber authored
Summary: The RPC server used the size field which meant we didn't get the correct return value for partial reads. We fix that here.
-
- Jul 26, 2023
-
-
Podchishchaeva, Mariya authored
TypeLocBuilder frees resources in the destructor but doesn't have user-written copy c'tor or assignment operator, so copying it using default ones can cause double free. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D156222
-
Yonghong Song authored
In [1], a few new insns are proposed to expand BPF ISA to . fixing the limitation of existing insn (e.g., 16bit jmp offset) . adding new insns which may improve code quality (sign_ext_ld, sign_ext_mov, st) . feature complete (sdiv, smod) . better user experience (bswap) This patch implemented insn encoding for . sign-extended load . sign-extended mov . sdiv/smod . bswap insns . unconditional jump with 32bit offset The new bswap insns are generated under cpu=v4 for __builtin_bswap. For cpu=v3 or earlier, for __builtin_bswap, be or le insns are generated which is not intuitive for the user. To support 32-bit branch offset, a 32-bit ja (JMPL) insn is implemented. For conditional branch which is beyond 16-bit offset, llvm will do some transformation 'cond_jmp' -> 'cond_jmp + jmpl' to simulate 32bit conditional jmp. See BPFMIPeephole.cpp for details. The algorithm is hueristic based. I have tested bpf selftest pyperf600 with unroll account 600 which can indeed generate 32-bit jump insn, e.g., 13: 06 00 00 00 9b cd 00 00 gotol +0xcd9b <LBB0_6619> Eduard is working on to add 'st' insn to cpu=v4. A list of llc flags: disable-ldsx, disable-movsx, disable-bswap, disable-sdiv-smod, disable-gotol can be used to disable a particular insn for cpu v4. For example, user can do: llc -march=bpf -mcpu=v4 -disable-movsx t.ll to enable cpu v4 without movsx insns. References: [1] https://lore.kernel.org/bpf/4bfe98be-5333-1c7e-2f6d-42486c8ec039@meta.com/ Differential Revision: https://reviews.llvm.org/D144829 -
Ivan Kosarev authored
It seems the ranges start with 0 in most cases. Reviewed By: dblaikie, gchatelet Differential Revision: https://reviews.llvm.org/D156135
-
Simon Pilgrim authored
Add missing SSE2-SSSE3 common prefix to vector-trunc-ssat.ll
-
Simon Pilgrim authored
We always concat the lower subvectors back together, so do it in the helper.
-
Amir Ayupov authored
- Add `FunctionSet` type alias. - Use any_of - Use ErrorOr handling pattern Reviewed By: #bolt, maksfb Differential Revision: https://reviews.llvm.org/D156043
-
SJW authored
Creates rocdl.lane_id op with llvm conversion to: __device__ static unsigned int __lane_id() { return __builtin_amdgcn_mbcnt_hi( -1, __builtin_amdgcn_mbcnt_lo(-1, 0)); } Reviewed By: krzysz00 Differential Revision: https://reviews.llvm.org/D154666 -
Joseph Huber authored
Summary: A previous patch missed adding these to all the definitions.
-
Alexander Kornienko authored
This reverts commit b0093e13 due to a miscompile under MSan. See https://reviews.llvm.org/D152407#4533478 for more details. Reviewed By: asmok-g Differential Revision: https://reviews.llvm.org/D156328
-
WANG Xuerui authored
Initially the .rodata section came before .text, hence sharing its segment with the program header sitting at a small offset, pushing the output file size to ~72GiB (the file was sparse though, so not much is really written). This breaks on 32-bit platforms and is irrelevant to the feature being tested, so re-order the two sections so .text gets processed first, and both sections get their own segment. This addresses the issue found by the clang-armv8-lld-2stage builder: https://lab.llvm.org/buildbot/#/builders/178/builds/5340 Reviewed By: SixWeining, xry111 Differential Revision: https://reviews.llvm.org/D156293 -
iambrj authored
This patch implements findSymbolicIntegerLexMax for IntegerRelation Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D156023
-
Joseph Huber authored
Summray: We landed some extra math support, which is apparently broken on the max / min functions. the `mod` functions cannot be tested as they use `std::limits` which don't exist in a freestanding environment. Also the `blockstore` test seems to be broken. We will need to fix these in the future but for now we need something in a workable state. Reviewed By: jplehr Differential Revision: https://reviews.llvm.org/D156329
-
Nico Weber authored
-
Dave Pagan authored
Update status of #pragma omp loop (directive) and loop bind.
-
Kevin P. Neal authored
This reverts commit d6857060. I'm getting build bot failures due to i128-fpconv-win64-strict.ll.
-
Ramkumar Ramachandra authored
The most straightforward extension to D150851 would involve a loop with decreasing induction variable, with a constant start value. iv-select-cmp.ll only contains a negative test for the decreasing induction variable case when the start value is variable, namely not_vectorized_select_decreasing_induction_icmp. Hence, add a test for the most straightforward extension to D150851, in preparation to vectorize: long rdx = 331; for (long i = 19999; i >= 0; i--) { if (a[i] > 3) rdx = i; } return rdx; Differential Revision: https://reviews.llvm.org/D156152 -
Kevin P. Neal authored
Correct AArch64 strictfp tests to follow the rules documented in the LangRef: https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics Mostly these tests just needed the strictfp attribute on function definitions. I've also removed the strictfp attribute from uses of the constrained intrinsics because it comes by default since D154991, but I only did this in tests I was changing anyway. I have removed attributes added to declare lines of intrinsics. The attributes of intrinsics cannot be changed in a test so I eliminated attempts to do so. Test changes verified with D146845.
-
Kevin P. Neal authored
Correct PowerPC strictfp tests to follow the rules documented in the LangRef: https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics Mostly these tests just needed the strictfp attribute on function definitions. I've also removed the strictfp attribute from uses of the constrained intrinsics because it comes by default since D154991, but I only did this in tests I was changing anyway. I have removed attributes added to declare lines of intrinsics. The attributes of intrinsics cannot be changed in a test so I eliminated attempts to do so. Test changes verified with D146845.
-
Kevin P. Neal authored
Correct a RISC-V strictfp tests to follow the rules documented in the LangRef: https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics All function calls in a strictfp function require the strictfp attribute. Test changes verified with D146845.
-
Kevin P. Neal authored
Correct a SystemZ strictfp test to follow the rules documented in the LangRef: https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics This test, like many others, just needed the function definition corrected. Test changes verified with D146845.
-
Kevin P. Neal authored
Correct X86 strictfp tests to follow the rules documented in the LangRef: https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics Mostly these tests just needed the strictfp attribute on function definitions. After D154991 the constrained intrinsics have the strictfp attribute by default so they don't need it here, but other functions do. Test changes verified with D146845.
-
Andrzej Warzynski authored
Depends on: D155306 Reviewed By: c-rhodes Differential Revision: https://reviews.llvm.org/D155800
-
Jacek Caban authored
With D149091, ARM64X binaries are no longer reported as ARM64. This broke lldb tests as Windows 11 system DLLs are mostly ARM64X binaries and lldb doesn't know how to handle them. Ideally lldb would understand a bit more about ARM64X and handle them as AMD64 in x64 processes, but this is enough to preserve previous behavior and fix tests. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D156268
-
max authored
Differential Revision: https://reviews.llvm.org/D156289
-
DianQK authored
This reverts the test case in commit 549773f9. After committing 2ee4d038, We don't support subprogram definitions nested within `DICompositeType` when doing LTO builds. For a detailed discussion, see https://reviews.llvm.org/D152095.
-
DianQK authored
This reverts commit d20e4a1d. After committing 2ee4d038, We don't support subprogram definitions nested within `DICompositeType` when doing LTO builds. For a detailed discussion, see https://reviews.llvm.org/D152095.
-
Tobias Gysi authored
This revision removes the metadata op, that to the best of our knowledge, has no more uses after switching to a purely attribute based metadata representation: https://reviews.llvm.org/D155444 https://reviews.llvm.org/D155285 https://reviews.llvm.org/D155159 These changes got unlocked after landing distinct attribute support: https://reviews.llvm.org/D153360, which enables modeling distinct metadata using attributes. As a result, all metadata kinds are now represented using attributes. Previously, there has been a mix of attribute and op based representations. Having attribute only metadata makes it possible to update the metadata in-parallel, while updating the global metadata operation has been a sequential process. The LLVM Dialect inliner already benefits from this change and now creates new alias scopes and domains during inlining rather than dropping the no alias information: https://reviews.llvm.org/D155712 Reviewed By: Dinistro Differential Revision: https://reviews.llvm.org/D156217
-
Sam McCall authored
Unlike Header, we really do have a preferred spelling for an include: the one that we used to open the file. The fact that Header is still FileEntry* makes it difficult to accidentally use path equality when we want inode equality. Differential Revision: https://reviews.llvm.org/D155885
-
Timm Bäder authored
Differential Revision: https://reviews.llvm.org/D150946
-
Alexandros Lamprineas authored
Reverting due to the crash reported in D154852. Also reverting the subsequent commit as collateral damage: "[FuncSpec] Split the specialization bonus into CodeSize and Latency."
-
pvanhout authored
The previous condition was incorrect in some cases, like storing <2 x i32> into a double. If IndexVal was >0, we ended up never storing anything. Reviewed By: #amdgpu, arsenm Differential Revision: https://reviews.llvm.org/D156308
-
pvanhout authored
Also includes another testcase that's unrelated, it's just a sanity check. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D156309
-
Ivan Butygin authored
Differential Revision: https://reviews.llvm.org/D156251
-
Shivam Gupta authored
This patch is the first part of https://llvm.org/OpenProjects.html#llvm_patch_coverage. We have first define a new variable LLVM_TEST_COVERAGE which when set, pass --per-test-coverage option to llvm-lit which will help in setting a unique value to LLVM_PROFILE_FILE for each RUN. So for example coverage data for test case llvm/test/Analysis/AliasSet/memtransfer.ll will be emitted as build/test/Analysis/AliasSet/memtransfer0.profraw Reviewed By: hnrklssn Differential Revision: https://reviews.llvm.org/D154280
-