Merged
Conversation
We can use the negate if carry trick for abdu, and it works on all legal for sbb
…87508) Fixes llvm#187012 which is a false positive on clang-tidy end.
…i/gcs=always (llvm#186343) Previously, the implicit warnings from force-bti (or gcs=always) weren't possible to silence. The force-ibt/cet-report flags could also be handled the same way, but I haven't checked with GNU ld how they behave. And there, the force-ibt flag only produces warnings if the IBT bit is missing, while cet-report warns if either IBT or SHSTK are missing - but force-ibt probably shouldn't implicitly start warning for missing SHSTK. This addresses a discrepancy to GNU ld that was noted in llvm#186173.
Since befaa35, the CI stably failed for the generic-no-wide-characters build, because in no-`wchar_t` modes, the header for `__remove_cv_t` wasn't properly included. This PR adds the missing include of `<__type_traits/remove_cv.h>`. As drive-by, `<__cstddef/size_t.h>` and `<__type_traits/is_constant_evaluated.h>`, which are included by `<cwchar>`, are also made included by `<string>` to avoid potential regression as we're using `size_t` and `__libcpp_is_constant_evaluated()` in `<string>`.
As pointed out in llvm#187518 , currently, `__builtin_isnormal` returns `true` for subnormal half precision floating point numbers on `s390x. This is because there is a custom lowering defined which lowers an `f16` `IS_FPCLASS` ISD node by extending the `f16` value to `f32`, and then using SystemZ's "test data class" instruction to determine whether the number is subnormal. However, a number that is subnormal in 16 bits of precision will no longer be subnormal in 32 bits of precision, and so the test always returns true, i.e. all subnormal numbers are classified as normal. This PR addresses this by removing the custom lowering and instead relying on the generic expansion of `IS_FPCLASS`, which does not have this error. Fixes llvm#187518 .
…m#186903) Extend the bugprone-use-after-move check to recognize user defined smart-pointer-like types that make guarantees on the state of a moved-from object, leaving it in a valid and specified state that matches the standard smart pointer's moved-from state (nullptr), where it is safe to use but not dereference. Following the RFC discussion: * Use `[[clang::annotate]]` to mark the types. * Use an schema for the `[[clang::annotate]]` annotation and arguments to help avoid conflicts with other users of the attribute. * The annotation will identify the tool ("clang-tidy") and the arguments the plugin ("bugprone-use-after-move"), and the behavior of the type ("null_after_move"). E.g.: `[[clang::annotate("clang-tidy", "bugprone-use-after-move", "null_after_move")]]` RFC: https://discourse.llvm.org/t/rfc-add-a-class-attribute-clang-null-after-move-for-use-after-move-analysis/89760
…87880) AsmPrinter (clang -c a.c) and AsmParser (clang -c a.s, llvm-mc -filetype=obj a.s) have different ways to emit .note.GNU-stack section. 913c5b4 removed a redundant initSections call from cc1as, but that was the only place where NoExecStack was consumed for the assembler path. Unify the .note.GNU-stack emission in MCELFStreamer::finishImpl, making the `initSections` parameter redundant. Add a -filetype=obj test for Solaris (see https://reviews.llvm.org/D159179), which doesn't use .note.GNU-stack `initSections` has 20+ uses. The parameter cleanup will be deferred to a subsequent change. Fixes llvm#186004
…us attempts Need to skip instructions, which were vectorized and marked for deletion to prevent a compiler crash
…r P (llvm#186600) Resolves llvm#186527. The issue points out that GPRPair merge logic in the RISCVMoveMerger pass was being called on a target without `zdinx` or `experimental-P`, triggering an unreachable in `getGPRPairCopyOpcode`. This patch fixes this issue by guarding `isEvenRegisterCopy` and `isOddRegisterCopy` to return false when neither Zdinx nor P is present.
…lvm#187939) This fixes: ``` [5804/7029] Building CXX object tools\clang\unittests\CMakeFiles\AllClangUnitTests.dir\Analysis\CFGBackEdgesTest.cpp.obj C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\xutility(721): warning C4018: '>': signed/unsigned mismatch ... C:\git\llvm-project\clang\unittests\Analysis\CFGBackEdgesTest.cpp(170): note: see the first reference to 'testing::internal::PredicateFormatterFromMatcher<testing::internal::SizeIsMatcher<testing::internal::GtMatcher<int>>>::operator ()' in 'clang::analysis::`anonymous-namespace'::CFGBackEdgesTest_WhileWithContinueLoop_Test::TestBody' ```
So that one can easily subscribe to llubi PRs which are currently not labelled at all.
Add microbenchmarks for `PointerUnion`'s `isa` and `isNull` operations across union sizes of 2, 4, and 8 types. This it to establish baseline performance numbers before making changes to the implementation. I plan to refactor the implementation a bit and add support for more variants using sparse encoding. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Collaborator
Author
ronlieb
approved these changes
Mar 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.