- Jan 14, 2022
-
-
Simon Pilgrim authored
-
Simon Pilgrim authored
For AVX2+ targets this requires us to also recognise v4f64 concat(broadcast(x),broadcast(y)) -> movddup(concat(x,y))
-
Simon Pilgrim authored
-
Simon Pilgrim authored
[llvm-profgen] CSProfileGenerator::generateLineNumBasedProfile - use cast<> instead of dyn_cast<> to avoid dereference of nullptr The pointer is always dereferenced immediately below, so assert the cast is correct instead of returning nullptr
-
David Truby authored
This is a simple test fix that canonicalises the SVE mulh tests.
-
Roman Lebedev authored
[NFCI][SCEV] `computeExitLimitFromCondFromBinOp()`: rely on `getSequentialMinMaxExpr()` constant relaxation `getSequentialMinMaxExpr()` has been taught to perform this relaxation, so rely on that now. Not sure this can be tested.
-
Roman Lebedev authored
Currently, `computeExitLimitFromCondFromBinOp()` does that directly.
-
Roman Lebedev authored
-
Uday Bondhugula authored
Clean up return value on affineDataCopyGenerate utility. Return the actual success/failure status instead of the "number of bytes" which isn't being used in the codebase in any way. The success/failure status wasn't being sent out earlier. Differential Revision: https://reviews.llvm.org/D117209
-
Jun Zhang authored
This patch implements two builtins specified in D111529. The last __builtin_reduce_add will be seperated into another one. Differential Revision: https://reviews.llvm.org/D116736
-
Coelacanthus authored
fix typo in comment: libcstd++ -> libstdc++ Reviewed By: wallace Differential Revision: https://reviews.llvm.org/D117288
-
Matthias Springer authored
By default, copies are inserted right before the tensor OpOperand use. With this change, `bufferize` implementation can change the insertion point. This is needed for some ops where it would be illegal to insert a copy right before the use. Differential Revision: https://reviews.llvm.org/D117291
-
Matthias Springer authored
Fold `memref.copy %x, %x`. Differential Revision: https://reviews.llvm.org/D117224
-
Marek Kurdej authored
The case with an inner while loop wasn't tested before. Same for outer loop with a ForeachMacro.
-
Florian Hahn authored
Test case showing a foldable icmp ('icmp ult i8* [[SCEVGEP1]], [[SCEVGEP1]]'). This can be simplified in a follow-up change. -
Kadir Cetinkaya authored
This reverts commit 07f9fb8b.
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D117220
-
Stephan Herhut authored
In the absence of maps, we can lower memref.copy to a memcpy. Differential Revision: https://reviews.llvm.org/D116099
-
Alexey Lapshin authored
This patch creates functions which might be used to dump types. This functionality was already implemented by DWARFTypePrinter. Now it could be reused. It will help D96035, which uses DWARFTypePrinter. Differential Revision: https://reviews.llvm.org/D117134
-
Matthias Springer authored
If the source/dest is a cast that does not change shape/element type, the cast can be skipped. Differential Revision: https://reviews.llvm.org/D117215
-
Roman Lebedev authored
Since we don't merge/expand non-sequential umin exprs into umin_seq exprs, we may have umin_seq(umin(umin_seq())) chain, and the innermost umin_seq can have duplicate operands still.
-
Marek Kurdej authored
-
Alex Bradbury authored
Make the definitions of hpmcounter3-hpmcounter31, hpmcounter3h-hpmcounter31h, mhpmcounter3-mhpmcounter31, mhpmcounter3h-mhpmcounter31h, pmpaddr0-pmpaddr63, mhpmevent3-31, and pmpcfg0-15 substantially less repetitive using a foreach loop. Differential Revision: https://reviews.llvm.org/D117227
-
Alex Zinenko authored
LLVM dialect supports terminators with repeated successor blocks that take different operands. This cannot be directly expressed in LLVM IR though since it uses the number of the predecessor block to differentiate values in its PHI nodes. Therefore, the translation to LLVM IR inserts dummy blocks to forward arguments in case of repeated succesors with arguments. The insertion works correctly. However, when connecting PHI nodes to their source values, the assertion of the insertion having worked correctly was incorrect: it would only trigger if repeated blocks were adjacent in the successor list (not guaranteed by anything) and would not check if the successors have operands (no need for dummy blocks in absence of operands since no PHIs are being created). Change the assertion to only trigger in case of duplicate successors with operands, and don't expect them to be adjacent. Reviewed By: wsmoses Differential Revision: https://reviews.llvm.org/D117214
-
Florian Hahn authored
Depends on D117038. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D117039
-
Nikita Popov authored
The invalid undef value already triggers a verifier failure, but then the upwards scan from the cleanuppad ends up asserting. Make sure this is handled gacefully instead.
-
Adrian Kuegel authored
Based on a finding by ClangTidy readability-container-size-empty check.
-
Jay Foad authored
Take advantage of D117117 to simplify {{\[}}[[ to [[[. -
Jay Foad authored
-
Muhammad Omair Javaid authored
TestIOHandlerPythonREPLSigint.py is failing on Arm/Linux buildbot. I am marking it as skip for now.
-
Marek Kurdej authored
Previously, a strange trailing comment was produced: ``` namespace out { namespace { }} // namespace out:: ``` (mind the "out::"). Reviewed By: MyDeveloperDay, owenpan Differential Revision: https://reviews.llvm.org/D117289 -
Florian Hahn authored
This doesn't require callers to put the pointer operand and the indices in a container like a vector when calling the function. This is not really an issue with the existing callers. But when using it from IRBuilder the inputs are available as separate pointer value and indices ArrayRef. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D117038
-
Caroline Concatto authored
When masked scatter intrinsic does a uniform store to a destination address from a source vector, and in this case, the mask is all one value. This patch replaces the masked scatter with an extracted element of the last lane of the source vector and stores it in the destination vector. This patch also folds when the value in the masked scatter is a splat. In this case, the mask cannot be all zero, and it folds to a scalar store of the value in the destination pointer. Differential Revision: https://reviews.llvm.org/D115724
-
Nikita Popov authored
The reinterpret load code will convert undef values into zero. Check the uniform value case before it to produce a better result for all-undef initializers. However, the uniform value handling will return the uniform value even if the access is out of bounds, while the reinterpret load code will return undef. Add an explicit check to retain the previous result in this case.
-
Nikita Popov authored
If we're loading from an all-undef value, we sometimes still return zero rather than undef.
-
Nikita Popov authored
-
Fangrui Song authored
Respect the user choice, e.g. -DCMAKE_CXX_ARCHIVE_FINISH=: (to skip the (usually) no-op step).
-
Sam McCall authored
[clang-check] Adjust argument adjusters for clang-check to strip options blocking the static analyzer Output generation options (like `-save-temps`) will make the analyzer not executed even `--analyze` option is provided in the driver arguments. Besides, the original approach of adding `--analyze` option will not work when (more than one) `-fsyntax-only` options are provided in the driver arguments. This patch fixes these two problems by using the syntax-only adjuster to remove output generation options and manually filter out redundant `-fsyntax-only` options. In the new implementation, the adjusters added by `ClangTool` will not be removed but used as dependencies for clang-check adjusters for analyzer options. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D116329
-
Zi Xuan Wu authored
-
Kevin Athey authored
With the introduction of this flag, it is no longer necessary to enable noundef analysis with 4 separate flags. (-Xclang -enable-noundef-analysis -mllvm -msan-eager-checks=1). This change only covers the introduction into the compiler. This is a follow up to: https://reviews.llvm.org/D116855 Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116633
-