- Feb 22, 2022
-
-
tyb0807 authored
Summary: This patch adds checks that were missing in clang for Armv8.5/6/7-A. These include: * ACLE macro defines for AArch32. * Handling of crypto and SM4, SHA and AES feature flags on clang's driver. Reviewers: dmgreen, SjoerdMeijer, tmatheson Differential Revision: https://reviews.llvm.org/D116153
-
Nikita Popov authored
Constants cannot be cyclic, but they can be tree-like. Keep a visited set to ensure we do not degenerate to exponential run-time. This fixes the problem reported in https://reviews.llvm.org/D117223#3335482, though I haven't been able to construct a concise test case for the issue. This requires a combination of dead constants and the kind of constant expression tree that textual IR cannot represent (because the textual representation, unlike the in-memory representation, is also exponential in size).
-
Sam McCall authored
Differential Revision: https://reviews.llvm.org/D120282
-
Matthias Springer authored
-
Matthias Springer authored
The related functionality is moved over to the bufferization dialect. Test cases are cleaned up a bit. Differential Revision: https://reviews.llvm.org/D120191
-
jacquesguan authored
Add patterns for vector widening integer reduction instructions. Differential Revision: https://reviews.llvm.org/D117643
-
Brad Smith authored
-
Brad Smith authored
-
owenca authored
Adds a new option InsertBraces to insert the optional braces after if, else, for, while, and do in C++. Differential Revision: https://reviews.llvm.org/D120217
-
Brad Smith authored
-
Tanya Lattner authored
-
Shafik Yaghmour authored
GDBRemoteCommunicationServerCommon.h includes itself, removing this include. Differential Revision: https://reviews.llvm.org/D120105
-
Joseph Huber authored
We use offloading sections in the new Clang driver scheme to embed device code into the host. We later use these sections to link the device image, after which point they are completely unused and should not be loaded into memory if they are still in the executable. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D120275
-
Lian Wang authored
RV32/RV64: zip.n/zip2.b/zip.b/zip4.h/zip2.h/zip.h unzip.n/unzip2.b/unzip.b/unzip4.h/unzip2.h/unzip.h Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D120241
-
Jessica Paquette authored
We found a case in the Swift benchmarks where the MachineOutliner introduces about a 20% compile time overhead in comparison to building without the MachineOutliner. The origin of this slowdown is that the benchmark has long blocks which incur lots of LRU checks for lots of candidates. Imagine a case like this: ``` bb: i1 i2 i3 ... i123456 ``` Now imagine that all of the outlining candidates appear early in the block, and that something like, say, NZCV is defined at the end of the block. The outliner has to check liveness for certain registers across all candidates, because outlining from areas where those registers are used is unsafe at call boundaries. This is fairly wasteful because in the previously-described case, the outlining candidates will never appear in an area where those registers are live. To avoid this, precalculate areas where we will consider outlining from. Anything outside of these areas is mapped to illegal and not included in the outlining search space. This allows us to reduce the size of the outliner's suffix tree as well, giving us a potential memory win. By precalculating areas, we can also optimize other checks too, like whether or not LR is live across an outlining candidate. Doing all of this is about a 16% compile time improvement on the case. This is likely useful for other targets (e.g. ARM + RISCV) as well, but for now, this only implements the AArch64 path. The original "is the MBB safe" method still works as before.
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D120268
-
Zakk Chen authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D120250
-
Michael Gottesman authored
Otherwise this is can be sensitive in the face of changes in register names. I also gardened the test case a little to make it look a little nicer. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D120276
-
Vang Thao authored
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
Reviewed By: Quuxplusone, #libc Spies: libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D119763
-
Nikolas Klauser authored
[libc++] Replace [[no_unique_addredd]] with _LIBCPP_NO_UNIQUE_ADDRESS in __algorithm/min_max_result.h
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
Reviewed By: Quuxplusone, #libc Spies: libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D119751
-
Sanjay Patel authored
-
Petr Hosek authored
We don't need these in the first stage compiler and disabling these helps a bit with the compile time and runtime performance. Differential Revision: https://reviews.llvm.org/D120280
-
Groverkss authored
This patch adds a class to represent a relation in Presburger Library. This patch only adds the skeleton class. Functionality from IntegerPolyhedron will be moved to IntegerRelation in later patches to make it easier to review. This patch is a part of a series of patches adding support for relations in Presburger Library. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D120156
-
Martin Storsjö authored
Windows uses U+00A0 NO-BREAK SPACE as thousands separator in the fr_FR locale. Differential Revision: https://reviews.llvm.org/D120090
-
Martin Storsjö authored
For grouping strings, "\3" and "\3\3" are equivalent. Differential Revision: https://reviews.llvm.org/D120091
-
Arjun P authored
Note: this does not yet support PrebsurgerSets. Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D120239
-
Paweł Bylica authored
Pre-commit for https://reviews.llvm.org/D118362.
-
George Koehler authored
https://reviews.llvm.org/D91906 did most of the work necessary to fix libunwind on 32-bit PowerPC processors without AltiVec, but there was one more piece necessary. Reviewed By: luporl Differential Revision: https://reviews.llvm.org/D120197
-
Alexey Bataev authored
We need to capture the local variables into a record in task untied regions but clang does not support record with VLA data members. Differential Revision: https://reviews.llvm.org/D99436
-
Craig Topper authored
Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D120167
-
Kristof Beyls authored
Differential Revision: https://reviews.llvm.org/D120036
-
Shilei Tian authored
This patch adds Sema support for `atomic compare capture`. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D120200
-
Casey Carter authored
Fixup tests that believe them to be so. Most notably including some heavy refactoring in `std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp`, which now detects pointers and validates that `iterator_concept` is present only for pointers. Differential Revision: https://reviews.llvm.org/D117368
-
Nico Weber authored
This reverts commit 52577cd2. Breaks check-llvm, see comments on https://reviews.llvm.org/D120207
-
Benjamin Kramer authored
-
Florian Hahn authored
Currently writtenBetween can miss clobbers of Loc between End and Start, if End is a MemoryUse. To guarantee we see all write clobbers of Loc between Start and End for MemoryUses, restrict to Start and End being in the same block and check all accesses between them. This fixes 2 mis-compiles illustrated in llvm/test/Transforms/MemCpyOpt/memcpy-byval-forwarding-clobbers.ll Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D119929
-