- Aug 27, 2022
-
-
Amir Ayupov authored
The command to detect whether the stash is needed is `git status --porcelain` which includes untracked files by default. We want to stash untracked files as well as they may affect compilation (LLVM CMake checks that all source files should be included in CMakeLists). Update the stash command to include untracked files as well. Reviewed By: #bolt, rafauler Differential Revision: https://reviews.llvm.org/D132610
-
Julian Lettner authored
-
Lang Hames authored
This utility was a substitute for std::apply, which is now available.
-
Craig Topper authored
-
Chelsea Cassanova authored
This commit adds a new page to the LLDB HTML documentation for the LLDB fuzzers. The page primarily explains what the fuzzers are as well as how to build them, run them and investigate and reproduce bugs. Differential revision: https://reviews.llvm.org/D132148
-
Vitaly Buka authored
Depends on D132761. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D132765
-
Julian Lettner authored
Fixes this test compile error: ``` <path>/compiler-rt/test/tsan/debug_alloc_stack.cpp:54:7: error: no matching function for call to '__tsan_get_alloc_stack' __tsan_get_alloc_stack(mem, trace, num_frames, &thread_id, &thread_os_id); ^~~~~~~~~~~~~~~~~~~~~~ <path>/compiler-rt/test/tsan/debug_alloc_stack.cpp:17:16: note: candidate function not viable: no known conversion from 'uint64_t **' (aka 'unsigned long long **') to 'uint64_t *' (aka 'unsigned long long *') for 5th argument; remove & extern "C" int __tsan_get_alloc_stack(void *addr, void **trace, size_t size, ^ <path>/compiler-rt/test/tsan/debug_alloc_stack.cpp:61:46: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t *' (aka 'unsigned long long *') [-Wformat] fprintf(stderr, "thread os id = 0x%llx\n", thread_os_id); ~~~~ ^~~~~~~~~~~~ 1 warning and 1 error generated. ``` -
Julian Lettner authored
Add special Framework header search path for DriverKit.
-
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. This is the ORC runtime counterpart to f14cb494:
-
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.
-