- Aug 14, 2023
-
-
Fangrui Song authored
This can be used to avoid `auto WarningHandler = ...`. Similar to llvm-readobj.
-
Felipe de Azevedo Piovezan authored
D155723 changed the return type of getNames to a SmallVector of a different size. However, it failed to also update the declaration of the variable that is returned in such function. Differential Revision: https://reviews.llvm.org/D157881
-
Jay Foad authored
This simplifies every use of MCRegUnitMaskIterator. Differential Revision: https://reviews.llvm.org/D157864
-
Felipe de Azevedo Piovezan authored
LLDB can benefit from having the base name of functions (i.e. without any template parameters) as an entry into accelerator tables pointing back in the DIE for the corresponding function specialization. In fact, some LLDB functionality is only possible when those entries are present. The DWARFLinker has been adding such entries for a while now, both with apple_names and with debug_names. However, this has two side effects: 1. Some LLDB functionality is only possible when dsym bundles are present (i.e. the linker touched the debug info). 2. The DWARFVerifier doesn't accept debug_name sections created by the linker, as such names are (usually) neither the AT_name nor the AT_linkage_name of the DIE. Based on recent discussion [1], and because the DWARF 5 spec says that: > A producer may choose to implement additional rules for what names are placed > in the index This patch relaxes the checks on the verifier to allow for simplified template n...
-
Elizabeth Andrews authored
Fix static analyzer concern about null value dereference. InterfacePointerType is dereferenced and should not be null. Differential Revision: https://reviews.llvm.org/D157454
-
Dinar Temirbulatov authored
For scalar integer to float converts for Streaming Compatible SVE use non-NEON version of convert instrction. Differential Revision: https://reviews.llvm.org/D157698
-
Ingo Müller authored
Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D157704
-
Ingo Müller authored
Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D157706
-
Ingo Müller authored
The tests of the mix-in classes of the Python bindings currently passed even if the ops constructed by the mix-ins under test failed to verify. This is because the assembled IR is still printed in generic form even if it does not verify, and the `CHECK` statements are formulated in such a lenient way that they also match that generic form. This patch adds explicit verification to the decorator that is used for all test functions. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D157790
-
Tulio Magno Quites Machado Filho authored
In a standalone build, there is no guarantee that flang code would be saved in a directory named flang. Check only the path under flang's root directory. Reviewed By: #flang, kiranchandramohan Differential Revision: https://reviews.llvm.org/D157642
-
Paulo Matos authored
We were relying on a transitive include. This fixed building the SPIRV backend.
-
Bjorn Pettersson authored
Problem seem to be that on windows it says "Assertion failed: ...." while one linux we get "Assertion ... failed." Anyway, this fixup also limits the test case to x86_64-linux to avoid buildbot failures due to such problems.
-
Nikita Popov authored
If the only purpose of the upgrade is a mangling change, this is handled generically by intrinsic remangling, and does not require any hand-written code.
-
David Truby authored
This patch enables logical expressions to be used as arguments when the default logical kind is changed (e.g. using -fdefault-integer-8) by converting the type of the logical expression argument to the type of the dummy argument in the function. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D157600
-
Matthias Springer authored
Add two new helper functions `getBeforeBody` and `getAfterBody` to be consistent with "scf.for" (`getBody`) and to show in the API that both regions have exactly one block. Also simplify some code that assumed that there can be more than one block in a region. Differential Revision: https://reviews.llvm.org/D157860
-
Nikita Popov authored
When inspecting the function body, we can't simply ignore effects of functions in the SCC entirely, because an argmem access of a recursive call might result in an access to another location in the callee. Fix this by separately tracking memory effects that would occur if the SCC accesses argmem, and then later add those. Fixes https://github.com/llvm/llvm-project/issues/63936. Differential Revision: https://reviews.llvm.org/D155956
-
Bjorn Pettersson authored
If an argument is readnone we know that it isn't dereferenced. Then it should be OK if that argument alias with a noalias argument. Differential Revision: https://reviews.llvm.org/D157737
-
Guray Ozen authored
WgmmaMmaAsync Op generates `wgmma.mma_async` PTX instruction that uses the same registers as read and write with mapping. Therefore, the registers count needs to be increased 2 times for the following registers. This works changes this: ``` llvm.inline_asm has_side_effects asm_dialect = att "{wgmma.mma_async... {$0, $1, $2, $3, $4}, $5, $6, p", "=f,=f,=f,=f,0,1,2,3,l,l" ``` Into this one below. The only different is the number of registers ($8 and $9) that comes after read/write. ``` llvm.inline_asm has_side_effects asm_dialect = att "{wgmma.mma_async... {$0, $1, $2, $3, $4}, $8, $9, p", "=f,=f,=f,=f,0,1,2,3,l,l" ``` Reviewed By: qcolombet Differential Revision: https://reviews.llvm.org/D157843 -
Karl-Johan Karlsson authored
Without the fix gcc complains with: ../utils/TableGen/GlobalISelCombinerMatchTableEmitter.cpp:251:60: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
-
Mirko Brkusanin authored
This fixes a failure from the expensive-checks buildbot Differential Revision: https://reviews.llvm.org/D157857
-
Aaron Ballman authored
This addresses issues found by: https://lab.llvm.org/buildbot/#/builders/30/builds/38760
-
Adrian Kuegel authored
Differential Revision: https://reviews.llvm.org/D157854
-
Kerry McLaughlin authored
This reverts commit dda2cd25.
-
Alejandro Aguirre authored
As discussed on #46593 - this enables us to use __lzcnt / __popcnt intrinsics inside constexpr code. Differential Revision: https://reviews.llvm.org/D157420
-
Kerry McLaughlin authored
When SVE2 is enabled, we can combine an add of 1, add & shift right by 1 to a single s/urhadd instruction. If the operands to the adds are extended, these extends will fold into the s/urhadd and their costs should be 0. Reviewed By: dtemirbulatov Differential Revision: https://reviews.llvm.org/D157628
-
Jay Foad authored
The GFX11 scheduling model should be identical to GFX10, except for a few tweaks to latencies. This GFX10 change from D100123 was missed when GFX11 was added. Differential Revision: https://reviews.llvm.org/D157709
-
Adrian Kuegel authored
virtual is redundant if method is final.
-
Bjorn Pettersson authored
Something with matching of quotes seems to work poorly according to various buildbots.
-
Tom Eccles authored
Add a rough alias analysis rule for hlfir.designate which just follows the memref argument. This could be extended in the future to take into account the indices or derived type fields accessed to spot for provably non-overlapping cases. In the meantime, we need a flag to ensure we never say "MustAlias" when following a value through a hlfir.designate because the designate analysis is only approximate. Differential Revision: https://reviews.llvm.org/D157718
-
Tom Eccles authored
These operations should have no memory effect, but doing so causes the declare to be removed by dead code elimination if the result value is unused. fir.declare is intended to be used to generate debug information about variables. Debug information may still be desirable even about unused variables, so we don't want to remove the declare operations when performing dead code elimination. Differential Revision: https://reviews.llvm.org/D157626
-
Lorenzo Chelini authored
Reviewed By: qcolombet Differential Revision: https://reviews.llvm.org/D157629
-
Alex Bradbury authored
As with D157399 we can reduce duplication by doing this. Unlike that patch, I'm posting the refactoring before the functional changes I want to make here. Differential Revision: https://reviews.llvm.org/D157403
-
Alex Bradbury authored
Hopefully a straightforward refactoring that reduces duplication that was clearly causing repeated work in D157287. Differential Revision: https://reviews.llvm.org/D157399
-
Pavel Kosov authored
On Mac OSX (tested version macOS 12.4, sdk 12.1) llvm can replace call to `strrchr()` with call to `memrchr()` when string length is known at compile time. This results in link error, because `memrchr` is not present in `libSystem`. It is needed to disable this optimization in `TargetLibraryInfo` for affected OSX versions. This non-standard function (`memrchr`) is not present on (at least) several versions of MacOS https://www.gnu.org/software/gnulib/manual/html_node/memrchr.html , so, in this patch `memrchr` is marked as unavailable for all versions. If someone knows versions where it should be available - please let me know. Github issue: https://github.com/llvm/llvm-project/issues/62254 Tests for this feature also cannot be easily added: https://reviews.llvm.org/D134134#3801747 ~~~ Huawei RRI, OS Lab Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D155168
-
Bjorn Pettersson authored
In commit a7ee80fa a ptr->ptr bitcast was removed. But that seem to cause "Expected an cast instruction!" assertions later in that pass. This patch will add back the bitcast again. This was a bit unexpected since there is no bitcast added after creating the Add instruction in the else clause, but I guess there is something special with the GetElementPtr scenario which makes this bitcast needed to avoid such asserts. This patch is also adding a reproducer for https://github.com/llvm/llvm-project/issues/52689 that started to fail due to hitting the above mentioned assert. Now it should end up hitting the assertion failure from #52689 again.
-
David Green authored
This is a lot of copy-pasting for the existing handling of G_VECREDUCE_FMAX/G_VECREDUCE_FMIN to add handling for G_VECREDUCE_FMAXIMUM/G_VECREDUCE_FMINIMUM in the same way. Differential Revision: https://reviews.llvm.org/D156615
-
Martin Erhart authored
It is often the case that many values in the `memrefs` operand list can be split off to speparate dealloc operations by the `--buffer-deallocation-simplification` pass, however, the retain list has to be preserved initially. Further canonicalization can often trim it down considerable, but some retains may remain. In those cases, the general lowering would be chosen, but is very inefficient. This commit adds another lowering for those cases which avoids allocation of auxillary memrefs and the helper function while still producing code that is linear in the number of operands of the dealloc operation. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D157692
-
Luke Lau authored
Currently when widening operands for insert_subvector nodes, we check first that the indices are valid by seeing if the subvector is statically known to be smaller than or equal to the in-place vector. However if we're inserting a fixed subvector into a scalable vector we rely on the minimum vector length of the latter. This patch extends the widening logic to also take into account the minimum vscale from the vscale_range attribute, so we can handle more scenarios where we know the scalable vector is large enough to contain the subvector. Fixes https://github.com/llvm/llvm-project/issues/63437 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D153519
-
Johannes Reifferscheid authored
Reviewed By: olegshyshkov Differential Revision: https://reviews.llvm.org/D157841
-
Shengchen Kan authored
This reverts commit 3ce43f16. It caused MC/Disassembler/X86/x86-64.txt to fail.
-