- Jan 11, 2022
-
-
Tyler Augustine authored
When the unroll factor is 1, we should only fail "unrolling" when the trip count also is determined to be 1 and it is unable to be promoted. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D115365
-
Nikolas Klauser authored
Use `_LIBCPP_DEBUG_ASSERT` in `<list>` Reviewed By: Quuxplusone, ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D116938
-
Jon Chesterfield authored
Some types need to be 64 bit. Unsigned long is a hazard there. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D116963
-
Casey Carter authored
... by examining `_MSVC_EXECUTION_CHARACTER_SET` in the force-include header. Differential Revision: https://reviews.llvm.org/D116883
-
Nadav Rotem authored
This commit fixes a missed opportunity in merging consecutive stores. The code that searches for stores skipped the case of stores that directly connect to the root. The comment above the implementation lists this case but the code did not handle it. I found this pattern when looking into the shared_ptr destructor. GCC generates the right sequence. Here is a small repo: int foo(int* buff) { buff[0] = 0; int x = buff[1]; buff[1] = 0; return x; } Differential Revision: https://reviews.llvm.org/D116895 -
Jonas Devlieghere authored
Fix the module build after 2c0fb962
-
John Ericson authored
@phosek mentioned others might want it reST for consistency. As I personally do not like Markdown at all and just did the "usual GitHub read-me thing" out of habit, I am more than happy to oblige. Also fix the typos found in the original. Reviewed By: phosek, lebedev.ri Differential Revision: https://reviews.llvm.org/D116524
-
Louis Dionne authored
That will make it easier to change the behavior of the arc4random() based implementation. Note that in particular, the eval.pass.cpp test used to work with non "/dev/random" based implementations because we'd throw an exception upon constructing the random_device. This patch makes the intent of the test clearer.
-
John Ericson authored
This is created on analogy with the other CACHE PATHs in this package, and other `*_INSTALL_INCLUDE_DIR` in other packages. The branching is adjusted to deduplicate some existing code, and likewise avoid having to define this new variable more than once. This will be used for D99484. Reviewed By: #libunwind, compnerd Differential Revision: https://reviews.llvm.org/D116873
-
Arthur O'Dwyer authored
The NFC part of D116809. We still want to enforce this in CI, but the mechanism for that is still to-be-determined. Differential Revision: https://reviews.llvm.org/D116809
-
Roland McGrath authored
Use the zx_clock_get_monotonic system call directly rather than going through the POSIX clock_gettime function. The libc function is a trivial wrapper around the system call, and is not a standard C function. Avoiding it reduces the Fuchsia libc ABI surface that libc++ depends on. Reviewed By: phosek, ldionne, #libc Differential Revision: https://reviews.llvm.org/D116606
-
Arthur O'Dwyer authored
The NFC part of D116958. We still want to enforce this in CI, but the mechanism for that is still to-be-determined.
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
-
Mircea Trofin authored
This patch simplifies the interface between RAGreedy and the eviction adviser by passing the allocator to the adviser, which allows the latter to extract needed information as needed, rather than requiring it be passed piecemeal at construction time (which would also complicate later evolution). Part of this, the patch also moves ExtraRegInfo back to RAGreedy. We keep the encapsulation of ExtraRegInfo because it has benefits (e.g. improved readability by abstracting access to the cascade info) and also simpler re-initialization at regalloc pass re-entry time (we just flush the Optional). Differential Revision: https://reviews.llvm.org/D116669
-
Peter Steinfeld authored
I recently had an email exchange on flang-dev that revealed that the documentation on how to build flang is incorrect. This update fixes that. Differential Revision: https://reviews.llvm.org/D116566
-
Jonas Devlieghere authored
-
Julian Lettner authored
rdar://86776155
-
Stanislav Gatev authored
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev. Differential Revision: https://reviews.llvm.org/D116596
-
Alex Xu (Hello71) authored
This code is intended to give a special exception for platforms which set errno in some math functions but not fma. This does not apply to Android, which does not set errno in any math functions (https://cs.android.com/android/platform/superproject/+/master:bionic/libc/include/math.h;drc=master;l=59). The correct implementation for Android is to set -fno-math-errno by default, which was done in https://reviews.llvm.org/D51068. Therefore, this special exception is no longer needed for Android. Deleting it slightly reduces code complexity, clang executable size, compile time, and test time. This reverts fbfba29d. Reviewed By: pirama Differential Revision: https://reviews.llvm.org/D116755
-
Matt Arsenault authored
We were trying to guess at the original IR type for image intrinsics after legalization to figure out if they were d16, but this didn't work. Explicitly track if this is a d16 operation or not in the opcode, as is done for the buffer intrinsics. The OpenCL library is using f32 image writes with a dmask of 15 for some reason, and this was incorrectly switching them to use d16. Fixes image failures in the OpenCL conformance test. The equivalent dmask for loads doesn't even select in either selector.
-
Alexander Shaposhnikov authored
This diff enables users to override CMAKE_C_ARCHIVE_CREATE & CMAKE_CXX_ARCHIVE_CREATE (currently set in HandleLLVMOptions.cmake). For example, one can specify cmake -DCMAKE_C_ARCHIVE_CREATE="<CMAKE_AR> TDqc <TARGET> <LINK_FLAGS> <OBJECTS>" \ -DCMAKE_CXX_ARCHIVE_CREATE="<CMAKE_AR> TDqc <TARGET> <LINK_FLAGS> <OBJECTS>" ... to make the build create thin archives instead of regular ones. For a clean run `ninja lld` using thin archives seems to reduce the size of the build directory from ~14GB to ~8GB Differential revision: https://reviews.llvm.org/D116850 -
Matt Arsenault authored
Fixes crash in assertion about dropping debug info.
-
Logan Smith authored
This behavior was fixed for regular identifiers in 9f3edc32, but the same fix was not applied to macro fixits. This addresses https://github.com/llvm/llvm-project/issues/52895. Differential Revision: https://reviews.llvm.org/D116824
-
Matt Arsenault authored
If we know the source is a valid object, we do not need to insert a null check. This misses a lot of opportunities from metadata/attributes not tracked in codegen.
-
Ivan Butygin authored
Differential Revision: https://reviews.llvm.org/D116951
-
Stella Stamenova authored
This tests have recently become flaky (flakier?) causing occasional failures in the windows lldb buildbot
-
Jean Perier authored
Currently, something like `print *, size(foo(n,m))` was rewritten to `print *, size(foo_result_symbol)` when foo result is a non constant shape array. This cannot be processed by lowering or reprocessed by a Fortran compiler since the syntax is wrong (`foo_result_symbol` is unknown on the caller side) and the arguments are lost when they might be required to compute the result shape. It is not possible (and probably not desired) to make GetShape fail in general in such case since returning nullopt seems only expected for scalars or assumed rank (see GetRank usage in lib/Semantics/check-call.cpp), and returning a vector with nullopt extent may trigger some checks to believe they are facing an assumed size (like here in intrinsic argument checks: https://github.com/llvm/llvm-project/blob/196204c72c68a577c72af95d70f18e3550939a5e/flang/lib/Evaluate/intrinsics.cpp#L1530). Hence, I went for a solution that limits the rewrite change to folding (wh...
-
Fangrui Song authored
We only support both TLSDESC and TLS GD for x86 so this is an x86-specific problem. If both are used, only one R_X86_64_TLSDESC is produced and TLS GD accesses will incorrectly reference R_X86_64_TLSDESC. Fix this by introducing SymbolAux::tlsDescIdx. Reviewed By: ikudrin Differential Revision: https://reviews.llvm.org/D116900
-
Roman Lebedev authored
As discussed in https://github.com/llvm/llvm-project/issues/53020 / https://reviews.llvm.org/D116692, SCEV is forbidden from reasoning about 'backedge taken count' if the branch condition is a poison-safe logical operation, which is conservatively correct, but is severely limiting. Instead, we should have a way to express those poison blocking properties in SCEV expressions. The proposed semantics is: ``` Sequential/in-order min/max SCEV expressions are non-commutative variants of commutative min/max SCEV expressions. If none of their operands are poison, then they are functionally equivalent, otherwise, if the operand that represents the saturation point* of given expression, comes before the first poison operand, then the whole expression is not poison, but is said saturation point. ``` * saturation point - the maximal/minimal possible integer value for the given type The lowering is straight-forward: ``` compare each operand to the saturation point, perfo...
-
Arthur O'Dwyer authored
Before this patch, the user needed to specialize both of `is_placeholder<MyType>` and `is_placeholder<const MyType>`. After this patch, only the former is needed (although the latter is harmless if provided). The new tests don't actually fail unless return type deduction is used, which is a C++14 feature. Specializing `is_placeholder` is still allowed in C++11, though. Fixes #51095. Differential Revision: https://reviews.llvm.org/D116388
-
Philip Reames authored
-
David Goldman authored
Clang will now search through the framework includes to identify the framework include path to a file, and then suggest a framework style include spelling for the file. Differential Revision: https://reviews.llvm.org/D115183
-
Kazu Hirata authored
This reverts commit 80e2c587. The original patch causes a lot of warnings on gcc like: llvm-project/clang/include/clang/Basic/Diagnostic.h:1329:3: warning: base class ‘class clang::StreamingDiagnostic’ should be explicitly initialized in the copy constructor [-Wextra]
-
Bryce Wilson authored
(Split from original patch to separate non-NFC part and add coverage. I typoed when adding the new test, so this change includes the typo fix to let libfunc recongize the signature. Didn't figure it was worth another separate commit.) Differential Revision: https://reviews.llvm.org/D116851 (part 2 of 2)
-
Bryce Wilson authored
There are a few places where the alignment argument for AlignedAllocLike functions was previously hardcoded. This patch adds an getAllocAlignment function and a change to the MemoryBuiltin table to allow alignment arguments to be found generically. This will shortly allow alignment inference on operator new's with align_val params and an extension to Attributor's HeapToStack. The former will follow shortly - I split Bryce's patch for purpose of having the large change be NFC. The later will be reviewed separately. Differential Revision: https://reviews.llvm.org/D116851 (part 1 of 2)
-
Craig Topper authored
These tests are interested in the FP instructions being used, not the conversions needed to pass the arguments/returns in GPRs. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D116869
-
Simon Pilgrim authored
Match cttz/ctlz handling by assuming C1 == 0 if C1 != 1 - I've added an assertion as well. Fixes static analyzer nullptr dereference warnings.
-
Nico Weber authored
This reverts commit 37ec65e1. Its prerequisite 55d96ac3 wsa reverted in c2293bc1. c2293bc1's patch description claimed that it reverted 37ec65 as well, but it apparently didn't. See https://reviews.llvm.org/D116921#3231802
-
William S. Moses authored
Given a select whose result is an i1, we can eliminate the conditional in the select completely by adding a few arithmetic operations. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D116839
-