LLVM/project 155beb9libcxx/include/__atomic atomic_waitable_traits.h, libcxx/src atomic.cpp

[libc++] Fix native wait alignment (#180928)

This PR fixes two issues regarding the alignment of native wait:
- In the internal platform call, the local variable is copied from a
potentially non-aligned buffer
- Under the unstable ABI, the predicate to test eligibility of a type
being able to do native wait is purely on size. We should test also the
alignment of such type is qualified for platform call

---------

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
DeltaFile
+45-0libcxx/test/libcxx/atomics/atomics.syn/wait.native.compile.pass.cpp
+9-6libcxx/src/atomic.cpp
+6-3libcxx/include/__atomic/atomic_waitable_traits.h
+60-93 files

LLVM/project a1c4c1dclang/include/clang/Analysis/Scalable/Serialization SerializationFormat.h, clang/include/clang/Analysis/Scalable/TUSummary EntitySummary.h

[clang][ssaf] Drop llvm-RTTI support for now (#181198)

We discussed internally, and for now we will focus on an MVP and try to
not complicate APIs unless that is strictly necessary.
DeltaFile
+0-13clang/lib/Analysis/Scalable/Serialization/SerializationFormat.cpp
+0-11clang/lib/Analysis/Scalable/TUSummary/EntitySummary.cpp
+2-5clang/unittests/Analysis/Scalable/Registries/FancyAnalysisData.cpp
+1-5clang/include/clang/Analysis/Scalable/Serialization/SerializationFormat.h
+1-4clang/include/clang/Analysis/Scalable/TUSummary/EntitySummary.h
+1-4clang/unittests/Analysis/Scalable/Registries/MockSerializationFormat.cpp
+5-422 files not shown
+6-478 files

LLVM/project 1f404ecllvm/include/llvm/ADT STLExtras.h SmallVectorExtras.h, llvm/unittests/ADT STLExtrasTest.cpp SmallVectorExtrasTest.cpp

[ADT] Allow member pointers in map_range and map_to_vector (#181154)

This is for when all we need is to access a field or call a getter: no
need to write a lambda just to extract these.

Assisted-by: claude
DeltaFile
+27-0llvm/unittests/ADT/STLExtrasTest.cpp
+19-0llvm/unittests/ADT/SmallVectorExtrasTest.cpp
+5-3llvm/include/llvm/ADT/STLExtras.h
+2-0llvm/include/llvm/ADT/SmallVectorExtras.h
+53-34 files

LLVM/project 6f51f8ellvm/include/llvm/Target TargetSelectionDAG.td Target.td

[Docs] Improve Target TableGen Docs (#178518)

This change adds documentation for some of the advanced parts of the
TableGen Selection structures:
- The `set`, `node` and `srcvalue` special DAG nodes
- The `SDNodeXForm` C++ snippet.
- The `PatFrags` predicate C++ snippet, and documentation for how the
`OperandTransform` item works in a little more detail.
- The `ImmLeaf` predicate code.

This also adds documentation for the many C++ callbacks for Targets
associated with Decoding, Encoding, Parsing and Printing Operands and
Instructions, including Predicates.

Co-authored-by: Craig Topper <craig.topper at sifive.com>
DeltaFile
+167-15llvm/include/llvm/Target/TargetSelectionDAG.td
+112-14llvm/include/llvm/Target/Target.td
+279-292 files

LLVM/project 06f9716libcxx/src hash.cpp

[libcxx] Use a table for the offsets in __next_prime (#180651)

This reduces the size of __next_prime on armv8m baremetal from 1.4KB to
about 276B. Ideally there would be something that rolls up the if chain
into a single loop but there doesn't seem to be anything that does that
in llvm. Conversely, we should expect an unroller to be able to unroll
this loop in something like a -O3 build, but we unfortunately don't see
that either. I suspect perf might not be as much of a concern here since
this function is already called in a slow path when rehashing might be
done.

---------

Co-authored-by: Nikolas Klauser <nikolasklauser at berlin.de>
DeltaFile
+15-334libcxx/src/hash.cpp
+15-3341 files

LLVM/project 58c1f36llvm/lib/Target/SPIRV SPIRVBuiltins.cpp

[SPIRV] Rounding Mode decorations in OpenCL builtins only make sense with Float types

The backend was adding fp-rounding mode flags to
`uchar convert_uchar_rte(uint)`. These builtins are equivalent to
`uchar convert_uchar(uint)` which simply truncates its input, since
there is no floating-point value involved.

Related to https://github.com/llvm/llvm-project/issues/180936
DeltaFile
+15-4llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
+15-41 files

LLVM/project 96393b8clang/docs AMDGPUBuiltins.rst

fix doc build error
DeltaFile
+3-3clang/docs/AMDGPUBuiltins.rst
+3-31 files

LLVM/project 79b6aa1clang/test/CodeGenObjC expose-direct-method-cross-linkage.m

Add linking tests
DeltaFile
+175-0clang/test/CodeGenObjC/expose-direct-method-cross-linkage.m
+175-01 files

LLVM/project d8b6902clang/lib/CodeGen CGObjCMac.cpp, clang/test/CodeGenObjC expose-direct-method-lto.mm lit.local.cfg

Found a bug with LTO
DeltaFile
+95-0clang/test/CodeGenObjC/expose-direct-method-lto.mm
+6-3clang/lib/CodeGen/CGObjCMac.cpp
+5-0clang/test/CodeGenObjC/lit.local.cfg
+2-2clang/test/CodeGenObjC/expose-direct-method.m
+1-2clang/test/CodeGenObjC/expose-direct-method-cross-linkage.m
+109-75 files

LLVM/project 4841396clang/lib/Driver/ToolChains Clang.cpp

format
DeltaFile
+1-0clang/lib/Driver/ToolChains/Clang.cpp
+1-01 files

LLVM/project f742669clang/lib/CodeGen CGObjCRuntime.h CGObjCRuntime.cpp

Add helper function back
DeltaFile
+10-0clang/lib/CodeGen/CGObjCRuntime.h
+7-0clang/lib/CodeGen/CGObjCRuntime.cpp
+17-02 files

LLVM/project 2871c65clang/lib/CodeGen CGObjCMac.cpp CGObjC.cpp, clang/test/CodeGenObjC expose-direct-method-visibility-linkage.m expose-direct-method-linkedlist.m

rebase to helper renaming
DeltaFile
+9-9clang/lib/CodeGen/CGObjCMac.cpp
+4-4clang/test/CodeGenObjC/expose-direct-method-visibility-linkage.m
+1-1clang/lib/CodeGen/CGObjC.cpp
+1-1clang/test/CodeGenObjC/expose-direct-method-linkedlist.m
+1-1clang/test/CodeGenObjC/expose-direct-method-consumed.m
+1-1clang/test/CodeGenObjC/expose-direct-method-varargs.m
+17-172 files not shown
+19-198 files

LLVM/project 2620ecaclang/lib/CodeGen CGObjCMac.cpp CGObjC.cpp

[ExposeDirectMethod] Nil chech thunk generation

- Generation
- Dispatch
DeltaFile
+236-1clang/lib/CodeGen/CGObjCMac.cpp
+12-5clang/lib/CodeGen/CGObjC.cpp
+7-0clang/lib/CodeGen/CodeGenFunction.h
+3-1clang/lib/CodeGen/CGDecl.cpp
+258-74 files

LLVM/project ff6d3acclang/test/CodeGenObjC expose-direct-method-consumed.m

fix mac test
DeltaFile
+0-11clang/test/CodeGenObjC/expose-direct-method-consumed.m
+0-111 files

LLVM/project 512b20cclang/lib/CodeGen CGObjC.cpp

update comments
DeltaFile
+5-3clang/lib/CodeGen/CGObjC.cpp
+5-31 files

LLVM/project a79ce95clang/lib/CodeGen CGObjCMac.cpp

format
DeltaFile
+1-2clang/lib/CodeGen/CGObjCMac.cpp
+1-21 files

LLVM/project a9ed910clang/test/CodeGenObjC expose-direct-method.m expose-direct-method-visibility-linkage.m

add tests
DeltaFile
+292-0clang/test/CodeGenObjC/expose-direct-method.m
+170-0clang/test/CodeGenObjC/expose-direct-method-visibility-linkage.m
+136-0clang/test/CodeGenObjC/expose-direct-method-linkedlist.m
+119-0clang/test/CodeGenObjC/expose-direct-method-consumed.m
+103-0clang/test/CodeGenObjC/expose-direct-method-varargs.m
+24-0clang/test/CodeGenObjC/direct-method-ret-mismatch.m
+844-01 files not shown
+846-27 files

LLVM/project 96b30e8clang/test/CodeGenObjC expose-direct-method-visibility-linkage.m

amend mac tests
DeltaFile
+3-1clang/test/CodeGenObjC/expose-direct-method-visibility-linkage.m
+3-11 files

LLVM/project a289341.github/workflows prune-branches.yml

[Github] Run prune-branches workflow on changes to python script

This allows in-environment testing without needing to deploy to main.
DeltaFile
+1-0.github/workflows/prune-branches.yml
+1-01 files

LLVM/project 4b109dcflang/lib/Evaluate intrinsics.cpp, flang/lib/Optimizer/Builder IntrinsicCall.cpp

[flang] Implement C_F_STRPOINTER (Fortran 2023) (#176973)

Implement C_F_STRPOINTER to associate a Fortran character pointer with a
C string.

This intrinsic has two forms:

C_F_STRPOINTER(CSTRARRAY, FSTRPTR [,NCHARS]): Associates FSTRPTR with a
C string array
C_F_STRPOINTER(CSTRPTR, FSTRPTR, NCHARS): Associates FSTRPTR with a
C_PTR pointing to a character string
Implementation includes semantic validation, FIR lowering, and
associated tests.

F2023 Standard: 18.2.3.5

AI Usage Disclosure: AI tools (Claude Sonnet 4.5) were used to assist
with implementation of this feature and test code generation. I have
reviewed, modified, and tested all AI-generated code.
DeltaFile
+205-1flang/lib/Evaluate/intrinsics.cpp
+99-0flang/lib/Optimizer/Builder/IntrinsicCall.cpp
+74-0flang/test/Semantics/c_f_strpointer.f90
+58-0flang/test/Lower/Intrinsics/c_f_strpointer.f90
+3-2flang/module/iso_c_binding.f90
+3-0flang/module/__fortran_builtins.f90
+442-31 files not shown
+443-37 files

LLVM/project 34cabe0clang/include/clang/Options Options.td, clang/lib/Driver/ToolChains CommonArgs.cpp

Fix formatting
DeltaFile
+2-2clang/lib/Driver/ToolChains/CommonArgs.cpp
+2-1clang/include/clang/Options/Options.td
+4-32 files

LLVM/project d18f6d0lldb/source/DataFormatters FormatterSection.cpp, lldb/unittests/DataFormatter FormatterSectionTest.cpp CMakeLists.txt

[lldb] Limit formatter-section extractor range (#140139)

The formatter extraction would look at too much data for one type -
possibly reading data outside the section.
This PR limits the size of the `DataExtractor` to the one specified in
the record size before - previously, the whole section was looked at.
Similarly, `ForEachFormatterInModule` skipped zero-bytes but didn't stop
when reaching the end of the extractor.

I added a test for both cases.
DeltaFile
+143-0lldb/unittests/DataFormatter/FormatterSectionTest.cpp
+19-8lldb/source/DataFormatters/FormatterSection.cpp
+6-0lldb/unittests/DataFormatter/CMakeLists.txt
+168-83 files

LLVM/project aa02129clang/lib/Driver/ToolChains CommonArgs.cpp, clang/test/Driver clang_f_opts.c

Make sure options are passed to the linker in LTO
DeltaFile
+29-0clang/lib/Driver/ToolChains/CommonArgs.cpp
+8-4clang/test/Driver/clang_f_opts.c
+37-42 files

LLVM/project 1de1a76llvm/include/llvm/ADT ArrayRef.h, llvm/unittests/ADT ArrayRefTest.cpp

[ADT] Add const check to MutableArrayRef constructor (#181190)

Fixes #181176
DeltaFile
+4-0llvm/unittests/ADT/ArrayRefTest.cpp
+2-1llvm/include/llvm/ADT/ArrayRef.h
+6-12 files

LLVM/project f724d86clang/lib/Frontend CompilerInstance.cpp

[clang][modules] Don't rely on `std::vector` CTAD (#181182)

DeltaFile
+2-2clang/lib/Frontend/CompilerInstance.cpp
+2-21 files

LLVM/project e087d42libcxx/include/__locale_dir locale_base_api.h, libcxx/include/__locale_dir/support windows.h aix.h

[libc++] Add __strftime__ formatting attribute to locale base API __strftime (#179545)

Tip-of-trunk Clang seems to have started complaining about the missing
attribute.
DeltaFile
+4-3libcxx/include/__locale_dir/support/windows.h
+2-2libcxx/include/__locale_dir/support/no_locale/characters.h
+2-2libcxx/include/__locale_dir/locale_base_api.h
+2-2libcxx/include/__locale_dir/support/aix.h
+2-2libcxx/include/__locale_dir/support/bsd_like.h
+2-2libcxx/include/__locale_dir/support/linux.h
+14-131 files not shown
+16-157 files

LLVM/project 783fd2flibcxx/include/__configuration availability.h

 [libc++] Sort `_LIBCPP_INTRODUCED_IN_LLVM_<X>` usages in reverse chronological order (#176857)

I noticed that the various `_LIBCPP_INTRODUCED_IN_LLVM_<ver>` usages in
`availability.h` were defined a bit all over the place. I think it'd
make the most sense to sort them in reverse chronological order (like
their definitions).
DeltaFile
+55-55libcxx/include/__configuration/availability.h
+55-551 files

LLVM/project 075a657clang/docs AMDGPUBuiltins.rst

add a warning
DeltaFile
+5-0clang/docs/AMDGPUBuiltins.rst
+5-01 files

LLVM/project 4baab25lldb/docs/resources formatterbytecode.rst, lldb/examples/python formatter_bytecode.py

[lldb] Add Get(Non)SyntheticValue formatter bytecodes (#174839)

`GetSyntheticValue` in synthetic providers which need to operate on raw
root values, but will often want to use the synthetic value of children,
or nested children.
DeltaFile
+12-0lldb/source/DataFormatters/FormatterBytecode.cpp
+6-0lldb/examples/python/formatter_bytecode.py
+2-1lldb/docs/resources/formatterbytecode.rst
+2-0lldb/include/lldb/DataFormatters/FormatterBytecode.def
+22-14 files

LLVM/project 63826eaflang/docs Directives.md, flang/lib/Lower Bridge.cpp

[flang] still apply vectorization cost model with IVDEP (#180760)

The current implementation of `!DIR IVDEP` leads flang to bypass LLVM
cost model and always vectorize the loop carrying `!DIR$ IVDEP`.

IVDEP is an extension and its documentation varies, and while it usually
leads to vectorization because it is added on loops where it is usually
profitable, its documentation only tells it is meant to tell the
compiler that there are no loop carried dependencies and that the loop
is safe to vectorize.

In some application, such directive may have been added to help the
compiler proving it is safe to vectorize, but vectorizing is not always
the best choice for all architectures. The cost model should still be
applied. This is at least the case for classic flang.

When users want vectorization to happen, they should use `!DIR$ VECTOR
ALWAYS`.


    [5 lines not shown]
DeltaFile
+19-5flang/test/Integration/ivdep.f90
+15-3flang/test/Lower/ivdep.f90
+3-0flang/docs/Directives.md
+1-1flang/test/Lower/HLFIR/ivdep-where.f90
+1-1flang/test/Lower/ivdep-array.f90
+0-2flang/lib/Lower/Bridge.cpp
+39-121 files not shown
+40-137 files