LLVM/project 6e66da1mlir/include/mlir/Dialect/LLVMIR LLVMIntrinsicOps.td, mlir/test/Dialect/LLVMIR roundtrip.mlir

[mlir][LLVM] Add more `llvm.intr.experimental.constrained.*` ops
DeltaFile
+105-0mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
+77-0mlir/test/Target/LLVMIR/Import/intrinsic.ll
+67-2mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
+49-0mlir/test/Dialect/LLVMIR/roundtrip.mlir
+298-24 files

LLVM/project ca3d045.github new-prs-labeler.yml

[llubi][Github] Add llubi labelling support (#187877)

So that one can easily subscribe to llubi PRs which are currently not
labelled at all.
DeltaFile
+6-0.github/new-prs-labeler.yml
+6-01 files

LLVM/project 45039dfclang/unittests/Analysis CFGBackEdgesTest.cpp

[clang] On Windows, silence warning in `CFGBackEdgesTest` with MSVC (#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'
```
DeltaFile
+1-1clang/unittests/Analysis/CFGBackEdgesTest.cpp
+1-11 files

LLVM/project 33a14cbllvm/lib/Target/RISCV RISCVMoveMerger.cpp, llvm/test/CodeGen/RISCV rv32-move-merge-crash.ll

[RISCV] Add guard to prevent GPRPair merge on targets without Zdinx or P (#186600)

Resolves #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.
DeltaFile
+82-0llvm/test/CodeGen/RISCV/rv32-move-merge-crash.ll
+10-6llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
+92-62 files

LLVM/project 88f830allvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 deleted-inst-reduction-attempt.ll

[SLP]Do not try to reduced instruction, marked for deletion in previous attempts

Need to skip instructions, which were vectorized and marked for deletion
to prevent a compiler crash
DeltaFile
+59-0llvm/test/Transforms/SLPVectorizer/X86/deleted-inst-reduction-attempt.ll
+2-0llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+61-02 files

LLVM/project 34bc5d5clang/test/Misc noexecstack.c, clang/tools/driver cc1as_main.cpp

[MC,clang] Fix -Wa,--noexecstack not emitting .note.GNU-stack (#187880)

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.

913c5b4d1fff 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 https://github.com/llvm/llvm-project/issues/186004
DeltaFile
+22-0clang/test/Misc/noexecstack.c
+0-17llvm/test/MC/ELF/noexec.s
+11-4llvm/lib/MC/MCELFStreamer.cpp
+11-0llvm/test/MC/ELF/noexecstack.s
+2-6llvm/tools/llvm-mc/llvm-mc.cpp
+1-0clang/tools/driver/cc1as_main.cpp
+47-276 files

LLVM/project 2566961clang-tools-extra/clang-tidy/bugprone UseAfterMoveCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] use-after-move: Support null_after_move annotations (#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")]]`

    [2 lines not shown]
DeltaFile
+101-0clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
+39-4clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
+9-4clang-tools-extra/docs/ReleaseNotes.rst
+5-2clang-tools-extra/docs/clang-tidy/checks/bugprone/use-after-move.rst
+154-104 files

LLVM/project 6eb5ac5llvm/lib/Target/SystemZ SystemZISelLowering.cpp, llvm/test/CodeGen/SystemZ is_fpclass.ll

[SystemZ] Remove custom lowering of f16 IS_FPCLASS (#187532)

As pointed out in #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 #187518 .
DeltaFile
+84-10llvm/test/CodeGen/SystemZ/is_fpclass.ll
+1-3llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+85-132 files

LLVM/project b1cf9b0clang/lib/AST ExprConstant.cpp, clang/lib/AST/ByteCode InterpBuiltin.cpp

[Clang] Support constexpr for AVX512 compress intrinsics (#187656)

Fixes #163732
DeltaFile
+32-32clang/lib/Headers/avx512vlintrin.h
+52-7clang/lib/AST/ByteCode/InterpBuiltin.cpp
+33-16clang/test/CodeGen/X86/avx512vl-builtins.c
+16-24clang/lib/Headers/avx512vlvbmi2intrin.h
+40-0clang/lib/AST/ExprConstant.cpp
+16-24clang/lib/Headers/avx512fintrin.h
+189-1035 files not shown
+250-13811 files

LLVM/project 26ee552libcxx/include string

[libc++] Fix includes in `<string>` for no-`wchar_t` modes (#187650)

Since befaa35212dbaac39cd76a8dc748e4df7c90a0d9, 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>`.
DeltaFile
+3-0libcxx/include/string
+3-01 files

LLVM/project 720abd7clang/lib/AST QualTypeNames.cpp, clang/test/Interpreter pretty-print.cpp

[clang][AST] Fix assertion in getFullyQualifiedType for DecltypeType (#187725)
DeltaFile
+12-0clang/test/Interpreter/pretty-print.cpp
+11-0clang/lib/AST/QualTypeNames.cpp
+23-02 files

LLVM/project 4c4925flld/ELF Driver.cpp Config.h, lld/test/ELF aarch64-feature-bti.s aarch64-feature-gcs.s

[LLD] [ELF] Make {bti,gcs}-report=none silence warnings from force-bti/gcs=always (#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 #186173.
DeltaFile
+17-15lld/ELF/Driver.cpp
+3-0lld/test/ELF/aarch64-feature-bti.s
+2-0lld/ELF/Config.h
+1-0lld/test/ELF/aarch64-feature-gcs.s
+23-154 files

LLVM/project b4084bdclang-tools-extra/docs ReleaseNotes.rst, clang-tools-extra/test/clang-tidy/checkers/misc const-correctness-pointer-as-pointers.cpp

[clang] Detect pointee mutations in placement new expressions (#187508)

Fixes #187012 which is a false positive on clang-tidy end.
DeltaFile
+10-0clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp
+8-0clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-pointer-as-pointers.cpp
+3-0clang-tools-extra/docs/ReleaseNotes.rst
+2-0clang/lib/Analysis/ExprMutationAnalyzer.cpp
+23-04 files

LLVM/project a0d5508llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 abdu.ll abdu-neg.ll

[X86] Prefer branchless code with sbb for abdu (#187783)

We can use the negate if carry trick for abdu, and it works on all legal for sbb
DeltaFile
+110-114llvm/test/CodeGen/X86/abdu.ll
+86-101llvm/test/CodeGen/X86/abdu-neg.ll
+49-55llvm/test/CodeGen/X86/midpoint-int.ll
+38-18llvm/lib/Target/X86/X86ISelLowering.cpp
+283-2884 files

LLVM/project 5324c23llvm/lib/DebugInfo/DWARF DWARFDebugLoc.cpp, llvm/unittests/Support FormatVariadicTest.cpp

[llvm][DebugInfo] Use formatv instead of format in DWARFDebugLoc (#186800)

This relates to #35980.
DeltaFile
+7-4llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
+3-0llvm/unittests/Support/FormatVariadicTest.cpp
+10-42 files

LLVM/project 5b71607mlir/include/mlir/Dialect/Linalg/TransformOps LinalgTransformOps.td, mlir/lib/Dialect/Linalg/TransformOps LinalgTransformOps.cpp

[mlir][linalg] Specialize transform op - emit category ops (#187506)

Adds optional attribute to allow specialization into category Linalg
ops.

The default behavior of the transform op remains unchanged.
DeltaFile
+37-0mlir/test/Dialect/Linalg/transform-op-specialize-matmul.mlir
+8-6mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
+3-1mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+48-73 files

LLVM/project a547208clang-tools-extra/clang-tidy/readability RedundantParenthesesCheck.cpp, clang-tools-extra/test/clang-tidy/checkers/readability redundant-parentheses.cpp

[clang-tidy] False negatives readability-redundant-parantheses member of struct (#187054)

Fixes #186749
DeltaFile
+50-0clang-tools-extra/test/clang-tidy/checkers/readability/redundant-parentheses.cpp
+2-1clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp
+52-12 files

LLVM/project 24546d9clang/lib/CodeGen CGExprScalar.cpp

[clang][CodeGen] Use FieldDecl::getFieldIndex() in VisitOffsetOfExpr (#187826)

Use FieldDecl::getFieldIndex() instead of manually iterating over
fields.
DeltaFile
+4-12clang/lib/CodeGen/CGExprScalar.cpp
+4-121 files

LLVM/project 6f6adfborc-rt/include/orc-rt Session.h, orc-rt/unittests SessionTest.cpp

[orc-rt] Add Session::tryCreateService convenience function. (#187640)

Session::tryCreateService will try to create an instance of ServiceT by
forwarding the given arguments to the ServiceT::Create method, which
must return an Expected<std::unique_ptr<ServiceT>>.

This enables one-line construction and registration of Services with
fallible constructors (which are expected to be common).
DeltaFile
+27-0orc-rt/unittests/SessionTest.cpp
+14-0orc-rt/include/orc-rt/Session.h
+41-02 files

LLVM/project 3258d36clang/lib/Frontend VerifyDiagnosticConsumer.cpp

[Clang] Use stable_sort in VerifyDiagnosticsConsumer. (#187827)

The new code introduced for `-verify-directives` in PR #179835 enforces
that the order of diagnostics matches the order of the directives.
However, before checking this, it sorts the directives by
SourceLocation. Perhaps non-obviously, all directives which appear
inside a single comment are given the same SourceLocation, pointing to
the beginning of the comment. While these are added in order they appear
in the comment, the non-stable std::sort may non-detministically
misorder them. Switching to stable_sort ensures the correct order is
verified.

This was observed as a random test failure on the checks in
clang/test/CXX/drs/cwg25xx.cpp lines 250 and 264, in some builds of
Clang. Note that those lines end in backslashes, and thus, despite
appearances, the directives on the following lines are also within the
same single comment.
DeltaFile
+1-1clang/lib/Frontend/VerifyDiagnosticConsumer.cpp
+1-11 files

LLVM/project f014202clang/lib/Format FormatToken.h Format.cpp, clang/unittests/Format ConfigParseTest.cpp QualifierFixerTest.cpp

[clang-format][NFC] Remove redundant parens enclosing braced list
DeltaFile
+135-151clang/lib/Format/FormatToken.h
+13-13clang/lib/Format/Format.cpp
+4-5clang/unittests/Format/ConfigParseTest.cpp
+1-1clang/unittests/Format/QualifierFixerTest.cpp
+153-1704 files

LLVM/project 2bbb449clang/lib/Format WhitespaceManager.cpp, clang/unittests/Format FormatTest.cpp

[clang-format] Merge case alignment into AlignTokens (#187811)

Use (nearly) the same code to align case statements and expression, as
the other alignments do. That way we also fix two things:
- Keep the ColumnLimit intact, without duplicating the calculation.
- Align all the case colons, even for empty cases.
DeltaFile
+137-195clang/lib/Format/WhitespaceManager.cpp
+16-0clang/unittests/Format/FormatTest.cpp
+153-1952 files

LLVM/project aa62224libc/shared/math sqrtbf16.h, libc/src/__support/math sqrtbf16.h CMakeLists.txt

[libc][math] Refactor sqrtbf16 function header-only (#187849)
DeltaFile
+25-0libc/src/__support/math/sqrtbf16.h
+23-0libc/shared/math/sqrtbf16.h
+16-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+11-0libc/src/__support/math/CMakeLists.txt
+2-5libc/src/math/generic/sqrtbf16.cpp
+1-5libc/src/math/generic/CMakeLists.txt
+78-103 files not shown
+81-109 files

LLVM/project 58ab41elibc/src/__support/math log.h

fma
DeltaFile
+1-2libc/src/__support/math/log.h
+1-21 files

LLVM/project e94f13flibc/src/__support/CPP bit.h

static
DeltaFile
+1-1libc/src/__support/CPP/bit.h
+1-11 files

LLVM/project 1120c97llvm/test/MachineVerifier/AMDGPU invalid-vop3-source-modifiers.mir

[NFC][AMDGPU] Set output to null for llvm/test/MachineVerifier/AMDGPU/invalid-vop3-source-modifiers.mir (#187888)
DeltaFile
+1-1llvm/test/MachineVerifier/AMDGPU/invalid-vop3-source-modifiers.mir
+1-11 files

LLVM/project 1443144libc/src/__support/wctype perfect_hash_map.h

rename var
DeltaFile
+2-2libc/src/__support/wctype/perfect_hash_map.h
+2-21 files

LLVM/project 5c09fcelibc/src/__support/CPP iterator.h

fix 2
DeltaFile
+0-4libc/src/__support/CPP/iterator.h
+0-41 files

LLVM/project 9e7c12alibc/src/__support/wctype perfect_hash_map.h CMakeLists.txt

add UInt128
DeltaFile
+7-7libc/src/__support/wctype/perfect_hash_map.h
+1-0libc/src/__support/wctype/CMakeLists.txt
+8-72 files

LLVM/project 5d24c29libc/src/__support/CPP iterator.h, libc/src/__support/wctype perfect_hash_map.h

cleanup
DeltaFile
+1-2libc/src/__support/wctype/perfect_hash_map.h
+1-1libc/src/__support/CPP/iterator.h
+2-32 files