- Jul 19, 2021
-
-
Lang Hames authored
For compilers that do not support __has_builtin just return '0'. This should fix the bot failure at https://lab.llvm.org/buildbot/#/builders/165/builds/3761.
-
Riccardo Mori authored
This is part of an effort to reduce the differences between the custom C++ bindings used right now by polly in `lib/External/isl/include/isl/isl-noxceptions.h` and the official isl C++ interface. Changes made: - Use `isl::union_map::unite()` instead of `isl::union_map::add_map()` - `isl-noexceptions.h` has been generated by this https://github.com/patacca/isl/commit/3f43ae29fa2a22936a583b85b2fe8d439f805d8d Depends on D106059 Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D106061
-
Florian Mayer authored
Reviewed By: eugenis, vitalybuka Differential Revision: https://reviews.llvm.org/D106135
-
Lang Hames authored
Adds support for MachO static initializers/deinitializers and eh-frame registration via the ORC runtime. This commit introduces cooperative support code into the ORC runtime and ORC LLVM libraries (especially the MachOPlatform class) to support macho runtime features for JIT'd code. This commit introduces support for static initializers, static destructors (via cxa_atexit interposition), and eh-frame registration. Near-future commits will add support for MachO native thread-local variables, and language runtime registration (e.g. for Objective-C and Swift). The llvm-jitlink tool is updated to use the ORC runtime where available, and regression tests for the new MachOPlatform support are added to compiler-rt. Notable changes on the ORC runtime side: 1. The new macho_platform.h / macho_platform.cpp files contain the bulk of the runtime-side support. This includes eh-frame registration; jit versions of dlopen, dlsym, and dlclose; a cxa_atexit inte...
-
Lang Hames authored
-
Simon Pilgrim authored
Based off the codegen reports on PR51075 - hopefully we can handle some of this in SLP or VectorCombine, but we usually have to leave load combining until the backend so at least some of these patterns will still appear even then.
-
Riccardo Mori authored
This is part of an effort to reduce the differences between the custom C++ bindings used right now by polly in `lib/External/isl/include/isl/isl-noxceptions.h` and the official isl C++ interface. Changes made: - Stop generating `isl::union_set` and isl::union_map` from `isl::space` and instead generate them from `isl::ctx` - Disable clang-format on `isl-noexceptions.h` - Removed `isl::union_{set,map}` generator from `isl::space` from `isl-noexceptions.h` - `isl-noexceptions.h` has been generated by this https://github.com/patacca/isl/commit/87c3413b6f1d62ca3dddf716352f90a0b8533353 Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D106059 -
Tobias Gysi authored
Insert ops replacing pad_tensor in front of the associated tansfer_write / insert_slice op. Otherwise we may end up with invalid ir if one of the remaining tansfer_write / insert_slice operands is defined after the pad_tensor op. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D106162
-
Whisperity authored
Finds function calls where the call arguments might be provided in an incorrect order, based on the comparison (via string metrics) of the parameter names and the argument names against each other. A diagnostic is emitted if an argument name is similar to a *different* parameter than the one currently passed to, and it is sufficiently dissimilar to the one it **is** passed to currently. False-positive warnings from this check are useful to indicate bad naming convention issues, even if a swap isn't necessary. This check does not generate FixIts. Originally implemented by @varjujan as his Master's Thesis work. The check was subsequently taken over by @barancsuk who added type conformity checks to silence false positive matches. The work by @whisperity involved driving the check's review and fixing some more bugs in the process. Reviewed By: aaron.ballman, alexfh Differential Revision: http://reviews.llvm.org/D20689 Co-authored-by:
János Varjú <varjujanos2@gmail.com> Co-authored-by:
Lilla Barancsuk <barancsuklilla@gmail.com>
-
Rosie Sumpter authored
Replace code which identifies induction phi with helper function getInductionVariable to improve robustness. Differential Revision: https://reviews.llvm.org/D106045
-
Cullen Rhodes authored
This patch adds support for the following instructions: SCLAMP, UCLAMP, REV, DUP (predicate) The reference can be found here: https://developer.arm.com/documentation/ddi0602/2021-06 Reviewed By: kmclaughlin Differential Revision: https://reviews.llvm.org/D105577 -
David Green authored
This relaxes the VMLAV and VADDV reduction recognition code to handle smaller than legal types, extending them as needed. That was already handled for some reductions, this extends it to more types in a more generic way. If a smaller than legal value is found it is extended to the legal type as needed. Differential Revision: https://reviews.llvm.org/D106051
-
Sander de Smalen authored
The case for nxv2f32/nxv2i32 was already covered by D104573. This patch builds on top of that by making the mechanism work for nxv2[b]f16/nxv2i16, nxv4[b]f16/nxv4i16 as well. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D106138
-
Andy Wingo authored
If a file has no symbols, perhaps because it is a linked executable, synthesize some symbols by walking the code section. Otherwise the disassembler will try to treat the whole code section as a function, which won't parse. Fixes https://bugs.llvm.org/show_bug.cgi?id=50957. Differential Revision: https://reviews.llvm.org/D105539
-
Shilei Tian authored
D106236 added a new CMake argument for `libomptarget` test, but when user's input contains white spaces, CMake will add escape char to the final lit command, which leads to an error. This patch converts the user's input `LIBOMPTARGET_LIT_ARGS` into a local array, and then passes the array to the function. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D106247
-
Eli Friedman authored
-
Eli Friedman authored
Apparently there was a latent bug here.
-
David Blaikie authored
-
Chia-hung Duan authored
Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D105883
-
Eli Friedman authored
This reverts commit 2a419a0b. The result of a shufflevector must not propagate poison from any element other than the one noted in the shuffle mask. The regressions outside of fptoui-may-overflow.ll can probably be recovered some other way; for example, using isGuaranteedNotToBePoison. See discussion on https://reviews.llvm.org/D106053 for more background. Differential Revision: https://reviews.llvm.org/D106222
-
Jon Chesterfield authored
The `__CUDA__` macro is already defined for openmp/nvptx and is not used by `__clang_cuda_complex_builtins.h`, so dropping that macro slightly simplifies nvptx and avoids defining it on amdgcn (where it is likely to be harmful). Also dropped a cplusplus test from a C++ header as compilation will have failed on cmath earlier if it was included from C. Reviewed By: jdoerfert, fodinabor Differential Revision: https://reviews.llvm.org/D105221
-
Krishna Kariya authored
The inttoptr/ptrtoint roundtrip optimization is not always correct. We are working towards removing this optimization and adding support to specific cases where this optimization works. This patch is the first one on this line. Consider the example: %i = ptrtoint i8* %X to i64 %p = inttoptr i64 %i to i16* %cmp = icmp eq i8* %load, %p In this specific case, the inttoptr/ptrtoint optimization is correct as it only compares the pointer values. In this patch, we fold inttoptr/ptrtoint to a bitcast (if src and dest types are different). Differential Revision: https://reviews.llvm.org/D105088 -
Nikita Popov authored
-
Eli Friedman authored
-
Wenlei He authored
-
Eli Friedman authored
-
Valentin Churavy authored
This patch relands https://reviews.llvm.org/D104799, but fixes the memory handling causing leak sanitizer failures. This reverts commit a56fe117.
-
Sanjay Patel authored
-
Sanjay Patel authored
Keeping a marker for Changed might have made sense before this code was refactored, but we never touch that variable after initialization now.
-
Simon Pilgrim authored
As discussed on D106058 - we were failing to keep the common flags. This matches the behaviour in InstCombinerImpl::foldSelectOpOp.
-
Simon Pilgrim authored
-
Shilei Tian authored
[OpenMP][Offloading] Add a CMake argument LIBOMPTARGET_LIT_ARGS to control behavior of libomptarget lit test By default, `lit` uses all threads to invoke tests, which can easily cause out of memory on GPUs because most of OpenMP offloading test usually take about 1GB GPU memory, but a typical GPU only has 4-8GB memory. This patch introduce a CMake argument `LIBOMPTARGET_LIT_ARGS` to allow users to control the behavior of `libomptarget` tests, similar to `LLVM_LIT_ARGS`. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D106236
-
Nikita Popov authored
-
Nikita Popov authored
-
- Jul 18, 2021
-
-
Simon Pilgrim authored
Shows failure to fold sel(sra(X,C1),sra(Y,C1)) -> sra(sel(X,Y),C1) (and to retain the flags)
-
Kazu Hirata authored
The last use was removed on Apr 28, 2014 in commit c5a3139e.
-
Simon Pilgrim authored
As discussed on D106058 - we're not propagating the common flags to the merged binop
-
Deep Majumder authored
Differential Revision: https://reviews.llvm.org/D103750
-
Valentin Churavy authored
Broke ASAN buildbot, will reland with fixes This reverts commit b5a6ad8c.
-
Simon Pilgrim authored
I'm going to extend the functionality started in D106058 so move the folds into their own method to reduce the amount of code in DAGCombiner::visitSELECT
-