- Mar 16, 2022
-
-
Valentin Clement authored
Thsi patch add the infrastructure to lower the random related intrinsics: - `random_init` - `random_number` - `random_seed` This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld, schweitz Differential Revision: https://reviews.llvm.org/D121704 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Tavian Barnes authored
When regcomp() fails, the same regex_t* should be passed to regerror() for potentially better error messages. But doing that with msan would report a use-of-uninitialized-value. Fixes https://github.com/google/sanitizers/issues/1496 Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D120591
-
Valentin Clement authored
This patch adds lowering for the following intrinsics: - `max` - `maxloc` - `maxval` - `minloc` - `minval` This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121701 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
mleair <leairmark@gmail.com>
-
Matthias Braun authored
Optimize a pattern where a sequence of 8/16 or 32 bits is tested for zero: LLVM normalizes this towards and `AND` with mask which is usually good, but does not work well on X86 when the mask does not fit into a 64bit register. This DagToDAG peephole transforms sequences like: ``` movabsq $562941363486720, %rax # imm = 0x1FFFE00000000 testq %rax, %rdi ``` to ``` shrq $33, %rdi testw %di, %di ``` The result has a shorter encoding and saves a register if the tested value isn't used otherwise. Differential Revision: https://reviews.llvm.org/D121320
-
Matthias Braun authored
Differential Revision: https://reviews.llvm.org/D121319
-
Louis Dionne authored
This should make CI consistent on all the compilers we support. Most of this patch is working around various warnings emitted by GCC in our code base, which are now being shown when we compile the tests. After this patch, the whole test suite should be warning free on all compilers we support and test, except for a few warnings on GCC that we silence explicitly until we figure out the proper fix for them. Differential Revision: https://reviews.llvm.org/D120684
-
Valentin Clement authored
This patch adds lowering for the following character related intrinsics: - `len` - `len_trim` - `lge`, `lgt`, `lle` and `llt` This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121703 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Sam McCall authored
This replaces a bunch of duplicate logic to set up environment variables and a few substitutions. It does a little more than we were doing previously: - searching for clang and setting up substitutions for it - setting up some substitutions for target triples, which are potentially useful but not actually used clangd has been happily using this for its tests for a while. Differential Revision: https://reviews.llvm.org/D121422
-
Valentin Clement authored
This patch adds lowering for the `allocated` intrinsic. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121702 Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Aleksandr Platonov authored
-
Sam McCall authored
A version of this logic appears in ~every lit.site.cfg.in (28 copies total). This patch just removes two, but I'll update the rest of llvm-project next. Differential Revision: https://reviews.llvm.org/D121427
-
Zequan Wu authored
`UdtRecordCompleter` shouldn't complete static members' types. static members' types are going to be completed when the types are called in `SymbolFile::CompleteType`. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D121030
-
Valentin Clement authored
This patch adds the lowering infrastructure for the lowering of alternat returns. This patch is part of the upstreaming effort from fir-dev branch. Depends on D121698 Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121699 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Valentin Clement authored
This patch add the lowering for the entry statement. This patch is part of the upstreaming effort from fir-dev branch. Depends on D121697 Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121698 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Valentin Clement authored
This patch lowers more cases of pointer assignments and disassociations. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld, schweitz Differential Revision: https://reviews.llvm.org/D121697 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
mleair <leairmark@gmail.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Keith Smiley authored
This fixes a bug that happens when using -fdebug-prefix-map to remap an absolute path to a relative path. Since the path was absolute before remapping, it is safe to assume that concatenating the remapped working directory would be wrong. This was originally submitted as https://reviews.llvm.org/D113718, but reverted because when testing with dwarf 5 enabled, the tests were too strict. Differential Revision: https://reviews.llvm.org/D121663
-
Björn Schäpers authored
Fixes https://github.com/llvm/llvm-project/issues/54367 Fixes https://github.com/llvm/llvm-project/issues/54368 Differential Revision: https://reviews.llvm.org/D121596
-
Louis Dionne authored
Back in 3a208c68, we implemented the range-based constructor for <span>. However, in doing so, we removed a previous non-standard constructor that we provided before shipping <ranges>. Unfortunately, that breaks code that was relying on a range-based constructor until we ship all of <ranges>. This patch reintroduces the old non-conforming constructors and tests that were removed in 3a208c68 and uses them whenever <ranges> is not provided (e.g. in LLVM 14). This is only a temporary workaround until we enable <ranges> by default in C++20, which should hopefully happen by LLVM 15. The goal is to cherry-pick this workaround back to the LLVM 14 release branch, since I suspect the constructor removal may otherwise cause breakage out there, like the breakage I saw internally. We could have avoided this situation by waiting for C++20 to be finalized before shipping std::span. For example, we could have guarded it with something like _LIBCPP_HAS_NO_INCOMPLETE_RANGES to prevent users from accidentally starting to depend on it before it is stable. We did not have these mechanisms when std::span was first implemented, though. Differential Revision: https://reviews.llvm.org/D121626
-
Vitaly Buka authored
If sanitizer cannot determine name of the module it will use "<unknown module>". Then it can be suppressed if needed. Reviewed By: kda Differential Revision: https://reviews.llvm.org/D121674
-
Louis Dionne authored
-
Roy Jacobson authored
function candidates See: https://github.com/llvm/llvm-project/issues/54379 I tried to see if I can reuse ResolveAddressOfOverloadedFunction for explicit function instantiation and so I managed to hit this ICE. Bug was the diagnostic required an argument (%0) and specific code path didn't pass an argument. Differential Revision: https://reviews.llvm.org/D121646
-
Sterling Augustine authored
Differential Revision: https://reviews.llvm.org/D121732
-
Jonas Devlieghere authored
Add synchronization to the IOHandler to prevent multiple threads from writing concurrently to the output or error stream. A scenario where this could happen is when a thread (the default event thread for example) is using the debugger's asynchronous stream. We would delegate this operation to the IOHandler which might be running on another thread. Until this patch there was nothing to synchronize the two at the IOHandler level. Differential revision: https://reviews.llvm.org/D121500
-
Maksim Panchenko authored
Reviewed By: yota9 Differential Revision: https://reviews.llvm.org/D121729
-
Florian Hahn authored
Update FunctionAttrs to use FunctionModRefBehavior instead MemoryAccessKind. This allows for adding support for inferring argmemonly and others, see D121415. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D121460
-
Aleksandr Platonov authored
GCC supports: - `namespace <gnu attributes> identifier` - `namespace identifier <gnu attributes>` But clang supports only `namespace identifier <gnu attributes>` and diagnostics for `namespace <gnu attributes> identifier` case looks unclear: Code: ``` namespace __attribute__((visibility("hidden"))) A { } ``` Diags: ``` test.cpp:1:49: error: expected identifier or '{' namespace __attribute__((visibility("hidden"))) A ^ test.cpp:1:49: error: C++ requires a type specifier for all declarations test.cpp:3:2: error: expected ';' after top level declarator } ``` This patch adds support for `namespace <gnu attributes> identifier` and also forbids gnu attributes for nested namespaces (this already done for C++ attributes). Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D121245 -
Jake Egan authored
This patch follows the same reasoning as D114481. The PCH reader looks for `__clangast` section in the precompiled module file, which is not present in the file on AIX and not supported in XCOFF yet. Reviewed By: daltenty Differential Revision: https://reviews.llvm.org/D121709
-
Vladislav Khmelevsky authored
The cold text section alignment is set using the maximum alignment value passed to the emitCodeAlignment. In order to calculate tentetive layout right we will set the minimum alignment of such sections to the maximum possible function alignment explicitly. Differential Revision: https://reviews.llvm.org/D121392
-
Stefan Pintilie authored
Add the calling convention for the vector pair registers. These registers overlap with the vector registers. Part of an original patch by: Lei Huang Reviewed By: nemanjai, #powerpc Differential Revision: https://reviews.llvm.org/D117225
-
Eli Friedman authored
List derived from https://docs.microsoft.com/en-us/cpp/cpp/keywords-cpp . Not that this is something we really want to encourage, but some of these show up in practice, so I figured I should just complete the list. Differential Revision: https://reviews.llvm.org/D121412
-
Nirvedh authored
Fold linalg.fill into linalg.generic. Remove dead arguments used in linalg.generic. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D121535
-
LLVM GN Syncbot authored
-
Shubham Sandeep Rastogi authored
With 229d576b the class EHFrameSplitter was renamed to DWARFRecordSectionSplitter. This change merely moves it to it's own .cpp/.h file Differential Revision: https://reviews.llvm.org/D121721
-
-
Dimitry Andric authored
The class `__dir_stream` is currently declared in two places: as a top-level forward declaration in `directory_iterator.h`, and as a friend declaration in class `directory_entry`, in `directory_entry.h`. The former has a `_LIBCPP_HIDDEN` attribute, but the latter does not, causing the Firefox build to complain about the visibility not matching the previous declaration. This is because Firefox plays games with pushing and popping visibility. Work around this by making both `__dir_stream` declarations consistently use `_LIBCPP_HIDDEN`. Reviewed By: ldionne, philnik, #libc Differential Revision: https://reviews.llvm.org/D121639
-
Danny Mösch authored
This is a fix for #53737. In addition to commas, newline characters are considered as separators of checks.
-
Daniel Thornburgh authored
If libcurl was built with CMake, CMake's FindCURL module defers completely to the included config file. This config file doesn't set any of the variables that the current check script depends on; it just sets up an imported CMake target. Accordingly, the smoke test fails, since it can't find the libcurl (or its static dependencies). This changes the compile smoke test to refer to the imported library instead; this should in turn bring in the necessary include and library directories via the interface properties set up by CMake. This better mirrors the way libcurl is referred to elsewhere in the CMakeLists. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D121718
-
Joe Nash authored
NFC. Hasn't been updated since script added check-next
-
Joe Nash authored
NFC. Hasn't been updated since the update script started adding check-next. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D121719
-