- May 22, 2023
-
-
Muhammad Omair Javaid authored
TestInterruptBacktrace.py started randonmly failing on Arm/Linux buildbot since e19387e6. This patch marks it skipped. Differential Revision: https://reviews.llvm.org/D150236
-
Jean Perier authored
Lower hlfir.where when the scheduling analysis determined that no temporary storage is needed. Differential Revision: https://reviews.llvm.org/D150881
-
Christian Kandeler authored
... by skipping the conflict check. The same considerations apply. Reviewed By: hokein Differential Revision: https://reviews.llvm.org/D150685
-
Jean Perier authored
Nothing special is needed, other than adding the logging code for where masks and to plug the pattern. This tests mainly adds test. Note that some of the justifications to create temps shows some lacks of side effect interface on operations (like hlfir.transpose), or on some transparent llvm intrinsic calls (llvm.stacksave/restore). I think we should as much as possible try to improve this on the ops generate code rather than special casing it here. Differential Revision: https://reviews.llvm.org/D150581
-
Kiran Chandramohan authored
Fixes #60874 Reviewed By: psoni2628, NimishMishra Differential Revision: https://reviews.llvm.org/D151027
-
Andrew Gozillon authored
This attribute represents the OpenMP declare target directive, it marks a function or global as declare target by being present but also contains information on the device_type and capture clause (link or to). It being an attribute allows it to mark existing constructs and be converted trivially on lowering from the OpenMP dialect to MLIR using amendOperation. An interface has been made for the declare target attribute, with several helper methods for managing the attribute, this interface can be applied to MLIR operations that are allowed to be marked as declare target (as an example, it is by default applied to func.func, LLVMFunc, fir.GlobalOps and LLVMGlobalOps). Reviewers: kiranchandramohan Differential Revision: https://reviews.llvm.org/D150328
-
eopXD authored
Signed-off by: eop Chen <eop.chen@sifive.com>
-
Thomas Debesse authored
Fixes https://github.com/llvm/llvm-project/issues/62018.
-
Johannes Reifferscheid authored
Reviewed By: khasanovaa Differential Revision: https://reviews.llvm.org/D151072
-
eopXD authored
For the cover letter of this patch-set, please checkout D146872. Depends on D147731. This is the 4th patch of the patch-set. This patch is a proof-of-concept and will be extended to full coverage in the future. Currently, the old non-tuple unit-stride segment store is not removed, and only signed integer unit-strided segment store of NF=2, EEW=32 is defined here. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D147774
-
eopXD authored
For the cover letter of this patch-set, please checkout D146872. Depends on D146873. This is the 3rd patch of the patch-set. This patch originates from D99593. Note: This patch is a proof-of-concept and will be extended to full coverage in the future. Currently, the old non-tuple unit-stride segment load is not removed, and only signed integer unit-strided segment load of NF=2, EEW=32 is defined here. When replacing the old intrinsics, the extra `IsTuple` parameter under various places will be redundant and removed. Authored-by:
eop Chen <eop.chen@sifive.com> Co-Authored-by:
Hsiangkai Wang <kai.wang@sifive.com> Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D147731
-
Matt Arsenault authored
The only value that can produce -0 is exactly -0, no rounding is involved. If the denormal mode has flushed denormal inputs, a negative value could produce -0. The constrained intrinsics do not track the denormal mode, and this is just generally broken in the current set of FP predicates. The move to computeKnownFPClass will address some of these issues.
-
Florian Hahn authored
Fixes build with debug printing disabled.
-
Matt Arsenault authored
This was only half complete. We need to enable the positive fields for any negative classes.
-
Matt Arsenault authored
-
Krasimir Georgiev authored
-
Luke Lau authored
-
Théo Degioanni authored
This revision introduces a generic implementation of Scalar Replacement Of Aggregates. In contrast to the implementation in LLVM, this focuses on the core of SROA: destructuring aggregates. By implementing interfaces on allocators and accessors, memory allocators can be destructured into smaller allocators, through the MemorySlot abstraction. This pass only works on aggregates that are accessed in a "type-safe" way, that is within the bounds and respecting the type of a given memory slot. The destructuring pattern and functions only peel off the first layer of aggregates and can safely be applied repeatedly. For convenience, the transformation is also available as a pass that will apply the pattern repeatedly. Depends on D149958 Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D150186
-
Florian Hahn authored
Preparation for D150398. This brings live-out printing in line with how printing for recipes is handled.
-
Job Noorman authored
For linker relaxation (D149526), a new edge kind (`CallRelaxable`) was introduced. However, this new kind was not taken into account by `PerGraphGOTAndPLTStubsBuilder_ELF_riscv`. This patch fixes this. Reviewed By: StephenFan Differential Revision: https://reviews.llvm.org/D150957
-
Jie Fu authored
/data/llvm-project/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp:4851:13: error: enumeration value 'RvvInt32m1x2' not handled in switch [-Werror,-Wswitch] switch (llvm::cast<clang::BuiltinType>(qual_type)->getKind()) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. ninja: build stopped: subcommand failed. -
Krasimir Georgiev authored
-
Alex Zinenko authored
Update operations in Transform dialect extensions used for testing to use the more generic `TransformHandleTypeInterface` type constraint instead of hardcoding `PDL_Operation`. See https://discourse.llvm.org/t/rfc-type-system-for-the-transform-dialect/65702 for motivation. This is particularly important as these tests are often used as source of best practices. Update tests to use `!transform.any_op` instead of `!pdl.operation`. Depends On D150785 Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D150786
-
Alex Zinenko authored
Update various tests using Transform dialect extensions to pervasively use `!transform.any_op` instead of `!pdl.operation`. Tests are sometimes used as source of knowledge for best practices and these were doing the opposite of what is considered best practices per https://discourse.llvm.org/t/rfc-type-system-for-the-transform-dialect/65702. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D150785
-
eopXD authored
Signed-off by: eop Chen <eop.chen@sifive.com>
-
eopXD authored
For the cover letter of this patch-set, please checkout D146872. Depends on D146872. This is the 2nd patch of the patch-set. This patch originates from D97264. This patch further allows local variable declaration and function parameter passing by adjustment in clang lowering. Test cases are provided to demonstrate the LLVM IR generated. Note: This patch is currently only a proof-of-concept with only a single RVV tuple type declared here, the rest will be added when the concept of this patch-set is accepted. Authored-by:
eop Chen <eop.chen@sifive.com> Co-Authored-by:
Hsiangkai Wang <kai.wang@sifive.com> Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D146873
-
Martin Braenne authored
Prior to this patch, `operator->` was being handled like `operator*`: It was associating a `Value` of type `T` with the expression result (where `T` is the template argument of the `optional<T>`). This is correct for `operator*`, which returns a reference (of some flavor) to `T`, so that the result of the `CXXOperatorCallExpr` is a glvalue of type `T`. However, `operator*` returns a `T*`, so the result of the `CXXOperatorCallExpr` is a prvalue `T*`, which should therefore be associated with `PointerValue` that in turn refers to a `T`. I noticed this issue while working on the migration to strict handling of value categories (see https://discourse.llvm.org/t/70086). The current behavior also seems problematic more generally because it's plausible that the framework may at some point introduce behavior that assumes an `Expr` of pointer type is always associated with a `PointerValue`. As it turns out, this patch fixes an existing FIXME in the test `OptionalValueInitialization`. Depends On D150657 Reviewed By: ymandel Differential Revision: https://reviews.llvm.org/D150775
-
Martin Braenne authored
This patch is part of the ongoing migration to strict handling of value categories (see https://discourse.llvm.org/t/70086 for details). Depends On D150656 Reviewed By: sammccall, ymandel, xazax.hun Differential Revision: https://reviews.llvm.org/D150657
-
Martin Braenne authored
This patch is part of the ongoing migration to strict handling of value categories (see https://discourse.llvm.org/t/70086 for details). Depends On D150655 Reviewed By: sammccall, ymandel, xazax.hun Differential Revision: https://reviews.llvm.org/D150656
-
Martin Braenne authored
This patch handles the straightforward cases. Upcoming separate patches will handle the cases that are more subtle. This patch is part of the ongoing migration to strict handling of value categories (see https://discourse.llvm.org/t/70086 for details). Depends On D150653 Reviewed By: sammccall, ymandel, xazax.hun Differential Revision: https://reviews.llvm.org/D150655
-
Max Kazantsev authored
This patch allows LICM to reassociate and hoist following expressions: ``` loop: %sum = add nsw %iv, %C1 %cmp = icmp <signed pred> %sum, C2 ``` where `C1` and `C2` are loop invariants. The reassociated version looks like ``` preheader: %inv_sum = C2 - C1 ... loop: %cmp = icmp <signed pred> %iv, %inv_sum ``` In order to prove legality, we need both initial addition and the newly created subtraction to happen without overflow. Differential Revision: https://reviews.llvm.org/D149132 Reviewed By: skatkov
-
Kai Sasaki authored
Consecutive tosa.abs can be fold as single abs operation since the second one has no impact. Differential Revision: https://reviews.llvm.org/D150836
-
Ben Shi authored
The former owner Dylan McKay (https://reviews.llvm.org/p/dylanmckay/) has agreed to pass the responsibility to Ben Shi (https://reviews.llvm.org/p/benshi001/). Please refer to https://discourse.llvm.org/t/apply-for-the-ownership-of-the-avr-backend/70624 Reviewed By: MaskRay, lattner Differential Revision: https://reviews.llvm.org/D150519
-
Craig Topper authored
Instead of failing to select during isel, drop the intrinsic in lowering. Fixes PR62839. Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D151050
-
Kai Luo authored
-
Mehdi Amini authored
-
wangpc authored
This simplifies some code. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D150935
-
Kelvin Li authored
Treat lines that start with @process as a comment line. The directive is accepted and ignored. Differential Revision: https://reviews.llvm.org/D150883
-
Jim Lin authored
Apparently, both of clz and ctz should have tests for _32 version on RV64. Reviewed By: kito-cheng Differential Revision: https://reviews.llvm.org/D150945
-
Mehdi Amini authored
The RNG initalization relied on implicit conversion that wasn't guaranteed in the MLIR TestUseListOrders. Also made the RNG state a pass member, the random sequence is not not reset for each op anymore.
-