- Aug 27, 2022
-
-
Lang Hames authored
The __orc_rt::identity utility is intended to serve as a substitute for c++20's std::identity until we can use the latter (when LLVM moves to c++20).
-
Vitaly Buka authored
If constant shadown enabled we had false reports because !isZeroValue() does not guaranty that the values is actually not zero. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D132761
-
Wei Yi Tee authored
This reverts commit 4b815eb4.
-
Nico Weber authored
Not all host compilers understand gnu:: attributes. Just remove the variable until it's used.
-
Wei Yi Tee authored
Differential Revision: https://reviews.llvm.org/D131614
-
Nico Weber authored
Xcode 13's clang has them. For the included testcase, Xcode's clang behaves like the implementation in this patch. Availability.h in the macOS 12.0 SDK (part of Xcode 13, and the current stable version of the macOS SDK) does something like: #if defined(__has_builtin) ... #if __has_builtin(__is_target_os) #if __has_builtin(__is_target_environment) #if __has_builtin(__is_target_variant_os) #if __has_builtin(__is_target_variant_environment) #if (... && ((__is_target_os(ios) && __is_target_environment(macabi)) || (__is_target_variant_os(ios) && __is_target_variant_environment(macabi)))) #define __OSX_AVAILABLE_STARTING(_osx, _ios) ... #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) ... #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) ... So if __has_builtin(__is_target_variant_os) or __has_builtin(__is_target_variant_environment) are false, these defines are not defined. Most of the time, this doesn't matter. But open-source clang currently fails to commpile a file containing only `#include <Security/cssmtype.h>` when building for catalyst by adding a `-target arm64-apple-ios13.1-macabi` triple, due to those __OSX_AVAILABLE macros not being set correctly. If a potential future SDK version were to include cssmtype.h transitively from a common header such as `<Foundation/Foundation.h>`, then it would become close to impossible to build Catalyst binaries with open-source clang. To fix this for normal catalyst builds, it's only necessary that __has_builtin() evaluates to true for these two built-ins -- the implementation of them doesn't matter. But as a courtesy, a correct (at least on the test cases I tried) implementation is provided. (This should also help people who try to build zippered code, where having the correct implementation does matter.) Differential Revision: https://reviews.llvm.org/D132754 -
Vitaly Buka authored
-
Vitaly Buka authored
-
Lang Hames authored
Reapplies f14cb494 (which was reverted in 2f08f842) with a fix for UB in the ExecutorAddr::Unwrap::Unwrap constructor (which caused failures on some bots).
-
Philip Reames authored
This change enables the use of RISCV's variable length vector registers for fixed length vectors in the IR, and implicitly enables various IR transforms which generate fixed length vectors if legal (e.g. LoopVectorize). Specifically, this enables fixed length vectors which are known to be inbounds of the underlying variable hardware size. For context, remember that the +V extension provides a minimum VLEN of 128. The embedded variants provide lower minimums. The analogy here is essentially vectorizing for SSE on a machine which may or may not include AVX2/AVX512. We won't get full utilization by default, but we will get some benefit. And of course, with an explicit mcpu we can vectorize to the exact target hardware. The LV impact is mostly related to vectorizer robustness. In cases we haven't yet fully implemented scalable vectorization support, we can fall back to fixed length vectorization. SLP has been disabled for now, even when fixed vectors are enabled. See a3106371 and associated review. There are a few addiitional code quality issues which need worked through before turning SLP on would be reasonable. Differential Revision: https://reviews.llvm.org/D131508
-
Julian Lettner authored
-
Eric Gullufsen authored
Canonicalize ``` ((x + C1) & C2) --> ((x & C2) + C1) ((x + C1) ^ C2) --> ((x ^ C2) + C1) ((x + C1) | C2) --> ((x | C2) + C1) ``` for suitable constants `C1` and `C2`. Alive2 proofs: [[ https://alive2.llvm.org/ce/z/BqMDVZ | add, or --> or, add ]] [[ https://alive2.llvm.org/ce/z/BhAeCl | add, xor --> xor, add ]] [[ https://alive2.llvm.org/ce/z/jYRHEt | add, and --> and, add ]] Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D131142
-
Philip Reames authored
This change implements a TTI query with the goal of disabling slp vectorization on RISCV. The current default configuration disables SLP already, but its current tied to the ability to lower fixed length vectors. Over in D131508, I want to enable fixed length vectors for purposes of LoopVectorizer, but preliminary analysis has revealed a couple of SLP specific issues we need to resolve before enabling it by default. This change exists to allow us to enable LV without SLP. Differential Revision: https://reviews.llvm.org/D132680
-
Abraham Corea Diaz authored
* removes unused data member `OS` from `SARIFDiagnostic` * flags `Filename` variable as currently unused This is a follow-up to D131632.
-
Lang Hames authored
This reverts commit f14cb494. Reverting while I investigate bot failures, e.g. https://lab.llvm.org/buildbot#builders/117/builds/8701
-
Vitaly Buka authored
-
River Riddle authored
After this commit we will have an efficient bytecode representation for all of the builtin types. Differential Revision: https://reviews.llvm.org/D132604
-
River Riddle authored
Group the readers and writers for individual attributes/types together, which makes the encoding more readable. Differential Revision: https://reviews.llvm.org/D132583
-
River Riddle authored
This provides a significantly more efficient encoding for locations. Differential Revision: https://reviews.llvm.org/D132540
-
River Riddle authored
This adds support for the non-location, non-elements, non-affine builtin attributes. Differential Revision: https://reviews.llvm.org/D132539
-
Joseph Huber authored
Summary: A previous patch removed the use of the `OK` private variable in CUDA which resulted in usused variable warnings. this was fixed in f886f7e8 but did not change the constructor to accurately represent its removal. This patch removes it from the interface entirely.
-
Paul Kirth authored
Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D131236
-
Paul Kirth authored
MisExpect was occasionally crashing under SampleProfiling, due to a division by zero. We worked around that in D124302 by changing the assert to an early return. This patch is intended to add a test case for the crashing scenario and re-enable MisExpect for SampleProfiling. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D124481
-
Aart Bik authored
Rationale: We were running *all* conversion tests two times, just to check the difference of one indidivual test in that file. By splitting that test out, we have a much more focused testing setup. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D132757
-
Nikolas Klauser authored
This patch simplifies the implementation of `deque` by removing the `__deque_base` class which results in a lot less indirections and removes the need for `__base::`. Reviewed By: ldionne, #libc Spies: AdvenamTacet, libcxx-commits Differential Revision: https://reviews.llvm.org/D132081
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc, huixie90 Spies: huixie90, libcxx-commits, arphaman Differential Revision: https://reviews.llvm.org/D131856
-
ziqingluo-90 authored
[clang-tidy] Adding the missing handling of "noreturn" attributes for Obj-C nodes in `InfiniteLoopChecker` With this commit, the `InfiniteLoopChecker` now recognizes message expressions to "noreturn" methods as well as calls to "noreturn" blocks. Reviewed by NoQ, njames93 Differential Revision: https://reviews.llvm.org/D128314
-
Sterling Augustine authored
-
Sterling Augustine authored
-
Florian Hahn authored
The simpler diff-checks require pointers with add-recs from the same innermost loop, but this property wasn't check completely. Add the missing check to ensure both addrecs are in the innermost loop. Fixes #57315.
-
Lang Hames authored
The wrap/unwrap operations are applied to pointers after/before conversion to/from raw addresses. They can be used to tag, untag, sign, or strip signing from pointers. They currently default to 'rawPtr' (identity) on all platforms, but it is expected that the default will be set based on the host architecture, e.g. they would default to signing/stripping for arm64e.
-
Peter Klausler authored
Unformatted I/O with byte swapping was reversing bytes in badly-sized frames for character, complex, and some default derived type transfers. Differential Revision: https://reviews.llvm.org/D132751
-
Siva Chandra Reddy authored
Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D132705
-
LLVM GN Syncbot authored
-
ziqingluo-90 authored
leaking in ARC mode When ARC (automatic reference count) is enabled, (objective-c) block objects are automatically retained and released thus they do not leak. Without ARC, they still can leak from an expiring stack frame like other stack variables. With this commit, the static analyzer now puts a block object in an "unknown" region if ARC is enabled because it is up to the implementation to choose whether to put the object on stack initially (then move to heap when needed) or in heap directly under ARC. Therefore, the `StackAddrEscapeChecker` has no need to know specifically about ARC at all and it will not report errors on objects in "unknown" regions. Reviewed By: NoQ (Artem Dergachev) Differential Revision: https://reviews.llvm.org/D131009
-
Siva Chandra Reddy authored
Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D132721
-
Nico Weber authored
-
Benjamin Kramer authored
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D132692
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D132675
-