- Jan 10, 2023
-
-
Johannes Doerfert authored
The error was always a success even if the error case happened as the std::move reseted the error object.
-
Johannes Doerfert authored
Avoid the default attributes for these two special intrinsics. Found as part of D141190.
-
Johannes Doerfert authored
-
Caroline Tice authored
Recent commit introducing AA for getting underluying objects of a pointer created an uninitialized boolean, which causes tests to fail when built unter asan/ubsan. This initialized that variable.
-
Benjamin Kramer authored
Avoids unused variable warnings when asserts are disabled.
-
Jonas Devlieghere authored
Limit trusting the arange accelerator tables (8b259fe5) to dSYMs only, and not any debug info object file. Differential revision: https://reviews.llvm.org/D141330
-
Nick Desaulniers authored
Allow running llvm/utils/update_any_test_checks.py from working directories other llvm/utils/. Fixes: $ ./llvm/utils/update_any_test_checks.py path/to/foo.ll utils/update_llc_test_checks.py: not found (used in path/to/foo.ll) Reviewed By: arichardson Differential Revision: https://reviews.llvm.org/D140586
-
Stanislav Mekhanoshin authored
This produces better code by avoiding repacking in some cases. Fixes: SWDEV-373436 Differential Revision: https://reviews.llvm.org/D141329
-
Nick Desaulniers authored
Every other subclass of SelectionDAGISel calls this pass "<arch>-isel". No existing tests refer to ppc-codegen so this is purely a cosmetic change to bring the pass name in line with other architecture's SelectionDAGISel subclasses. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D140497
-
Philip Reames authored
We have multiple targets which have defined custom instructions and sdag nodes to represent a compiler memory barrier. This patch consolidates the sdag node definition into common code. This is a companion to D92842, but a bit different in focus. This change consolidates the existing sdag node definitions; that patch skipped defining a sdag node by instead going straight to a target node. That patch is also not NFC - as being so is quite hard for commoning up the instruction definitions. I started with two backends to ensure the new common code was reusable while not having a massive diff. Once this lands, I'll submit a series of NFCs for backends where the changes are obvious, or reviews if more discussion is needed. Differential Revision: https://reviews.llvm.org/D141317
-
Jeffrey Byrnes authored
Implicit def operands are needed when we spill partially undef super registers by each individual subregister. The implicit-def operands will allow us to lower spills without the verifier complaining. Currently, we are overzeously attaching implicit operands, when we really only need them on the first sub reg spill op. By more selectively attached the implicit ops, we will free up some unneeded dependencies for the post-ra scheduler. Moreover, this enables a previously incorrect optimization / resolves a correctness issue in indirectCopyToAGPR. When lowering AGPR copies on GFX908, we can improve CodeGen by reusing accvgpr_writes. However, we could not reliably determine which agprs accvgpr_writes actually define due to implicit-defs. Differential Revision: https://reviews.llvm.org/D141101
-
Casey Carter authored
No `_VSTD` allowed in test code! Differential Revision: https://reviews.llvm.org/D141269
-
Guozhi Wei authored
This patch implements the enhancement proposed by https://github.com/llvm/llvm-project/issues/59312. Suppose we have following code v0 = load %addr br %LoadBB LoadBB: v1 = load %addr ... PredBB: ... br %cond, label %LoadBB, label %SuccBB SuccBB: v2 = load %addr ... Instruction v1 in LoadBB is partially redundant, edge (PredBB, LoadBB) is a critical edge. SuccBB is another successor of PredBB, it contains another load v2 which is identical to v1. Current GVN splits the critical edge (PredBB, LoadBB) and inserts a new load in it. A better method is move the load of v2 into PredBB, then v1 can be changed to a PHI instruction. If there are two or more similar predecessors, like the test case in the bug entry, current GVN simply gives up because otherwise it needs to split multiple critical edges. But we can move all loads in successor blocks into predecessors. Differential Revision: https://reviews.llvm.org/D139582
-
Nathan Ridge authored
Fixes https://github.com/clangd/clangd/issues/1449 Differential Revision: https://reviews.llvm.org/D141218
-
Casey Carter authored
Our static analyzer likes to warn when loop bodies are never executed, which is true for `make_string<T>("")`. Build the result with `basic_string`'s iterator-pair constructor instead, which is simpler (one liner), faster (single pass), and doesn't trigger the warning. Differential Revision: https://reviews.llvm.org/D141263 -
Adrian Prantl authored
The current interface theoretically could lead to a use-after-free when a client holds on to the returned pointer. Fix this by returning a shared_ptr to the scratch typesystem. rdar://103619233 Differential Revision: https://reviews.llvm.org/D141100
-
Casey Carter authored
* Using one-or-two letter names for globals is asking for shadowing warnings. * MSVCSTL's container proxy allocations strike again * MSVCSTL's `<string>` doesn't define `std::out_of_range` * `basic_string::substr` takes two arguments of type `size_type`. Let's use that type instead of `size_t` and `ptrdiff_t` to avoid narrowing warnings. Differential Revision: https://reviews.llvm.org/D141253
-
Kazu Hirata authored
This patch fixes: llvm/lib/ProfileData/SampleProfWriter.cpp:100:10: error: unused variable 'OriginalFunctionCount' [-Werror,-Wunused-variable]
-
Stanislav Mekhanoshin authored
Pre-commit tests before the next patch. Subtest shuffle_v16f16_concat exposes the problem with suboptimal lowering.
-
Alex Brachet authored
-
bixia1 authored
Previously, we use a temporary tensor with identity ordering. We now use a temporary tensor with the destination dimension ordering, to enable the use of sort_coo for sorting the tensor. Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D141295
-
Jonas Devlieghere authored
When ingesting aranges from a dSYM, always trust the contents of the accelerator table since it always comes from dsymutil. According to Instruments, skipping the decoding of all CU DIEs to get at the DW_AT_ranges attribute removes ~3.5 seconds from setting a breakpoint by file/line when debugging clang with a dSYM. Interestingly on the wall clock the speedup is less noticeable, but still present. rdar://problem/56057688 Differential Revision: https://reviews.llvm.org/D68655
-
Teresa Johnson authored
Since the linker does not resolve local symbols, we cannot look up whether they are prevailing. The prior check was blocking all locals from getting memprof summaries in the combined index. Modified the existing test case to contain a local. This necessitated some other fixes as the order of summary entries changed. Differential Revision: https://reviews.llvm.org/D140786
-
William Huang authored
Allow user to specify `--output-size-limit=n` to cap the size of generated profile to be strictly under n. Functions with the lowest total sample count are dropped first if necessary. Due to using a heuristic, excessive functions may be dropped to satisfy the size requirement Reviewed By: snehasish Differential Revision: https://reviews.llvm.org/D139603
-
Rafael A Herrera Guaitero authored
Analysis that determines if a parallel region can reach another parallel region in any target region of the TU. A new global var is emitted with the name of the kernel + "_nested_parallelism", which is either 0 or 1 depending on the result. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D141010
-
Sanjay Patel authored
In the changed tests, we avoid creating extra instructions, and there are no obvious regressions in IR tests at least. Codegen should be able to create the shift+mask form if that is profitable. This is a more general fix for issue #59897 than 0eedc9e5 .
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Philip Reames authored
For the moment, this is the same as the default memory model.
-
Lei Zhang authored
Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D141316
-
Tue Ly authored
-
Siva Chandra Reddy authored
-
Tue Ly authored
Fix typos in LLVMLibCArchitectures.cmake defining target architectures. Differential Revision: https://reviews.llvm.org/D141314
-
Fangrui Song authored
LFS64 symbols in musl are for glibc-ABI-compat and not intended for linking (correct usage will not create LFS64 references). The next release 1.2.4 will disallow linking against LFS64 symbols[1]. For sanitizers, let's just remove LFS64 interceptors. In case of erroneous LFS64 references, asan/tsan will detect fewer problems and msan may have false positives. [1]: https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4 Reviewed By: thesamesam Differential Revision: https://reviews.llvm.org/D141186
-
Alex Brachet authored
This reverts commit c6dcbed2. Broke tests on arm and aarch64
-
Corentin Jabot authored
Structured bindings were not properly marked odr-used and therefore captured in generic lambddas. Fixes #57826 It is unclear to me if further simplification can be gained through the allowance described in https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0588r1.html. Either way, I think this makes support for P0588 completes, but we probably want to add test for that in a separate PR. (and I lack confidence I understand P0588 sufficiently to assert the completeness of our cnformance). Reviewed By: aaron.ballman, #clang-language-wg Differential Revision: https://reviews.llvm.org/D137244
-
Alex Brachet authored
Traditionally these functions are exposed in string*s*.h not string.h Differential Revision: https://reviews.llvm.org/D141237
-
Alex Brachet authored
This will be used to implement the case insensitive str{,n}casecmp Differential Revision: https://reviews.llvm.org/D141235 -
spupyrev authored
We want to use profile inference (**profi**) in BOLT for stale profile matching. To this end, I am making a few changes modifying the interface of the algorithm. This is the first change for existing usages of profi (e.g., CSSPGO): - introducing an object holding the algorithmic parameters; - some renaming of existing options; - dropped unused option, SampleProfileInferEntryCount, as we don't plan to change its default value; - no changes in the output / tests. Reviewed By: hoy Differential Revision: https://reviews.llvm.org/D134756
-
Fangrui Song authored
Now that D137666 requires 48-bit VMA for AArch64, we can switch to SizeClassAllocator64 for a slightly more efficient allocator (asan/lsan already switched by default). It seems that we can pick kSpaceBeg = 0xE00000000000ULL to support both Linux ("app-15") and FreeBSD ("high memory"). Reviewed By: #sanitizers, vitalybuka Differential Revision: https://reviews.llvm.org/D140792
-