- Sep 26, 2022
-
-
Kazu Hirata authored
This patch fixes: mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp:99:16: error: 'getValue' is deprecated: Use value instead. [-Werror,-Wdeprecated-declarations]
-
Louis Dionne authored
As discussed on Discord. Differential Revision: https://reviews.llvm.org/D134209
-
jeff authored
Change-Id: I6ed91aacf6856ef535a54284d48e937db33be1a3
-
Jakub Kuderski authored
Tested with `check-mlir` and `check-mlir-integration`. Issue: https://github.com/llvm/llvm-project/issues/56863 Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D134620
-
Amaury Séchet authored
-
Erich Keane authored
This reverts commit e3d14bee. There are apparently a large number of crashes in libcxx and some JSON Parser thing, so clearly this has some sort of serious issue. Reverting so I can take some time to figure out what is going on.
-
Louis Dionne authored
-
Amaury Séchet authored
-
Erich Keane authored
Discovered by reducing a different problem, we currently assert because we failed to make the constraint expressions not dependent, since a RecoveryExpr cannot be transformed. This patch fixes that, and gets reasonably nice diagnostics by introducing a concept (hah!) of "ContainsErrors" to the Satisfaction types, which causes us to treat the candidate as non-viable. However, just making THAT candidate non-viable would result in choosing the 'next best' canddiate, which can result in awkward errors, where we start evaluating a candidate that is not intended to be selected. Because of this, and to make diagnostics more relevant, we now just cause the entire lookup to result in a 'no-viable-candidates'. This means we will only emit the list of candidates, rather than any cascading failures.
-
Christian Sigg authored
Reviewed By: GMNGeoffrey Differential Revision: https://reviews.llvm.org/D134347
-
Florian Hahn authored
Test case for D134612.
-
Jean Perier authored
Copy-in/copy-out was not triggered when calling a procedure with a CONTIGUOUS assumed shape. The actual argument must be copied-in/out if it is not contiguous. The copy-in/copy-out takes care of argument optionality, and uses a runtime check in order to only do the copy if the actual is not contiguous at runtime. This was already implemented for explicit shape dummy arguments. This patch takes advantage of this implementation to deal with the copy-in copy-out aspects. It only need add code to deals with wrapping the created bare contiguous address into a fir.box (runtime descriptor), taking care of the optional box aspects. Using this existing code is only possible for actual argument that can be passed via a bare address. Add a TODO for polymorphic entity, PDTs and assumed rank where the existing copy-in/copy-out code may fail (these copies are more complex) and that cannot be tested currently. Differential Revision: https://reviews.llvm.org/D134543
-
Kazushi (Jam) Marukawa authored
Disable FMAX/FMIN selection from select_cc in VEInstrInfo.td because of the lack of NaN consideration. This patch removes such selection from VEInstrInfo.td and lets llvm work on it in combineMinNumMaxNum. Reviewed By: efocht Differential Revision: https://reviews.llvm.org/D134595
-
Nikita Popov authored
-
Kazushi (Jam) Marukawa authored
Support smax/smin in VEInstrInfo.td. Remove obsolete patterns for smax/smin. Add regression tests for smax/smin/umax/umin. Reviewed By: efocht Differential Revision: https://reviews.llvm.org/D134583
-
Guillaume Chatelet authored
This allows for easier discovery.
-
Guillaume Chatelet authored
-
Guillaume Chatelet authored
-
Aaron Ballman authored
-
Florian Hahn authored
Test case for #50940, to be fixed by D134606.
-
Oleg Shyshkov authored
Summary: Use the new enum in TilingIterface and verify that `iterator_type` attribute in LinalgOp interface is compatible with the enum values. Later IteratorType enum will be used in LinalgInterface to replace the current `iterator_type` attribute array of string. Existing enums in Linalg are moved into a separate td file and tablegen build target. This is necessary, have one I32EnumAttr in a shared space that generated enum class definition and EnumAttrs is dialect-specific location. Otherwise there might be a conflict that I32EnumAttr generates enum definitions in multiple places. Differential Revision: https://reviews.llvm.org/D134634
-
David Spickett authored
We have some 500 ish uses of the bool plus ref version so changing them all at once isn't a great idea. This adds an overload that doesn't take a RegisterInfo& and returns an optional. Once I'm done switching all the existing callers I'll remove the original function. Benefits of optional over bool plus ref: * The intent of the function is clear from the prototype. * It's harder to forget to check if the return is valid, and if you do you'll get an assert. * You don't hide ununsed variables, which happens because passing by ref marks a variable used. * You can't forget to reset the RegisterInfo in between calls. Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D134536
-
Momchil Velikov authored
The `CodeGenPrepare` pass can sink bitwise `and` used by compare to zero into the basic blocks where the users are. This operation is guarded by lowering hook, which is disabled for ARM. In the ARM architecture versions from v7-M up these two operations can be folded into `tst rN, #imm` instruction. Sinking of `and` can also enable the cmov-to-bfi DAG combiner. This patch fixes some benchmark regressions caused by https://reviews.llvm.org/D129370 as well scoring slightly better overall. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D134360
-
Momchil Velikov authored
Precommit test for D134360 Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D134358
-
Tomasz Kamiński authored
In case when the prvalue is returned from the function (kind is one of `SimpleReturnedValueKind`, `CXX17ElidedCopyReturnedValueKind`), then it construction happens in context of the caller. We pass `BldrCtx` explicitly, as `currBldrCtx` will always refer to callee context. In the following example: ``` struct Result {int value; }; Result create() { return Result{10}; } int accessValue(Result r) { return r.value; } void test() { for (int i = 0; i < 2; ++i) accessValue(create()); } ``` In case when the returned object was constructed directly into the argument to a function call `accessValue(create())`, this led to inappropriate value of `blockCount` being used to locate parameter region, and as a consequence resulting object (from `create()`) was constructed into a different region, that was later read by inlined invocation of outer function (`accessValue`). This manifests itself only in case when calling block is visited more than once (loop in above example), as otherwise there is no difference in `blockCount` value between callee and caller context. This happens only in case when copy elision is disabled (before C++17). Reviewed By: NoQ Differential Revision: https://reviews.llvm.org/D132030 -
Simon Pilgrim authored
-
David Green authored
The commit D120104 enabled FeatureFuseAdrpAdd for -mcpu=generic, allowing the linker to relax adrp;add pairs where possible. D132075 extended that to neoverse-n1, this patch extends it to all other cortex and neoverse cpus for the same reasons. Differential Revision: https://reviews.llvm.org/D134521
-
Jonas Toth authored
'misc-const-correctness' previously considered arrays as 'Values' independent of the type of the elements. This is inconsistent with the configuration of the check to disable treating pointers as values. This patch rectifies this inconsistency. Fixes #56749 Reviewed By: njames93 Differential Revision: https://reviews.llvm.org/D130793
-
Adrian Kuegel authored
Prefer using 'override' instead of 'virtual'.
-
Adrian Kuegel authored
Found by ClangTidy.
-
Adrian Kuegel authored
This reverts commit ec8f08ce. The change that needed this BUILD fix was reverted.
-
Martin Storsjö authored
If a process has multiple threads, the thread with the stop info might not be the first one in the thread list. On Windows, under certain circumstances, processes seem to have one or more extra threads that haven't been launched by the executable itself, waiting in NtWaitForWorkViaWorkerFactory. If the main (stopped) thread isn't the first one in the list (the order seems nondeterministic), DidProcessStopAbnormally() would return false prematurely, instead of inspecting later threads. The main observable effect of DidProcessStopAbnormally() erroneously returning false, is when running lldb with multiple "-o" parameters to specify multiple commands to execute on the command line. After an abnormal stop, lldb would stop executing "-o" parameters and execute "-k" parameters instead - but due to this issue, it would instead keep executing "-o" parameters as if there was no abnormal stop. (If multiple parameters are specified via a script file via the "-s" option, all of the commands in that file are executed regardless of whether there's an abnormal stop inbetween.) Differential Revision: https://reviews.llvm.org/D134037
-
Alvin Wong authored
Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D134528
-
Alvin Wong authored
Absolute symbol should contain its absolute value, but LLD had been writing its RVA instead. Write its VA instead. DefinedSynthetic were being skipped before with the reasoning "Relative symbols are unrepresentable in a COFF symbol table", which is only true if the RVA points to outside of a section. LLD does create synthetic symbols which points to actual data chunks (typical for symbols embedded into the load config directory). Write these symbols to the COFF symbol table too. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D134462
-
Adrian Kuegel authored
This reverts commit b4cc363e. The change which needed this BUILD fix was reverted.
-
Lorenzo Chelini authored
This reverts commit 730ae80d. It fails with a linking errors: `undefined reference to `mlir::getValueOrCreateConstantIndexOp` in `libMLIRDialectUtils`.
-
Michele Scuttari authored
See #57475 Differential Revision: https://reviews.llvm.org/D134607
-
Adrian Kuegel authored
-
Adrian Kuegel authored
-
Adrian Kuegel authored
-