- Dec 09, 2021
-
-
Valentin Clement authored
This patch introduces a bunch of builder functions to create function calls to runtime ragged arrays functions. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D114535 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Jon Chesterfield authored
-
Peter Waller authored
These tests doesn't currently make use of any fast math flag other than contract. This will change in D109525 when a dependency on nsz will be introduced where negation is involved.
-
AndreyChurbanov authored
Regardless that specification requires thread_limit to be positive, it is better to warn user instead of crash in case the value is negative. Differential Revision: https://reviews.llvm.org/D115340
-
- Dec 08, 2021
-
-
Tom Weaver authored
These tests were spuriously failing on Windows due to path separators getting flipped from `/` to `\\` in various parts of dexter: test_add_breakpoint_with_source_root_dir test_get_step_info test_get_step_info_no_source_root_dir Tested on Windows and Linux. Patch written by @TWeaver. Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D115338
-
David Green authored
We can be in situations where And 1 zext nodes will not have been yet, preventing us from detecting removable cmpz/csinc patterns. This peeks through those nodes allowing us to simplify more code. Differential Revision: https://reviews.llvm.org/D115176
-
Sanjay Patel authored
We avoid this fold in the more general cases where we use FoldOpIntoSelect. That's because -- unlike most binary opcodes -- 'div' can't usually be speculated with a variable divisor since it can have immediate UB. But in the case where both arms of the select are constants, we can safely evaluate both sides and eliminate 'div' completely. This is a follow-up to the equivalent fold for 'rem' opcodes: D115173 / f65be726
-
Sam McCall authored
Clang doesn't offer these fixes I guess for a couple of reasons: - where to insert includes is a formatting concern, and clang shouldn't depend on clang-format - the way clang prints diagnostics, we'd show a bunch of basically irrelevant context of "this is where we'd want to insert the include" Maybe it's possible to hack around 1, but 2 is still a concern. Meanwhile, bolting this onto include-fixer gets the job done. Fixes https://github.com/clangd/clangd/issues/355 Fixes https://github.com/clangd/clangd/issues/937 Differential Revision: https://reviews.llvm.org/D114667
-
Jake Egan authored
This patch removes the white space and trailing bracket to make the checks consistent and verbose direct/indirect string agnostic for AIX compatibility. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D115287
-
Jolanta Jensen authored
In the isDependence function the code does not try hard enough to determine the dependence between types. If the types are different it simply gives up, whereas in fact what we really care about are the type sizes. I've changed the code to compare sizes instead of types. Reviewed By: fhahn, sdesmalen Differential Revision: https://reviews.llvm.org/D108763
-
Pavel Labath authored
The test for this functionality was failing on the darwin bot, because the entries came out in opposite order. While this does not impact functionality, and the algorithm that produces it is technically deterministic (the nondeterminism comes from the contents of the host environment), it seems like it would be more user-friendly if the entries came out in a more predictible order. Therefore I am adding the sort call to the actual code instead of relaxing test expectations.
-
Kirill Bobyrev authored
This will allow the IncludeCleaner to suppress warnings on the lines with "IWYU pragma: keep". Clang APIs are not very convinient, so the code has to navigate around it. Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D114072
-
Matthias Springer authored
This adds a new option `dialectFilter` to BufferizationOptions. Only ops from dialects that are allow-listed in the filter are bufferized. Other ops are left unbufferized. Note: This option requires `allowUnknownOps = true`. To make use of `dialectFilter`, BufferizationOptions or BufferizationState must be passed to various helper functions. The purpose of this change is to provide a better infrastructure for partial bufferization, which will be fully activated in a subsequent change. Differential Revision: https://reviews.llvm.org/D114691
-
Jamie Schmeiser authored
Summary: The Colours array is apparently the source of TSAN errors. It is unnecessary and was there to ease readability of the code. Remove it to clean up the TSAN errors. Author: Jamie Schmeiser <schmeise@ca.ibm.com> Reviewed By: aeubanks (Arthur Eubanks) Differential Revision: https://reviews.llvm.org/D115175
-
Jake Egan authored
The `default_triple` requirement is redundant if the test specifies the triple, so this patch removes it. Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D115048
-
Haojian Wu authored
Fix the broken build.
-
Louis Dionne authored
-
Hasyimi Bahrudin authored
See D114666 for proposed code change to instsimplify. The difference between the CHECK result of these 2 tests highlights missed folds in instsimplify (e.g. (icmp eq (xor X, true), false) -> X) that are already being handled by instcombine. The tests are based on: llvm/test/Transforms/InstSimplify/icmp-bool-constant.ll Differential Revision: https://reviews.llvm.org/D115209
-
LLVM GN Syncbot authored
-
Aaron Ballman authored
-
Louis Dionne authored
In addition to being more consistent with our approach for helpers, this solves an actual issue where <cmath> was using numeric_limits but never including the <limits> header directly. In a normal setup, this is not an issue because the <math.h> header included by <cmath> does include <limits>. However, I did stumble upon some code where that didn't work, most likely because they were placing their own <math.h> header in front of ours. I didn't bother investigating further. Differential Revision: https://reviews.llvm.org/D115282
-
Jun Zhang authored
This patch implements one of the missing builtin functions specified in https://reviews.llvm.org/D111529.
-
Pavel Labath authored
Test is using "next" commands to make progress in the process. D115137 added an additional statement to the program, without adding a command to step over it. This only seemed to matter for the libc++ flavour of the test, possibly because libstdc++ list is "empty" in its uninitialized state. Since moving with step commands is a treacherous, this patch adds a run-to-breakpoint command to the test. It only does this for the affected step, but one may consider doing it elsewhere too.
-
Pavel Labath authored
Our test infrastructure does not like two tests with the same name, but it makes sense to do it regardless, as they are testing the same command.
-
Henry Linjamäki authored
This patch translates HIP kernels to SPIR-V kernels when the HIP compilation mode is targeting SPIR-S. This involves: * Setting Cuda calling convention to CC_OpenCLKernel (which maps to SPIR_KERNEL in LLVM IR later on). * Coercing pointer arguments with default address space (AS) qualifier to CrossWorkGroup AS (__global in OpenCL). HIPSPV's device code is ultimately SPIR-V for OpenCL execution environment (as starter/default) where Generic or Function (OpenCL's private) is not supported as storage class for kernel pointer types. This leaves the CrossWorkGroup to be the only reasonable choice for HIP buffers. Reviewed By: yaxunl Differential Revision: https://reviews.llvm.org/D109818
-
Pavel Labath authored
Qemu normally forwards its (host) environment variables to the emulated process. While this works fine for most variables, there are some (few, but fairly important) variables where this is not possible. LD_LIBRARY_PATH is the probably the most important of those -- we don't want the library search path for the emulated libraries to interfere with the libraries that the emulator itself needs. For this reason, qemu provides a mechanism (QEMU_SET_ENV, QEMU_UNSET_ENV) to set variables only for the emulated process. This patch makes use of that functionality to pass any user-provided variables to the emulated process. Since we're piggy-backing on the normal lldb environment-handling mechanism, all the usual mechanism to provide environment (target.env-vars setting, SBLaunchInfo, etc.) work out-of-the-box, and the only thing we need to do is to properly construct the qemu environment variables. This patch also adds a new setting -- target-env-vars, which represents environment variables which are added (on top of the host environment) to the default launch environments of all (qemu) targets. The reason for its existence is to enable the configuration (e.g., from a startup script) of the default launch environment, before any target is created. The idea is that this would contain the variables (like the aforementioned LD_LIBRARY_PATH) common to all targets being debugged on the given system. The user is, of course, free to customize the environment for a particular target in the usual manner. The reason I do not want to use/recommend the "global" version of the target.env-vars setting for this purpose is that the setting would apply to all targets, whereas the settings (their values) I have mentioned would be specific to the given platform. Differential Revision: https://reviews.llvm.org/D115246
-
Kazushi (Jam) Marukawa authored
Change to use Ctx.reportError() instead of llvm_unreachable for better error handling. Also correct evaluateAsRelocatableImpl(). Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D115251
-
Simon Pilgrim authored
-
David Spickett authored
Also add tests to check that we print the warning in the right circumstances. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D114877
-
Paul Walker authored
This patch extends the "is all active predicate" check to cover cases where the predicate is casted but in a way that doesn't change its "all active" status. Differential Revision: https://reviews.llvm.org/D115047
-
Jan Svoboda authored
This fixme first appeared in the codebase with the introduction of `ObjectMemoryBuffer` in rG93de2a12, but the constructor appears to never have been templated. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D115044
-
Jan Svoboda authored
Some command-line codegen arguments are likely to differ between identical modules discovered from different translation units. This patch removes them to make builds deterministic and/or reduce the number of built modules. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D112923
-
Hans Wennborg authored
Differential revision: https://reviews.llvm.org/D115252
-
David Green authored
After D113888 / 32b6c17b the MMO size of a masked loads/store is unknown. When we are converting back to a standard load/store because the mask is known all ones, we can refine that to the correct size from the size of the vector being loaded/stored. Differential Revision: https://reviews.llvm.org/D114582
-
Ties Stuij authored
This patch implements the following: - Emit PACBTI-M build attributes in libunwind asm files - Authenticate LR in DWARF32 using PACBTI Use Armv8.1-M.Main PACBTI extension to authenticate the return address (stored in the LR register) before moving it to the PC (IP) register. The AUTG instruction is used with the candidate return address, the CFA, and the authentication code that is retrieved from the saved pseudo-register RA_AUTH_CODE. - Authenticate LR in EHABI using PACBTI Authenticate the contents of the LR register using Armv8.1-M.Main PACBTI extension. A new frame unwinding instruction is introduced (0xb4). This instruction pops out of the stack the return address authentication code, which is then used in conjunction with the SP and the next-to-be instruction pointer to perform authentication. This authentication code is popped into a new register, UNW_ARM_PSEUDO_PAC, which is a pseudo-register. This patch is part of a series that adds support for the PACBTI-M extension of the Armv8.1-M architecture, as detailed here: https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/armv8-1-m-pointer-authentication-and-branch-target-identification-extension The PACBTI-M specification can be found in the Armv8-M Architecture Reference Manual: https://developer.arm.com/documentation/ddi0553/latest The following people contributed to this patch: - Momchil Velikov - Victor Campos - Ties Stuij Reviewed By: #libunwind, danielkiss, mstorsjo Differential Revision: https://reviews.llvm.org/D112430
-
Chuanqi Xu authored
-
Jon Chesterfield authored
This reverts commit 6de698bf. It didn't build in the dynamic_hsa configuration
-
Stephen Neuendorffer authored
Currently, it is impossible to specify a DataLayout with pointer size and index size that is not a whole number of bytes. This patch modifies the DataLayout class to accept arbitrary pointer sizes and to store the size as a number of bits, rather than as a number of bytes. Generally speaking, the external interface of the class as used by in-tree architectures remains the same and shouldn't affect the behavior of architecures with pointer sizes equal to a whole number of bytes. Note the interface of setPointerAlignment has changed and takes a pointer and index size that is a number of bits, rather than a number of bytes. Patch originally by Ajit Kumar Agarwal Differential Revision: https://reviews.llvm.org/D114141
-
Petr Hosek authored
These were removed in bda3f2dd but are needed as it turned out for the MSan tests.
-
Chuanqi Xu authored
The compiler would judge two concepts is same by their addresses. However, when we use modules, the addresses wouldn't be the same all the time since one is parsed in their TU and another is imported in another TU. This patch fixes this by using isSameEntity to judge the two concepts. Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D114769
-