- Jan 25, 2024
-
-
Philip Reames authored
This builds on bdc41106. This change completes the migration to a recursive shuffle lowering strategy where when we encounter an unknown two argument shuffle, we lower each operand as a single source permute, and then use a vselect (i.e. a vmerge) to combine the results. This relies for code quality on the post-isel combine which will aggressively fold that vmerge back into the materialization of the second operand if possible. Note: The change includes only the most immediately obvious of the stylistic cleanup. There's a bunch of code movement that this enables that I'll do as a separate patch as rolling it into this creates an unreadable diff.
-
Danial Klimkin authored
and keep things sorted.
-
Louis Dionne authored
-
- Jan 24, 2024
-
-
Louis Dionne authored
-
Christian Sigg authored
-
Jan Leyonberg authored
This patch adds the omp.distribute operation to the OMP dialect. The purpose is to be able to represent the distribute construct in OpenMP with the associated clauses. The effect of the operation is to distributes the loop iterations of the loop(s) contained inside the region across multiple teams.
-
Louis Dionne authored
-
Ivan Kosarev authored
Part of <https://github.com/llvm/llvm-project/issues/62629>.
-
Christian Sigg authored
-
quic-asaravan authored
This patch inlines float division function calls for hexagon. Co-authored-by:Awanish Pandey <awanpand@codeaurora.org>
-
Jeremy Morse authored
We're using this flag (IsNewDbgInfoFormat) to detect the boundaries in LLVM of what's treating debug-info as intrinsics (i.e. dbg.value), and what's using DPValue objects (the non-intrinsic replacement). The attributor tends to create new wrapper functions and doesn't insert them into Modules in the usual way, thus we have to manually update that flag to signal what debug-info mode it's using. I've added some --try-experimental-debuginfo-iterators RUN lines to tests that would otherwise crash because of this, so that they're exercised by our new-debuginfo-iterators buildbot. NB: there's an attributor test with a dbg.value in it, however attributes re-order themselves in RemoveDIs mode for various reasons, so we're going to address that in a different patch.
-
Timm Bäder authored
-
felixh5678 authored
Co-authored-by:
Tue Ly <lntue@google.com> Co-authored-by:
Felix <felix@Dirks-MacBook-Pro.local>
-
Tom Stellard authored
CMAKE_TRY_COMPILE_TARGET_TYPE defaults to EXECUTABLE, which causes any feature detection code snippet without a main function to fail, so we need to make sure it gets explicitly set to STATIC_LIBRARY. Bug: https://github.com/ROCm/rocFFT/issues/439 Bug: https://github.com/ROCm/rocBLAS/issues/1350 Bug: https://bugs.gentoo.org/916069 Closes: https://github.com/llvm/llvm-project/pull/69842 Reviewed by: thesamesam, mgorny
-
Jay Foad authored
-
Nikita Popov authored
We should use the normal github.token for interacting with issues/PRs on the repo, and separately pass the `--branch-repo-token` for creating the branch in the llvmbot repo.
-
Felipe de Azevedo Piovezan authored
This commit introduces a helper function to DWARFAcceleratorTable::Entry which follows DW_IDX_Parent attributes to returns the corresponding parent Entry in the table. It is tested by enhancing dwarfdump so that it now prints: 1. When data is corrupt. 2. When parent information is present, but the parent is not indexed. 3. The parent entry offset, when the parent is present and indexed. This is printed in terms a real entry offset (the same that gets printed at the start of each entry: "Entry @ 0x..."), instead of the encoded number in the table (which is an offset from the start off the Entry list). This makes it easy to visually inspect the dwarfdump and check what the parent is.
-
Nikita Popov authored
The `/cherry-pick` command needs `issues: write` to post a comment on the issue. The `/branch` command also posts a comment, and also needs `pull-requests: write` to open a PR. This should fix the failure encountered at https://github.com/llvm/llvm-project/issues/79253#issuecomment-1907850027.
-
Louis Dionne authored
-
Louis Dionne authored
Previously, there was a ternary conditional with a less-than comparison appearing inside a template argument, which was really confusing because of the <...> of the function template. This patch rewrites the same statement on two lines for clarity.
-
Florian Hahn authored
The result of umin may be poison and in that case the added constraints are not be valid in contexts where poison doesn't cause UB. Only queue facts for min/max intrinsics if the result is guaranteed to not be poison. This could be improved in the future, by only adding the fact when solving conditions using the result value. Fixes https://github.com/llvm/llvm-project/issues/78621.
-
Nikita Popov authored
This patch canonicalizes getelementptr instructions with constant indices to use the `i8` source element type. This makes it easier for optimizations to recognize that two GEPs are identical, because they don't need to see past many different ways to express the same offset. This is a first step towards https://discourse.llvm.org/t/rfc-replacing-getelementptr-with-ptradd/68699. This is limited to constant GEPs only for now, as they have a clear canonical form, while we're not yet sure how exactly to deal with variable indices. The test llvm/test/Transforms/PhaseOrdering/switch_with_geps.ll gives two representative examples of the kind of optimization improvement we expect from this change. In the first test SimplifyCFG can now realize that all switch branches are actually the same. In the second test it can convert it into simple arithmetic. These are representative of common optimization failures we see in Rust. Fixes https://github.com/llvm/llvm-project/issues/69841.
-
Florian Hahn authored
Add extra tests with different load/store alignments for https://github.com/llvm/llvm-project/pull/78637.
-
Timm Bäder authored
-
Nikita Popov authored
-
Simon Pilgrim authored
[X86] X86FixupVectorConstants - shrink vector load to movsd/movsd/movd/movq 'zero upper' instructions (#79000) If we're loading a vector constant that is known to be zero in the upper elements, then attempt to shrink the constant and just scalar load the lower 32/64 bits. Always chose the vzload/broadcast with the smallest constant load, and prefer vzload over broadcasts for same bitwidth to avoid domain flips (mainly a AVX1 issue). Fixes #73783
-
Rainer Orth authored
When using GNU ld 2.41 on FreeBSD 14.0/amd64, there are linker warnings like ``` /vol/gcc/bin/gld-2.41: warning: blake3_avx512_x86-64_unix.S.o: missing .note.GNU-stack section implies executable stack /vol/gcc/bin/gld-2.41: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ``` This can be fixed by adjusting the guard of the `.note.GNU-stack` sections in `blake3_*_x86-64_unix.S` to match `llvm/lib/MC/MCAsmInfoELF.cpp:MCAsmInfoELF::getNonexecutableStackSection` which emits the section on all ELF targets but Solaris. Tested on `amd64-pc-freebsd14.0`.
-
ostannard authored
The FP/SIMD instructions are optional for v8-R, so they should not be marked as a dependency of HasV8_0rOps. This had the effect of disabling some v8R-specific system registers when any of these features was disabled. I've moved these features to be enabled by default for Cortex-R82 (currently the only v8-R AArch64 core), matching the previous behavior, and clang's default. Based on a patch by Simi Pallipurath <simi.pallipurath@arm.com>
-
Danial Klimkin authored
Fix bazel build past 72512433
-
Nikita Popov authored
This allows caching AA queries both within and across the calls, and enables us to use a custom AAQI configuration.
-
Mirko Brkušanin authored
Co-authored-by:
Petar Avramovic <Petar.Avramovic@amd.com> Co-authored-by:
Piotr Sobczak <piotr.sobczak@amd.com>
-
jeanPerier authored
Currently lowering sets the extents of assumed-size array to "undef" which was OK as long as the value was not expected to be read. But when interfacing with the runtime and when passing assumed-size to assumed-rank, this last extent may be read and must be -1 as specified in the BIND(C) case in 18.5.3 point 5. Set this value to -1, and update all the lowering code that was looking for an undef defining op to identify assumed-size: much safer to propagate and use semantic info here, the previous check actually did not work if the array was used in an internal procedure (defining op not visible anymore). @clementval and @agozillon, I left assumed-size extent to zero in the acc/omp bounds op as it was, please double check that is what you want (I can imagine -1 may create troubles here, and 0 makes some sense as it would lead to no data transfer). This also allows removing special cases in UBOUND/LBOUND lowering. Also disable allocation of cray pointee. This was never intended and would now lead to crashes with the -1 value for assumed-size cray pointee.
-
Simon Pilgrim authored
Fixes #78888
-
Simon Pilgrim authored
-
Simon Pilgrim authored
commutatvity -> commutativity
-
Timm Bäder authored
So, return a PrimType directly from classifyComplexElementType().
-
Florian Hahn authored
Tests with umin where the result may be poison for https://github.com/llvm/llvm-project/issues/78621.
-
Ivan Kosarev authored
As otherwise SGPR+IMM instructions are not distinguishable to SGPR-only ones in AsmParser, leading to ambiguities. GFX12 doesn't have special SGPR-only variants, so we still allow optional immediate offsets for the subtarget. Also rename the offset operand classes while there. Part of <https://github.com/llvm/llvm-project/issues/69256>.
-
Mariusz Sikora authored
…bf8 instructions Add VOP1, VOP1_DPP8, VOP1_DPP16, VOP3, VOP3_DPP8, VOP3_DPP16 instructions that were supported on GFX940 (MI300): - V_CVT_F32_FP8 - V_CVT_F32_BF8 - V_CVT_PK_F32_FP8 - V_CVT_PK_F32_BF8 - V_CVT_PK_FP8_F32 - V_CVT_PK_BF8_F32 - V_CVT_SR_FP8_F32 - V_CVT_SR_BF8_F32 --------- Co-authored-by:Mateja Marjanovic <mateja.marjanovic@amd.com> Co-authored-by:
Mirko Brkušanin <Mirko.Brkusanin@amd.com>
-
Petar Avramovic authored
Reverts llvm/llvm-project#78482
-