- Mar 22, 2022
-
-
psamolysov-intel authored
There is a bunch of code improvements in the patch: marking as const everything what can be const and fixing some typos in comments. Also the patch removes the shadowing parameter TTI from the rewriteWithNewAddressSpaces method, the TTI parameter is not required because the same field is in the class. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D121671
-
Arjun P authored
This was declared but not defined previously.
-
- Mar 21, 2022
-
-
Simon Pilgrim authored
This will further fold to a AND(SETCC_CARRY(),1) pattern which tends to prevent further folds.
-
Simon Pilgrim authored
Another variant based off the PR35908 test cases
-
Arjun P authored
-
zhongyunde authored
Trying to reduce the number of masked loads in favour of more unpklo/hi instructions. Both ISD::ZEXTLOAD and ISD::SEXTLOAD are supported to extensions from legal types. Both of normal and masked loads test cases added to guard compile crash. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D120953
-
William S. Moses authored
The current nested if merging has a bug. Specifically, consider the following code: ``` %r = scf.if %arg3 -> (i32) { scf.if %arg1 { "test.op"() : () -> () } scf.yield %arg0 : i32 } else { scf.yield %arg2 : i32 } ``` When the above gets merged, it will become: ``` %r = scf.if %arg3 && %arg1-> (i32) { "test.op"() : () -> () scf.yield %arg0 : i32 } else { scf.yield %arg2 : i32 } ``` However, this means that when only %arg3 is true, we will incorrectly return %arg2 instead of %arg0. This change updates the behavior of the pass to only enable nested if merging where the outer yield contains only values from the inner if, or values defined outside of the if. In the case of the latter, they can turned into a select of only the outer if condition, thus maintaining correctness. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D122108 -
Arjun P authored
-
Arjun P authored
-
Arjun P authored
-
Arjun P authored
Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D122136
-
Alex Zinenko authored
These dialects have Python bindings and are tested, but were not previously exposed through Bazel filegroups. Differential Revision: https://reviews.llvm.org/D122138
-
Aaron Puchert authored
The solution using append was reported not to work, but additionally it would use the contents of the checked-out source tree instead of the git tag or commit. This uses `git archive`, so it will use the right commit, and at least for me (with GNU tar) it seems to work as intended. Should fix #53281. Reviewed By: kwk Differential Revision: https://reviews.llvm.org/D121972
-
Kiran Chandramohan authored
This patch adds the OpenMP conversion patterns to the FIR to LLVM dialect lowering pass in Codegen. Appropriate legalization conditions are also added. This ensures that a mix of FIR and OpenMP dialects can be lowered to LLVM and OpenMP dialects. Also adds two tests. This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Reviewed By: clementval, peixin Differential Revision: https://reviews.llvm.org/D121793 Co-authored-by:
Sourabh Singh Tomar <SourabhSingh.Tomar@amd.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Nikita Popov authored
The EmitLoadOfPointer() call already specified the right pointer type, but it did not match the Address we're loading from, so we need to insert a bitcast first.
-
Simon Pilgrim authored
Prefer the commutable ADC over SBB to improve load folding opportunities
-
Arjun P authored
-
Nikita Popov authored
%S refers to the directory of %s, not to the cwd. This is mostly handled correctly, but update_cc_test_checks.py used the wrong path for non-FileCheck RUN lines. Reapplying this with a fix for an update_cc_test_checks test that was based on cwd semantics.
-
Louis Dionne authored
Differential Revision: https://reviews.llvm.org/D122006
-
Louis Dionne authored
It turns out that we had never been enabling it anyways, since the LIBCXX_TEST_PARAMS parameter was not being passed from the bootstrapping build to the libc++ and libc++abi builds. Furthermore, it looks like the per-target include directories used by the bootstrapping build by default are incompatible with our current modulemap, since __config_site doesn't live in the directory that our modulemap claims. This disables modules in our bootstrapping CI job to unblock D121822, but we should work on fixing the underlying issue once we're able to pass those configuration options to our bootstrapping build.
-
Alex Bradbury authored
This test aims to demonstrate the WebAssembly backend's behaviour around emission of the .functype directive. It covers defined and declared functions as well as libcalls. It currently fails to emit functypes for all defined functions at the head of the file, causing issues with the type checker <https://github.com/llvm/llvm-project/issues/54022>. The patch in <https://reviews.llvm.org/D122134> is a proposal to fix this issue.
-
Simon Pilgrim authored
Handle SUB(AND(SRL(Y,Z),1),X) -> NEG(SBB(X,0,BT(Y,Z))) folds I'll address the X86 lost folded-load regressions in a follow-up patch
-
James Y Knight authored
-
Simon Pilgrim authored
Ensure we don't attempt to fold to illegal types to ADC/SBB nodes. After D122084 its possible for ADD(X,AND(SRL(Y,Z),1) patterns to be matched before type legalization.
-
Nikita Popov authored
This reverts commit 8ee1ef2a. This breaks an update_cc_test_checks test that is based on an incorrect %S use, revert until I can fix it.
-
Nikita Popov authored
-
Alexey Bataev authored
scheduling. Need to check that the instructions with external operands can be reordered safely before actualy exclude them from the scheduling.
-
Sam McCall authored
-
Simon Pilgrim authored
Add shl/srl/sra to the list of ops that we canonicalize with a select to expose an identity merge Differential Revision: https://reviews.llvm.org/D122070
-
Sven van Haastregt authored
Ensure that the TypeExtension of an `ImageType` is also taken into account when generating `OpenCLBuiltins.inc`. This aligns the handling of the `write_only image3d_t` type for `-fdeclare-opencl-builtins` with opencl-c.h with respect to the `cl_khr_3d_image_writes` extension. Since the `write_only image3d_t` type is not available when the extension is disabled, this commit does not add a test to `SemaOpenCL/fdeclare-opencl-builtins.cl`.
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D121995
-
Sophia authored
Reviewed by: fhahn (Florian Hahn) Differential Revision: https://reviews.llvm.org/D121781 -
Markus Böck authored
When the current implementation merges two blocks that have operands defined outside of their block respectively, it will merge these by adding a block argument in the resulting merged block and adding successor arguments to the predecessors. There is a special case where this is incorrect however: If one of predecessors terminator produce the operand, inserting the block argument and updating the predecessor would lead to the terminator using its own result as successor argument. IR Example: ``` %0 = "test.producing_br"()[^bb1, ^bb2] { operand_segment_sizes = dense<0> : vector<2 x i32> } : () -> i32 ^bb1: "test.br"(%0)[^bb4] : (i32) -> () ``` where `^bb1` is then merged with another block would lead to: ``` %0 = "test.producing_br"(%0)[^bb1, ^bb2] ``` This patch fixes that issue during clustering by making sure that if the operand is from an outside block, that it is not produced by the terminator of a predecessor. Differential Revision: https://reviews.llvm.org/D121988 -
Nikita Popov authored
%S refers to the directory of %s, not to the cwd. This is mostly handled correctly, but update_cc_test_checks.py used for the wrong path for non-FileCheck RUN lines.
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D122066
-
Simon Pilgrim authored
-
Jay Foad authored
-
Jay Foad authored
-
Jez Ng authored
-