- May 08, 2023
-
-
Théo Degioanni authored
This patch refactors the Mem2Reg infrastructure. It decouples analysis from promotion, allowing for more control over the execution of the logic. It also adjusts the interfaces to be less coupled to mem2reg and more general. This will be useful for an upcoming revision introducing generic SROA. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D149825
-
Jacques Pienaar authored
Was incorrectly marked as DenseIntElementsAttr (only used for SparseElementsAttr).
-
Oleksandr "Alex" Zinenko authored
This mechanism has never been intended for anything but prototyping.
-
Mehdi Amini authored
This is part of an on-going migration to adopt Properties inside MLIR. Differential Revision: https://reviews.llvm.org/D148300
-
Sam McCall authored
This reverts commit 5326c9e4. The problem that caused the revert was downstream (missing dep in user of clang).
-
Wang, Xin10 authored
In DIEValue's operator assignment constructor, it didn't identify if the two obj is the same. I add code to identify them so that it will work correctly when we do self assign here. Reviewed By: skan Differential Revision: https://reviews.llvm.org/D150020
-
Qiu Chaofan authored
Clang has mechanism to specify required target features of a built-in function. This patch adds such definitions to Altivec, VSX, HTM, PairedVec and MMA builtins. This will help frontend to detect incompatible target features of bulitin when using target attribute syntax. Reviewed By: nemanjai, kamaub Differential Revision: https://reviews.llvm.org/D143467
-
Vassil Vassilev authored
Non-incremental Clang can also exit with the WeakRefReferences not empty upon such example. This patch makes clang-repl consistent to what Clang does. Differential revision: https://reviews.llvm.org/D148435
-
Job Noorman authored
R_RISCV_CALL has been deprecated. [1] Both GCC and LLVM seem to not generate it anymore and always use R_RISCV_CALL_PLT (even for calls that do not need a PLT entry). Generating PLT entries based on relocation type is not recommended and a better heuristic is to only generate them when the target symbol is preemptable [2]. This patch implements this by only generating PLT entries for undefined symbols. [1] https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/340 [2] https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/98 Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D149525
-
eopXD authored
-
Lorenzo Chelini authored
Commit b4563ee1 enabled propagation for pack and unpack through non-elementwise operations, update comments and methods names to reflect the changes made. Rework some tests where the `linalg.generic` was reading from `tensor.empty`, which is undefined behaviour. Reviewed By: hanchung, qedawkins Differential Revision: https://reviews.llvm.org/D149952
-
Vitaly Buka authored
-
Vitaly Buka authored
-
sgokhale authored
Try to reland D42600 Differential Revision: https://reviews.llvm.org/D42600
-
Vitaly Buka authored
-
Vitaly Buka authored
Now we can fix sanitizers for the test one by one.
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Martin Braenne authored
This parameter was already a no-op, so removing it doesn't change behavior. Depends On D149144 Reviewed By: ymandel, xazax.hun, gribozavr2 Differential Revision: https://reviews.llvm.org/D149151
-
Jonas Paulsson authored
It was discovered that this pass could be slow on huge functions, meaning 20% compile time instead of the usual ~0.5% (with a test case spending ~19 mins just in the backend). The problem related to the necessary clearing of earlier kill flags when a redundant instruction is removed. With this patch, the handling of kill flags is now done by maintaining a map instead of scanning backwards in the function. This remedies the compile time on the huge file fully. Reviewed By: vpykhtin, arsenm Differential Revision: https://reviews.llvm.org/D147532 Resolves https://github.com/llvm/llvm-project/issues/61397
-
sgokhale authored
Autogenerating tests as suggested in D42600
-
WuXinlong authored
This patch add the instructions of zcmp extension. Instructions in zcmp extension try to optimise `mv` inst and the prologue & epilogue in functions co-author: @Scott Egerton, @ZirconLiu, @Lukacma, @Heda Chen, @luxufan, @heyiliang, @liaochunyu Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D132819
-
Vitaly Buka authored
-
Noah Goldstein authored
The generic cast to `BinaryOperator` can break if `V` is not a `BinaryOperator` (i.e a `ConstantExpr`). This occurs in things like PPC linux build. This reverts commit fe733f54.
-
LLVM GN Syncbot authored
-
Shengchen Kan authored
1. Share code `optimizeInstFromVEX3ToVEX2` with MCInstLower 2. Move the code of optimization for shift/rotate to a separate file Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D150068
-
Joshua Cao authored
We currently have getMinTrailingZeros(), from which we can get a SCEV's multiple by computing 1 << MinTrailingZeroes. However, this only gets us multiples that are a power of 2. This patch introduces a way to get max constant multiples that are not just a power of 2. The logic is similar to that of getMinTrailingZeros. getMinTrailingZerosImpl is replaced by computing the max constant multiple, and counting the number of trailing bits. I have so far found this useful in two places: 1) Computing unsigned constant ranges. For example, if we have i8 {10,+,10}<nuw>, we know the max constant it can be is 250. 2) My original intent was to use this in getSmallConstantTripMultiples, but it has no effect right now due to change from D110587. For example, if we have backedge count `(6 * %N) - 1`, the trip count becomes `1 + zext((6 * %N) - 1)`, and we cannot say that 6 is a multiple of the SCEV. I plan to look further into this separately. The implementation assumes the value is unsigned. It can probably be extended to handle signed values as well. If the code sees that a SCEV does not have <nuw>, it will fall back to finding the max multiple that is a power of 2. Multiples that are a power of 2 will still be a multiple even after the SCEV overflows. This does not apply to other values. This is the 1st commit message: --- This relands https://reviews.llvm.org/D141823. The verification fails when expensive checks are turned on. This can occur when: 1. SCEV S's multiple is cached 2. SCEV S's no wrap flags are strengthened, and the multiple changes 3. SCEV verifier finds that S's cached and recomputed multiple are different We eliminate most cases by forgetting SCEVAddRecExpr's cached values when the flags are modified, but there are still cases for other SCEV types. We relax the check by making sure the cached multiple divides the recomputed multiple, ensuring the cached multiple is correct, conservative multiple. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D149529 -
esmeyi authored
Summary: Currently the crush info is ambiguous when DwarfLineStrSection is null. The patch adds an assertion in the constructor of MCDwarfLineStr when DwarfLineStrSection is null. Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D149121
-
Fangrui Song authored
For a .quad/.8byte directive that needs a relocation, Mach-O emits one error while ELF emits two. Emit just one for ELF and change the diagnostic to match other ports.
-
Fangrui Song authored
Fix a llvm_unreachable crash in -DLLVM_ENABLE_ASSERTIONS=on builds and possible accept-invalid in -DLLVM_ENABLE_ASSERTIONS=off builds.
-
wanglei authored
-
Fangrui Song authored
-
Fangrui Song authored
Similar to 49488490. Remove MCDwarfFrameEmitter::EmitAdvanceLoc which is only called once.
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D148553
-
Ian Anderson authored
Several headers are missing includes for things they use. type_traits.is_enum needs to export type_traits.integral_constant so that clients can access its `value` member without explicitly including __type_traits/integral_constant.h themselves. Make `subrange_fwd` a peer submodule to `subrange` rather than a submodule of it, and have `subrange` export `subrange_fwd`. That will make it easier to programmatically generate modules for the private detail headers, and it will accomplish the same effect that __ranges/subrange.h will make subrange_kind visible. Reviewed By: Mordante, #libc Differential Revision: https://reviews.llvm.org/D150055
-
Ian Anderson authored
[libc++] test/libcxx/transitive_includes.sh.cpp dumps loads of unhelpful preprocessor output when it fails Send stdout to dev/null since the preprocessor output isn't relevant to the test and is tons of noise when the test fails. Reviewed By: Mordante, #libc, philnik Differential Revision: https://reviews.llvm.org/D150056
-
Zhao Qi authored
This patch only provides basic LoongArchTTIImpl, and more hooks will be added to provide TTI machinery for LoongArch soon. Reviewed By: SixWeining, xen0n Differential Revision: https://reviews.llvm.org/D147524
-
Weining Lu authored
This reverts commit 040a41a8. Author name is wrong.
-