- May 24, 2023
-
-
Jay Foad authored
When the scavenger is not allowed to spill, the only difference between forward and backward should be the heuristics used to pick an available register. Forwards scavenging tries to pick a register that can be used again later in the BB; backwards scavenging tries to pick one that can be used earlier. Backwards scavenging is preferred because it does not rely on accurate kill flags. Differential Revision: https://reviews.llvm.org/D151323
-
Sheng authored
A buildbot has failed on the absence of the blank line at the end of the bullet list.
-
Sheng authored
The type alias template is not diagnosed when instantiating an expected non-type template argument in a dependent scope, causing ICE. Besides that, the diagnostic message has been updated to account for the fact that the function template is not the only non-type template. Fixes #62533 Reviewed By: #clang-language-wg, erichkeane Differential Revision: https://reviews.llvm.org/D151062
-
Hansang Bae authored
The interop API routines try to invoke external entries, but we did not have support for KMP_DLSYM_NEXT on Windows. Also added proper guards for STUB build. Differential Revision: https://reviews.llvm.org/D149892
-
Clement Courbet authored
Correct link is clang-tidy/checks/performance/no-automatic-move
-
Clement Courbet authored
Fix bad link to documentation.
-
Matthias Springer authored
This allows subclasses (such as the ErrorCheckingTrackingListener in IREE) to produce better error messages. Differential Revision: https://reviews.llvm.org/D151322
-
Krzysztof Parzyszek authored
-
Krzysztof Parzyszek authored
Only the last instruction was remapped before.
-
Clement Courbet authored
We were only handling `const T&`/`T&&` ctor pairs, and we were missing uref-based ctors. Differential Revision: https://reviews.llvm.org/D151092
-
Matthias Springer authored
The following ops currently have the same finger print, even though they are different: ``` func.func @test() { "test.foo"() ({ "test.bar"() : () -> () }) : () -> () } ``` And: ``` func.func @test() { "test.bar"() : () -> () "test.foo"() ({ }) : () -> () } ``` The SHA1 hash used in OperationFingerPrint is order-sensitive, but the ops are hashed in the same order (post-order traversal), so the hash is the same. Switching to pre-order traversal does not solve the issue; a similar example, where IR differs just in its nesting structure, can be constructed. The problem is solved by hashing the parent op pointer. (Alternatively, a traversal over the IR that hashes scope markers (`{}`) could be used.) Differential Revision: https://reviews.llvm.org/D151306 -
Tue Ly authored
Reviewed By: gchatelet Differential Revision: https://reviews.llvm.org/D151256
-
Takuya Shimizu authored
This patch makes `-Wshadow` warn about the shadowings by static local variables. Fixes https://github.com/llvm/llvm-project/issues/62850 Differential Revision: https://reviews.llvm.org/D151214
-
Takuya Shimizu authored
Reland: [clang][AST] Print name instead of type when diagnosing uninitialized subobject in constexpr variables This patch improves the diagnostic on uninitialized subobjects in constexpr variables by modifying the diagnostic message to display the subobject's name instead of its type. Fixes https://github.com/llvm/llvm-project/issues/58601 Differential Revision: https://reviews.llvm.org/D146358
-
Alex Zinenko authored
The initial bring-up of the Transform dialect relied on PDL to provide the default handle type (`!pdl.operation`) and the matching capability. Both are now provided natively by the Transform dialect removing the reason to have a hard dependency on the PDL dialect and its interpreter. Move PDL-related transform operations into a separate extension. This requires us to introduce a dialect state extension mechanism into the Transform dialect so it no longer needs to know about PDL constraint functions that may be injected by extensions similarly to operations and types. This mechanism will be reused to connect pattern application drivers and the Transform dialect. This completes the restructuring of the Transform dialect to remove overrilance on PDL. Note to downstreams: flow that are using `!pdl.operation` with Transform dialect operations will now require `transform::PDLExtension` to be applied to the transform dialect in order to provide the transform handle type interface for `!pdl.operation`. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D151104
-
Joseph Huber authored
We only expect these ctor / dtor functions to be called with a single thread. Add the appropriate attributes to indicate this to the backend. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D151153
-
Michael Buch authored
This mimicks the implementation of the libstdcpp std::unique_ptr formatter. This has been attempted several years ago in `0789722d` but was reverted in `e7dd3972`. The difference to the original patch is that we now maintain a `$$dereference$$` member and we only store weak pointers to the other children inside the synthetic frontend. This is what the libc++ formatters do to prevent the recursion mentioned in the revert commit.
-
Tue Ly authored
Add log, log2, log10, log1p and their unit tests to bazel layout. Reviewed By: gchatelet Differential Revision: https://reviews.llvm.org/D151252
-
LLVM GN Syncbot authored
-
Alexandros Lamprineas authored
Instead of blindly traversing the use-def chain of constant arguments, compute known constants along the way. Stop as soon as a user cannot be replaced by a constant. Keep it light-weight by handling some basic instruction types. Differential Revision: https://reviews.llvm.org/D150464
-
Kiran Chandramohan authored
Fixes part of the issue in https://github.com/llvm/llvm-project/issues/62013 Reviewed By: psoni2628 Differential Revision: https://reviews.llvm.org/D151206
-
donald chen authored
Add RegionBranchOpIntefface to scf.forall and scf.parallel op to make analysis trace through subregions. Differential Revision: https://reviews.llvm.org/D151287
-
Dominik Montada authored
Consecutive concats that happen on the same axis can be folded into a single, bigger concat. This patch implements this folding by implementing the tosa::ConcatOp::fold method. Differential Revision: https://reviews.llvm.org/D151210
-
Sergei Barannikov authored
D151036 adds an assertions that prohibits iterating over sub- and super-registers of a null register. This is already the case when iterating over register units of a null register, and worked by accident for sub- and super-registers. The only place where the assertion is currently triggering is in CriticalAntiDepBreaker::ScanInstruction. Other places are changed in case new assertions are added and should be harmless otherwise. Differential Revision: https://reviews.llvm.org/D151288
-
Marco Elver authored
Do not open code creation of an interceptor alias to another interceptor. Instead, use INTERCEPTOR() + ALIAS() + WRAP. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D151219
-
Marco Elver authored
The __interceptor_*setjmp() definitions appear to have been defined for the purpose of TSAN_INTERCEPT(), but on non-Mac systems, it seems TSAN_INTERCEPT() isn't even being used anymore for setjmp. Remove them. Nothing should call them anyway (due to CHECK-fail), so having the linker fail is better than failing at runtime. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D151218
-
Marco Elver authored
Use ASM_WRAPPER_NAME to produce the name of the __interceptor_* functions. NFC. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D151217
-
Marco Elver authored
Most uses of ALIAS() are in conjunction with WRAPPER_NAME(). Simplify the code and just make ALIAS() turn its argument into a string (similar to Linux kernel's __alias macro). This in turn allows removing WRAPPER_NAME(). NFC. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D151216
-
Christian Ulmann authored
This commit ensures that the merge_handles operation prints its `deduplicate` attribute as an optional keyword instead of "unit". Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D151310
-
bipmis authored
This seems to be an issue currently where there are nested/chained GEP/BitCast Pointers. The patch generates a new GEP for the wider load to avoid dominance problems. Differential Revision: https://reviews.llvm.org/D150864
-
Luke Lau authored
For small fixed-length vector copies like vsetivli zero, 2, e16, m1, ta, ma vle16.v v8, (a0) vse16.v v8, (a1) We can scalarize them if the total vector size < XLEN: lw a0, 0(a0) sw a0, 0(a1) This patch adds a DAG combine to do so, reusing much of the existing logic in https://reviews.llvm.org/D150717 Reviewed By: reames Differential Revision: https://reviews.llvm.org/D151103
-
Luke Lau authored
Reviewed By: reames Differential Revision: https://reviews.llvm.org/D151211
-
Nikita Popov authored
Only check for overflow on the min/max values, don't also check for predicates in addition to that.
-
Benjamin Kramer authored
-
Nikita Popov authored
Make it clear that the leading/trailing zeros handling is only relevant for the unknown LHS case, which is a fast path to avoid the full shift amount loop in cases where it would not produce better results.
-
Nikita Popov authored
I removed the conflict check from computeKnownBitsFromShiftOperator() in D150648 assuming that this is now handled on the KnownBits side. However, the nsw handling is still inside ValueTracking, so we still need to handle conflicts there. Restore the check closer to where it is relevant. Fixes https://github.com/llvm/llvm-project/issues/62908.
-
Nikita Popov authored
After 3a223f1e, it's no longer necessary to put the users into a vector. We can directly iterate them instead.
-
Nikita Popov authored
And make sure udiv() Exact does not produce conflicts.
-
Nico Weber authored
-
Jens Massberg authored
This fixes #62880 Differential Revision: https://reviews.llvm.org/D151200
-