- Jul 12, 2023
-
-
Bryan Chan authored
-
Simon Pilgrim authored
Building on the support for wider input vector types from D154592, try to more aggressively widen inputs instead of scalarizing them.
-
- Jul 11, 2023
-
-
Valentin Clement authored
Add support for `ieor` reduction operator in OpenACC lowering. Depends on D154887 Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D154888
-
Valentin Clement authored
Add support for `ior` reduction operator in OpenACC lowering. Depends on D154886 Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D154887
-
Joseph Huber authored
The 'RPCHandleTy' was intended to capture the intention that a specific device owns its slot in the RPC server. However, this required creating a temporary store to hold these pointers. This was causing really weird spurious failure due to undefined behaviour in the order of library teardown. For example, the x64 plugin would be torn down, set this to some invalid memory, and then the CUDA plugin would crash. Rather than spend the time to fully diagnose this problem I found it pertinent to simply remove the failure mode. This patch removes this indirection so now the usage of the RPC server must always be done with the intended device. This just requires some extra handling for the AMDGPU indirection where we need to store a reference to the device. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D154971
-
Zarko Todorovski authored
On PowerPC, the vec_ct* builtin function take the form of eg. d=vec_cts(a,b) LLVM (llc) will crash when a user specifies a number out of the allowed range (0-31) for b.This patch truncates b so that we avoid the backend crash in some cases. Further documentation for the builtins can be found here: https://www.ibm.com/docs/en/xl-c-and-cpp-linux/16.1.0?topic=functions-vec-ctf https://www.ibm.com/docs/en/xl-c-and-cpp-linux/16.1.0?topic=functions-vec-cts Reviewed By: nemanjai, #powerpc Differential Revision: https://reviews.llvm.org/D106409
-
Tuan Chuong Goh authored
Differential Revision: https://reviews.llvm.org/D154835
-
Valentin Clement authored
Add support for `iand` reduction operator in OpenACC lowering. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D154886
-
Richard Smith authored
We were accidentally profiling the fabricated second argument (`0`), resulting in overloaded dependent `a++` and non-overloaded dependent `a++` having different hashes.
-
Fangrui Song authored
Port D69671 (llvm-readobj) to llvm-objdump. Add a class llvm::objdump::Dumper and move some free functions into Dumper so that they can call reportUniqueWarning. Warnings seems preferable in these cases as the issue is localized and we can continue dumping other information. Differential Revision: https://reviews.llvm.org/D154754
-
Viktoriia Bakalova authored
Differential Revision: https://reviews.llvm.org/D154962
-
Fangrui Song authored
-
Guray Ozen authored
`mbarrier` is a barrier created in shared memory that supports different flavors of synchronizing threads other than `__syncthreads`, for more information see below. https://docs.nvidia.com/cuda/parallel-thread-execution/#parallel-synchronization-and-communication-instructions-mbarrier This work adds initial Ops wrt `mbarrier` to nvgpu dialect. First, it introduces to two types: `mbarrier.barrier` that is barrier object in shared memory `mbarrier.barrier.token` that is token It introduces following Ops: `mbarrier.create` creates `mbarrier.barrier` `mbarrier.init` initializes `mbarrier.barrier` `mbarrier.arrive` performs arrive-on `mbarrier.barrier` returns `mbarrier.barrier.token` `mbarrier.arrive.nocomplete` performs arrive-on (non-blocking) `mbarrier.barrier` returns `mbarrier.barrier.token` `mbarrier.test_wait` waits on `mbarrier.barrier` and `mbarrier.barrier.token` Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D154090
-
Aliia Khasanova authored
Differential Revision: https://reviews.llvm.org/D154976
-
Petr Hosek authored
This reverts commit dae9d1b5 since it caused https://github.com/llvm/llvm-project/issues/63799.
-
Luke Lau authored
It no longer defaults to false as of 63336795 Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D154973
-
Juan Manuel MARTINEZ CAAMAÑO authored
This reverts commit 125b9074.
-
Juan Manuel MARTINEZ CAAMAÑO authored
Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D154970
-
Matthias Springer authored
Add a new option that allows users to specify a memcpy op: "memref.tensor_store", "memref.copy" or "linalg.copy". Differential Revision: https://reviews.llvm.org/D154968
-
Matthias Springer authored
This unit attribute indicates to the bufferization that the resulting buffer will not be written to by another op. Differential Revision: https://reviews.llvm.org/D154967
-
Serge Pavlov authored
Builtin floating-point number classification functions: - __builtin_isnan, - __builtin_isinf, - __builtin_finite, and - __builtin_isnormal now are implemented using `llvm.is_fpclass`. This change makes the target callback `TargetCodeGenInfo::testFPKind` unneeded. It is preserved in this change and should be removed later. Differential Revision: https://reviews.llvm.org/D112932 -
Matthias Springer authored
Return all ops that were generated as part of the bufferization, so that users do not have to match them in the enclosing op. Differential Revision: https://reviews.llvm.org/D154966
-
David Mo authored
For inline WebAssembly, passing a numeric operand to global.get is unsupported. This causes encodeInstruction to reach an llvm_unreachable call, leading to undefined behaviors. This patch fixes the issue for this invalid instruction encoding, making it report an error by adding an MCContext field in class WebAssemblyMCCodeEmitter. Reviewed By: sbc100, bryanpkc Differential Revision: https://reviews.llvm.org/D154734
-
Phoebe Wang authored
The combination was designed to combine a negative imaginary value rather then a full negative complex value. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D154213
-
Matthias Springer authored
This transform op can be used to select all payload ops with a given name from a handle. Differential Revision: https://reviews.llvm.org/D154956
-
gilsaia authored
Added a series of optimizations to the Intersect function of PresburgerRelation, referring to the ISL implementation. Tested it on a simple Benchmark implemented by myself to see that it can speed up the Intersect operation The Benchmark can be found here:https://github.com/gilsaia/llvm-project-test-fpl/blob/develop_benchmark/mlir/benchmark/presburger/Benchmark.cpp The overall results for Intersect are as follows {F28191553} The results for each case are as follows {F28191556} Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D154771
-
NAKAMURA Takumi authored
-
Juan Manuel MARTINEZ CAAMAÑO authored
Moving out some changes not related to the bugfix in https://reviews.llvm.org/D154946 Reviewed By: JonChesterfield, arsenm Differential Revision: https://reviews.llvm.org/D154959
-
Georgi Mirazchiyski authored
Co-Authored-By:
Aidan Belton <aidan.belton@codeplay.com> Reviewed By: tra Differential Revision: https://reviews.llvm.org/D117118
-
Simon Wallis authored
Mark the tMOVi32imm pseudo instr as killing the flags register. The pseudo instruction expands to a sequence of 7 movs/lsls/adds instructions, which are all Thumb-1 flag setting instructions. For a test case, take an existing arm test which checks for "Don't CSE a cmp across a call that clobbers CPSR." and retarget it at thumbv6m execute-only. Reviewed By: stuij Differential Revision: https://reviews.llvm.org/D154845 Change-Id: I8f8209fbc40a833f8875629937b9606c1e2c021d
-
Victor Perez authored
Define `llvm.intr.var.annotation`, `llvm.intr.ptr.annotation` and `llvm.intr.annotation` in the llvm dialect as `llvm.var.annotation`, `llvm.ptr.annotation` and `llvm.annotation` counterparts. Signed-off-by:
Victor Perez <victor.perez@codeplay.com> Differential Revision: https://reviews.llvm.org/D154842
-
Nicolas Vasilache authored
-
Simon Pilgrim authored
-
-
Matt Arsenault authored
-
Vlad Serebrennikov authored
Those issues focus on `template` keyword being optional in certain type-only contexts (base specifiers, member initializers, typename specifiers), as opposed to be disallowed by the grammar, or required by some implementations. GCC accepts all the tests this patch touches since 10, others fail on various tests: https://godbolt.org/z/1M6KE3W1a It should be noted that the wording in [[ https://cplusplus.github.io/CWG/issues/1710.html | 1710 ]] that resolves those issues has been substantially changed by [[ https://wg21.link/p1787 | P1787 ]]. I can't find the post-P1787 wording that covers those issues, but I can't find the intent of changing relevant behavior in P1787 either, so I assume that intent of the 1710 resolution is preserved somewhere. This patch covers the following issues: [[ https://cplusplus.github.io/CWG/issues/314.html | CWG314 ]] [[ https://cplusplus.github.io/CWG/issues/343.html | CWG343 ]] [[ https://cplusplus.github.io/CWG/issues/1710.html | CWG1710 ]] [[ https://cplusplus.github.io/CWG/issues/1794.html | CWG1794 ]] [[ https://cplusplus.github.io/CWG/issues/1812.html | CWG1812 ]] Reviewed By: #clang-language-wg, cor3ntin Differential Revision: https://reviews.llvm.org/D151697
-
Nikita Popov authored
If the and/or operand is an immediate constant, it will get folded away anyway. Don't try to freely invert those operands. A particularly degenerate case of this arises when both operands are constant and the result is a constant, in which case we try to invert users of a constant, resulting in an assertion failure. Fixes https://github.com/llvm/llvm-project/issues/63791.
-
LLVM GN Syncbot authored
-
Haojian Wu authored
The fixIncludes was using the `input` as the main file path, this will results in inserting header at wrong places. We need the main file path to so that we can get the real main-file header. Differential Revision: https://reviews.llvm.org/D154950
-
Joachim Jenke authored
Add CHECK_OPENMP_ENV environment variable which will be passed to environment variables for test (make check-* target). This provides a handy way to exercise various openmp code with different settings during development. For example, to change default barrier pattern: ``` $ env CHECK_OPENMP_ENV="KMP_FORKJOIN_BARRIER_PATTERN=hier,hier \ KMP_PLAIN_BARRIER_PATTERN=hier,hier \ KMP_REDUCTION_BARRIER_PATTERN=hier,hier" \ ninja check-openmp ``` Even with this, each test can set appropriate environment variables if needed as before. Also, this commit adds missing documention about how to run tests in README. Patch provided by t-msn Differential Revision: https://reviews.llvm.org/D122645
-