- Jun 21, 2022
-
-
Pavel Labath authored
-> PR56144
-
Jonas Paulsson authored
Zero extend of a vector is done with either a single unpack or a vector permute, and the TTI cost function should reflect this. Review: Ulrich Weigand
-
Nabeel Omer authored
This patch adds handling for the llvm.powi.* intrinsics in BasicTTIImplBase::getIntrinsicInstrCost() and improves vectorization. Closes #53887. Differential Revision: https://reviews.llvm.org/D128172
-
Jan Svoboda authored
This patch implements symlinks for the in-memory VFS. Original author: @erik.pilkington. Depends on D117648 & D117649. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D117650
-
Jan Svoboda authored
-
Jan Svoboda authored
-
Jan Svoboda authored
-
Alexey Bataev authored
If the OffsetBeg + InsertVecSz is greater than VecSz, need to estimate the cost as shuffle of 2 vector, not as insert of subvector. Otherwise, the inserted subvector is out of range and compiler may crash. Differential Revision: https://reviews.llvm.org/D128071
-
Simon Pilgrim authored
Noticed on D128216 - if we're zeroing out vector elements of a mul/mulh result then see if we can merge the and-mask into the mul by just multiplying by zero. Ideally we'd make this generic (similar to the existing foldSelectWithIdentityConstant?), but these cases are appearing very late, after the constants have been lowered to constant-pool loads.
-
LLVM GN Syncbot authored
-
Florian Hahn authored
The field was only used for debug printing. Print constraint from the system instead.
-
Nico Weber authored
This reverts commit 6ede6520. Doesn't build on Windows, see https://reviews.llvm.org/D127491#3598773
-
Jay Foad authored
The granularity of SPI_SHADER_PGM_RSRC2_PS.EXTRA_LDS_SIZE changed in GFX11. It is now in units of 256 dwords instead of 128 dwords. COMPUTE_PGM_RSRC2.LDS_SIZE is unaffected. It is still in units of 128 dwords. Differential Revision: https://reviews.llvm.org/D128179
-
Benjamin Kramer authored
-
David Spickett authored
This reverts commit 311f7839. Due to not working for Arm where arm and armhf configs are built.
-
Emre Kultursay authored
...type variable by dereferencing the variable before evaluating the expression. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D128126
-
Nikita Popov authored
As the FIXME already indicates, I don't see why this code would be necessary. If there's a call to an allocator function, that should get treated just like any other function call -- usually it will be a declaration and handled conservatively based on memory attributes only. There should be no need to explicitly force it to be modref. No test failures either, so I think this is just dead code. Differential Revision: https://reviews.llvm.org/D127273
-
Nicolas Vasilache authored
This revision separates the `LinalgSplitReduction` pattern, whose application is based on attributes, from its implementation. A transform dialect op extension is added to control the application of the transformation at a finer granularity. Differential Revision: https://reviews.llvm.org/D128165
-
David Spickett authored
I did this before but the other change got reverted and relanded recently. arm vs armhf isn't handled correctly so this setting doesn't work for 32 bit Arm Linux. Causing failures like: https://lab.llvm.org/buildbot/#/builders/178/builds/2293
-
LLVM GN Syncbot authored
-
Anubhab Ghosh authored
MemoryMapper class takes care of cross-process and in-process address space reservation, mapping, transferring content and applying protections. Implementations of this class can support different ways to do this such as using shared memory, transferring memory contents over EPC or just mapping memory in the same process (InProcessMemoryMapper). Reviewed By: sgraenitz, lhames Differential Revision: https://reviews.llvm.org/D127491
-
Simon Pilgrim authored
If the LHS op has a single use then using the more general AND op is likely to allow commutation, load folding, generic folds etc.
-
David Green authored
D127680 added some unnecessary funnel shift costs for AArch64 to "match the legacy behaviour". The default costs are closer to the correct values and line up with the scalar/neon costs better. Remove the lines again to clean up the code, they can be added back at a later date with better values if needed.
-
Nikita Popov authored
Tests were updated with this script: https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34 However, in this case a lot of fixup was required, due to many minor, but ultimately immaterial differences in results. In particular, the GEP representation changes slightly in many cases, either because we now use an i8 GEP, or because we now leave a GEP alone, using it's original index types and (lack of) inbounds. basictest-opaque-ptrs.ll has been dropped, because it was an opaque pointers duplicate of basictest.ll.
-
Simon Pilgrim authored
This requires us to override the isTargetCanonicalConstantNode callback introduced in D128144, so we can recognise the various cases where a VBROADCAST_LOAD constant is being reused at different vector widths to prevent infinite loops.
-
Martin Storsjö authored
This reverts commit 9ffeaaa0. This fixes debugging large executables with lldb and gdb. When StringTableBuilder is used, the string offsets for any string can point anywhere in the string table - while previously, all strings were inserted in order (without deduplication and tail merging). For symbols, there's no complications in encoding the string offset; the offset is encoded as a raw 32 bit binary number in half of the symbol name field. For sections, the string table offset is written as "/<decimaloffset>", but if the decimal offset would be larger than 7 digits, it's instead written as "//<base64offset>". Tools that operate on object files can handle the base64 offset format, but apparently neither lldb nor gdb expect that syntax when locating the debug information section. Prior to the reverted commit, all long section names were located at the start of the string table, so their offset never exceeded the range for the decimal syntax. Just reverting this change for now, as the actual benefit from it was fairly modest. Longer term, lld could write all long section names unoptimized at the start of the string table, followed by all the strings for symbol names, with deduplication and tail merging. And lldb and gdb could be fixed to handle sections with the base64 offset syntax. This fixes https://github.com/mstorsjo/llvm-mingw/issues/289.
-
Nikita Popov authored
-
Shraiysh Vaishay authored
[mlir][OpenMP][NFC] Parameter refers to single args and hence changing description for taskgroup allocate clause.
-
Florian Hahn authored
-
Balazs Benics authored
There was a copy-paste mistake at the embedded link: `clang-tidy/checks/cppcoreguidelines-virtual-class-destructor` -> `clang-tidy/checks/cppcoreguidelines/virtual-class-destructor` Sphinx error: /home/zbebnal/git/llvm-project/clang-tools-extra/docs/ReleaseNotes.rst:168:unknown document: clang-tidy/checks/cppcoreguidelines-virtual-class-destructor Build bot: https://lab.llvm.org/buildbot#builders/115/builds/29805 Differential Revision: https://reviews.llvm.org/D126891
-
Balazs Benics authored
The `cppcoreguidelines-virtual-class-destructor` supposed to enforce http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#c35-a-base-class-destructor-should-be-either-public-and-virtual-or-protected-and-non-virtual Quote: > A **base** class destructor should be either public and virtual, or > protected and non-virtual [emphasis mine] However, this check still rules the following case: class MostDerived final : public Base { public: MostDerived() = default; ~MostDerived() = default; void func() final; }; Even though `MostDerived` class is marked `final`, thus it should not be considered as a **base** class. Consequently, the rule is satisfied, yet the check still flags this code. In this patch, I'm proposing to ignore `final` classes since they cannot be //base// classes. Reviewed By: whisperity Differential Revision: https://reviews.llvm.org/D126891
-
David Green authored
As a followup to D128144, this adds extract(DUP(C)) as a canonical constant to prevent it being transformed back into a BUILD_VECTOR, leading to an infinite loop.
-
Carl Ritson authored
If shader only has depth exports use MRTZ otherwise use MRT0. Differential Revision: https://reviews.llvm.org/D128185
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D128247
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D128160
-
Nicolas Vasilache authored
This revision adds the necessary plumbing for canonicalizing scf::ForeachThread with the `AffineOpSCFCanonicalizationPattern`. In the process the `loopMatcher` helper is updated to take OpFoldResult instead of just values. This allows composing various scenarios without the need for an artificial builder. Differential Revision: https://reviews.llvm.org/D128244
-
Balázs Kéri authored
This updates StdLibraryFunctionsChecker to set the state of 'errno' by using the new errno_modeling functionality. The errno value is set in the PostCall callback. Setting it in call::Eval did not work for some reason and then every function should be EvalCallAsPure which may be bad to do. Now the errno value and state is not allowed to be checked in any PostCall checker callback because it is unspecified if the errno was set already or will be set later by this checker. Reviewed By: martong, steakhal Differential Revision: https://reviews.llvm.org/D125400
-
Kazu Hirata authored
-
Nikolas Klauser authored
Reviewed By: ldionne, Mordante, #libc Spies: jwakely, libcxx-commits Differential Revision: https://reviews.llvm.org/D127387
-
Kazu Hirata authored
-