- Nov 15, 2021
-
-
Mehrnoosh Heidarpour authored
This patch adds tests with baseline results as a pre-commit for D113861 Differential Revision: https://reviews.llvm.org/D113860
-
Alexey Bataev authored
-
Kirstóf Umann authored
-
ksyx authored
This reverts commit c35e8185. mstorsjo reported in the revision thread that one VNCoercion assertion is violated and seemly in relate to this commit. As per "If a test case that demonstrates a problem is reported in the commit thread, please revert and investigate offline", this commit is reverted.
-
Alexey Bataev authored
If the vector intrinsic has scalar argument, we currently still create a tree entry for this argument. This entry is not used, just consumes resources and increases the cost of the tree. Differential Revision: https://reviews.llvm.org/D113806
-
Simon Tatham authored
When cross-compiling LLVM in an environment where there //is// an objdump binary available but it does not understand the target platform's object file format, extract_symbols.py fails, because its initial check for tool availability decides that the existence of objdump at all is good enough to settle on it as the tool of choice. In such an environment it's useful to work around this by telling extract_symbols.py to use llvm-readobj instead. The script itself has an option for that, but its invocation in AddLLVM.cmake wasn't providing a mechanism to add extra options passed through for the cmake command line. Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D113557
-
Andy Yankovsky authored
The value type can be a typedef of a reference (e.g. `typedef int& myint`). In this case `GetQualType(type)` will return `clang::Typedef`, which cannot be casted to `clang::ReferenceType`. Fix a regression introduced in https://reviews.llvm.org/D103532. Reviewed By: teemperor Differential Revision: https://reviews.llvm.org/D113673
-
Valentin Clement authored
As for D113662, this patch just add a place holder for the `fir.select_type` operation conversion. This operation is part of F20xx and is not implemented yet. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D113878
-
Florian Hahn authored
At the moment, computeRecurrenceType does not include any sign bits in the maximum bit width. If the value can be negative, this means the sign bit will be missing and the sext won't properly extend the value. If the value can be negative, increment the bitwidth by one to make sure there is at least one sign bit in the result value. Note that the increment is also needed *if* the value is *known* to be negative, as a sign bit needs to be preserved for the sext to work. Note that this at the moment prevents vectorization, because the analysis computes i1 as type for the recurrence when looking through the AND in lookThroughAnd. Fixes PR51794, PR52485. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D113056
-
Mikhail Maltsev authored
The template std::is_assignable<T, U> checks that T is assignable from U. Hence, the order of operands in the instantiation of std::is_assignable in the std::reverse_iterator::operator= condition should be reversed. This issue remained unnoticed because std::reverse_iterator has an implicit conversion constructor. This patch adds a test to check that the assignment operator is used directly, without any implicit conversions. The patch also adds a similar test for std::move_iterator. Reviewed By: Quuxplusone, ldionne, #libc Differential Revision: https://reviews.llvm.org/D113417
-
James Henderson authored
The file seems to have been put in the wrong place in its original commit. This had the effect of marking all llvm-nm tests as unsupported, unless X86 was enabled, even for tests that weren't X86 specific. Fixes https://bugs.llvm.org/show_bug.cgi?id=52506. Reviewed by: mstorsjo Differential Revision: https://reviews.llvm.org/D113882
-
Nicolas Vasilache authored
When trying to connect the vectorization of depthwise convolutions to e2e execution a number of problems surfaced. Fix an off-by-one error on the size of the input vector (similary to what was previously done for regular conv). Rewrite the lowering to vector.fma instead of vector.contract: the KW reduction dimension has already been unrolled and vector.contract requires a reduction dimension to be valid. Differential Revision: https://reviews.llvm.org/D113884
-
Nicolas Vasilache authored
FMAOp -> LLVM conversion is done progressively by peeling off 1 dimension from FMAOp at each pattern iteration. Add the recursively bounded property declaration to the pattern so that the rewriter can apply it multiple times. Without this, FMAOps with 3+D do not lower to LLVM. Differential Revision: https://reviews.llvm.org/D113886
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D113881
-
Kristóf Umann authored
modernize-loop-convert checks and fixes when a loop that iterates over the elements of a container can be rewritten from a for(...; ...; ...) style into the "new" C++11 for-range format. For that, it needs to parse the elements of that loop, like its init-statement, such as ItType it = cont.begin(). modernize-loop-convert checks whether the loop variable is initialized by a begin() member function. When an iterator is initialized with a conversion operator (e.g. for (const_iterator it = non_const_container.begin(); ...), attempts to retrieve the name of the initializer expression resulted in an assert, as conversion operators don't have a valid IdentifierInfo. I fixed this by making digThroughConstructors dig through conversion operators as well. Differential Revision: https://reviews.llvm.org/D113201
-
Butygin authored
[mlir] DialectConversion: fix OperationLegalizer::isIllegal result when legality callback returns None OperationLegalizer::isIllegal returns false if operation legality wasn't registered by user and we expect same behaviour when dynamic legality callback return None, but instead true was returned. Differential Revision: https://reviews.llvm.org/D113267
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D113877
-
Hans Wennborg authored
This casued assertion failures: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:9446: void llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode *, llvm::SDNode *): Assertion `(!From->hasAnyUseOfValue(i) || From->getValueType(i) == To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"' failed. See comment on the code review. (Had to update some expectations in test/CodeGen/X86/vselect-zero.ll manually due to other changes having landed after the reverted one.) > and (pcmpgt X, -1), Y --> pandn (vsrai X, BitWidth-1), Y > > This avoids the -1 constant vector in favor of an arithmetic shift > instruction if it exists (the ISA is still not complete after all > these years...). > > We catch this pattern late in combining by matching PCMPGT, so it > should not interfere with more general folds. > > Differential Revision: https://reviews.llvm.org/D113603 This reverts commit bf5748a1.
-
Matheus Izvekov authored
Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: stephenneuendorffer Differential Revision: https://reviews.llvm.org/D113664
-
Andrzej Warzynski authored
This patch extends the `FIRToLLVMLowering` pass in Flang by adding a hook to transform `fir.emboxchar` to a sequence of LLVM MLIR instructions. This is part of the upstreaming effort from the `fir-dev` branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Differential Revision: https://reviews.llvm.org/D113666 Patch originally written by: Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Simon Pilgrim authored
Pass in SDLoc instead of (repeated) local creations in SimplifyVBinOp and scalarizeBinOpOfSplats
-
Simon Pilgrim authored
-
Matthias Springer authored
This change makes it possible to set up custom mappings in a PostAnalysisStep. Some users of Comprehensive Bufferize have custom tensor types and it is most convenient to just reuse the same bvm. Also add some more assertions. Differential Revision: https://reviews.llvm.org/D113726
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D113875
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D113723
-
Jay Foad authored
MachineVerifier verified the subranges of a live interval if they existed, but did not complain if they did not exist. This patch changes the verifier to complain if there are no subranges in the live interval for a subreg operand (so long as MachineRegisterInfo says we should be tracking subreg liveness for that register). This matches the conditions for LiveIntervalCalc to create subranges in the first place. Differential Revision: https://reviews.llvm.org/D112556
-
Pavel Labath authored
D112976 changed the layout and 0d62e31c andjusted the test expectations to match. This patch changes the tests to expect both versions, so that one can run the test suite against older libc++ versions as well.
-
Dmitry Preobrazhensky authored
Corrected src data size of global_atomic_fcmpswap and global_atomic_fcmpswap_x2 opcodes. Differential Revision: https://reviews.llvm.org/D113746
-
David Green authored
-
Matt Kulukundis authored
hat tip: @The_Whole_Daisy for helping to isolate Reviewed By: dvyukov, fowles Differential Revision: https://reviews.llvm.org/D113713
-
Valentin Clement authored
This patch adds the !fir.len type conversion. The type is converted to the a 32 bits integer. This patch is part of the upstreaming effort from fir-dev branch. Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D113658
-
Peter Waller authored
Follow up to D105889, covering instructions using sve_fp_2op_p_zd_HSD: frintn, frintp, frintm, frintz, frinta, frintx, frinti, frecpx and fsqrt. Reviewed By: bsmith Differential Revision: https://reviews.llvm.org/D113485
-
Diana Picus authored
Clarify some comments as discussed here: https://github.com/flang-compiler/f18-llvm-project/pull/1210
-
Igor Kudrin authored
Non-allocatable sections are not part of the memory image of the program, so there is no need to find memory regions for them either matching properties or handling explicit assignments. The early test and return help to simplify LinkerScript::findMemoryRegion() a bit. Differential Revision: https://reviews.llvm.org/D113768
-
Simon Moll authored
Rewriting SDNode user loops broke VEISelLowering (commit efa896e5). This fixes it.
-
Sander de Smalen authored
The interface is a convenience function to ask if a block requires predication when widening, but it's important that there are two separate concepts to consider: (A) The block was predicated in the original loop. (B) The block was unpredicated in the original loop, but requires predication because of tail folding. In the case of (B) we know that at least one lane of the vector will be executed, which means we can implementing a load from a uniform address with a scalar load + splat (D112552). In the case of predication because of (A), we cannot do this, because the scalar load itself requires predication. The name 'blockNeedsPredication' does not make the distinction between (A) and (B), hence the reason to rename it. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D113392 -
Nicolas Vasilache authored
Names should be consistent across all operations otherwise painful bugs will surface. Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D113762
-
Fabian Wolff authored
Fixes PR#38187. Constructors are actually already checked, but only as functions, i.e. the check only looks at the constructor body and not at the initializers, which misses the (common) case where constructor parameters are moved as part of an initializer expression. One remaining false negative is when both the move //and// the use-after-move occur in constructor initializers. This is a lot more difficult to handle, though, because the `bugprone-use-after-move` check is currently based on a CFG that only takes the body into account, not the initializers, so e.g. initialization order would have to manually be considered. I will file a follow-up issue for this once PR#38187 is closed. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D113708
-
Mehdi Amini authored
This reverts commit bec488b8. This commit introduced a layering violation between MLIR libraries. Reverting for now while discussing on the original review thread.
-
Kyungwoo Lee authored
It appears REQUIRES are needed for tests added in D108261. This was not caught in the pre-merge tests but in the post-commit tests. he fix is to move the tests into the target sub-directories. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D113870
-