- Aug 10, 2021
-
-
Dmitry Vyukov authored
First, the define conflicts with definition/testing of all mappings, since it's not a global property anymore. Second, macros/ifdefs are bad. Define kMidAppMemBeg/End to 0 to denote that there is no "mid" range instead. Depends on D107736. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107737
-
Dmitry Vyukov authored
Add FALLTHROUGH portably defined to [[clang::fallthrough]]. We have -Wimplicit-fallthrough already enabled, and currently it's not possible to fix the warning. Depends on D107735. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107736
-
Dmitry Vyukov authored
Currently we have mapping selection duplicated 9 times. Deduplicate it. No functional changes. Depends on D107734. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107735
-
Dmitry Vyukov authored
Currently we define/compile the mapping for a platform only on that platform. This makes it impossible to unit-test them on a single platform, and even to build test. We have 17 of them and the Go mappings will be tested only after a manual episodic update of the Go runtime. Define all mappings always with unique names. This will allow to unit-test them. No functional changes. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107734
-
Dmitry Vyukov authored
There were 2 issues reported on https://reviews.llvm.org/D105716: 1. FreeBSD phtread.h is annotated with thread-safety attributes and this causes errors in gtest headers. 2. If sanitizers are compiled with an older versions of clang (which supports the annotations, but has some false positives in analysis not present in later versions of clang), compilation fails with errors. Switch the errors to warnings by default. Some CI bots enable COMPILER_RT_ENABLE_WERROR, which should turn these warnings back into errors. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D107826
-
Dmitry Vyukov authored
After switching tsan from the old mutex to the new sanitizer_common mutex, we've observed a significant degradation of performance on a test. The test effectively stresses a lock-free stack with 4 threads with a mix of atomic_compare_exchange and atomic_load operations. The former takes write lock, while the latter takes read lock. It turned out the new mutex performs worse because readers don't use active spinning, which results in significant amount of thread blocking/unblocking. The old tsan mutex used active spinning for both writers and readers. Add active spinning for readers. Don't hand off the mutex to readers, and instread make them compete for the mutex after wake up again. This makes readers and writers almost symmetric. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107824
-
Matt Arsenault authored
-
Saleem Abdulrasool authored
Add missing break statements identified by static analysis tools. Patch by Andrii Kurdiumov! Reviewed By: compnerd, danielkiss Differential Revision: https://reviews.llvm.org/D107537
-
Leonard Chan authored
This is a reland of commit a9d19703. Differential Revision: https://reviews.llvm.org/D99364
-
Jinsong Ji authored
We may call lowerRelativeReference in MC to determine whether target supports this lowering. We should return nullptr instead of crashing when we haven't implemented the real lowering. Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D107830
-
Peter Steinfeld authored
When the upper bound is less than the lower bound, the extent is zero. This is specified in section 8.5.8.2, paragraph 3. Note that similar problems exist in the lowering code. This change only fixes the problem for the front end. I also added a test. Differential Revision: https://reviews.llvm.org/D107832
-
Matt Arsenault authored
The requested register class priorities weren't respected globally. Not sure why this is a target option, and not just the expected behavior (recently added in 1a6dc92b). This avoids an allocation failure when many wide tuple spills are introduced. I think this is a workaround since I would not expect the allocation priority to be required, and only a performance hint. The allocator should be smarter about when only a subregister needs to be spilled and restored. This does regress a couple of degenerate store stress lit tests which shouldn't be too important.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Jake Egan authored
%%% This patch defines the macro __HOS_AIX__ when the target is AIX and without any dependency on the host. The macro indicates that the host is AIX. Defining the macro will help minimize porting pain for existing code compiled with xlc/xlC. xlC never shipped cross-compiling support, so the difference is not observable anyway. %%% This is a follow up to the discussion in https://reviews.llvm.org/D107242. Reviewed By: cebowleratibm, joerg Differential Revision: https://reviews.llvm.org/D107825
-
Mark de Wever authored
All supported compilers should support _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED so this can be removed. Reviewed By: ldionne, #libc, Quuxplusone Differential Revision: https://reviews.llvm.org/D107239
-
Paul Robinson authored
-
George Rokos authored
Removed redundant assignment from condition which causes gcc to emit the following error: error: operation on ‘MoveData’ may be undefined [-Werror=sequence-point]
-
Tom Lokovic authored
abseil-string-find-str-contains should not propose an edit for the three-parameter version of find(). std::string, std::string_view, and absl::string_view all have a three-parameter version of find() which has a "count" (or "n") paremeter limiting the size of the substring to search. We don't want to propose changing to absl::StrContains in those cases. This change fixes that and adds unit tests to confirm. Reviewed By: ymandel Differential Revision: https://reviews.llvm.org/D107837
-
Joel E. Denny authored
targetDataEnd and targetDataBegin compute CopyMember/copy differently, and I don't see why they should. This patch eliminates one of those differences by making a simplifying NFC change to targetDataEnd. The change is NFC as follows. The change only affects the case when `!UNIFIED_SHARED_MEMORY || HasCloseModifier`. In that case, the following points are always true: * The value of CopyMember is relevant later only if DelEntry = false. * DelEntry = false only if one of the following is true: * IsLast = false. In this case, it's always true that CopyMember = false = IsLast. * `MEMBER_OF && !PTR_AND_OBJ` is true. In this case, CopyMember = IsLast. * Thus, if CopyMember is relevant, CopyMember = IsLast. Reviewed By: grokos Differential Revision: https://reviews.llvm.org/D105990
-
Denys Petrov authored
-
Denys Petrov authored
Summary: Move the test case to existing test file. Remove test file as duplicated. The file was mistakenly added due to concerns of a hidden bug (see https://reviews.llvm.org/D104381). After it turned out, that the bug was already fixed with another revision (https://reviews.llvm.org/D85817) and corresponding test was added as well, we can remove this file. Differential Revision: https://reviews.llvm.org/D106152
-
Denys Petrov authored
-
Craig Topper authored
Similar for sub except sub isn't commutative. Modify the existing and/or/xor folds to also work on ISD::SELECT and not just RISCVISD::SELECT_CC. This is needed to make sure we do this transform before type legalization turns i32 add/sub into add/sub+sign_extend_inreg on RV64. If we don't do this before that, the sign_extend_inreg will still be after the select. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D107603
-
Louis Dionne authored
-
Alex Orlov authored
This patch implements paper P0692R1 from the C++20 standard. Disable usual access checking rules to template argument names in a declaration of partial specializations, explicit instantiation or explicit specialization (C++20 13.7.5/10, 13.9.1/6). Fixes: https://llvm.org/PR37424 This patch also implements option *A* from this paper P0692R1 from the C++20 standard. This patch follows the @rsmith suggestion from D78404. Reviewed By: krisb Differential Revision: https://reviews.llvm.org/D92024
-
Sanjay Patel authored
This is already done within InstCombine: https://alive2.llvm.org/ce/z/MiGE22 ...but leaving it out of analysis makes it harder to avoid infinite loops there.
-
Sanjay Patel authored
This reverts commit f43859b4. This is not NFC, so I'll try again without that mistake in the commit message.
-
Sanjay Patel authored
This is already done within InstCombine: https://alive2.llvm.org/ce/z/MiGE22 ...but leaving it out of analysis makes it harder to avoid infinite loops there.
-
Sanjay Patel authored
-
Dmitry Vyukov authored
tsan in some cases (e.g. after fork from multithreaded program, which arguably is problematic) increments ignore_interceptors and in that case runs just the intercepted functions and not their wrappers. For realpath the interceptor handles the resolved_path == nullptr case though and so when ignore_interceptors is non-zero, realpath (".", nullptr) will fail instead of succeeding. This patch uses instead the COMMON_INTERCEPT_FUNCTION_GLIBC_VER_MIN macro to use realpath@@GLIBC_2.3 whenever possible (if not, then it is likely a glibc architecture with more recent oldest symbol version than 2.3, for which any realpath in glibc will DTRT, or unsupported glibc older than 2.3), which never supported NULL as second argument. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D107819
-
Kazu Hirata authored
The last use was removed on Oct 28, 2013 in commit 48cbda58.
-
Raphael Isemann authored
-
Raphael Isemann authored
-
Thomas Preud'homme authored
Explicitely set x86_64-linux-gnu as a target for asan-use-callbacks clang test since some target do not support -fsanitize=address (e.g. i386-pc-openbsd). Also remove redundant -fsanitize=address and move -emit-llvm right after -S. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D107633
-
David Sherwood authored
I have added RUN lines to both: Transforms/LoopVectorize/AArch64/strict-fadd.ll Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll to show the default behaviour is to not vectorise when the following flag is unset: -force-ordered-reductions
-
Brian Cain authored
-
Florian Mayer authored
This reverts commit ba06ac8b.
-
Sam McCall authored
Before this patch, CXXCtorInitializers that don't typecheck get discarded in most cases. In particular: - typos that can't be corrected don't turn into RecoveryExpr. The full expr disappears instead, and without an init expr we discard the node. - initializers that fail initialization (e.g. constructor overload resolution) are discarded too. This patch addresses both these issues (a bit clunkily and repetitively, for member/base/delegating initializers) It does not preserve any AST nodes when the member/base can't be resolved or other problems of that nature. That breaks invariants of CXXCtorInitializer itself, and we don't have a "weak" RecoveryCtorInitializer like we do for Expr. I believe the changes to diagnostics in existing tests are improvements. (We're able to do some analysis on the non-broken parts of the initializer) Differential Revision: https://reviews.llvm.org/D101641
-
Sam McCall authored
Similar to ad2d6bbb Differential Revision: https://reviews.llvm.org/D107693
-