LLVM/project 5ae66a3libc/src/__support tlsf_freestore.h tlsf_index_computation_proof.py, libc/test/src/__support tlsf_freestore_test.cpp

add optimizations for hot paths
DeltaFile
+83-39libc/src/__support/tlsf_freestore.h
+97-0libc/src/__support/tlsf_index_computation_proof.py
+9-9libc/test/src/__support/tlsf_freestore_test.cpp
+189-483 files

LLVM/project 83538c5clang/lib/CIR/CodeGen CIRGenExprScalar.cpp, clang/test/CIR/CodeGenOpenCL as_type.cl

[CIR] Implement __builtin_astype for vec4 to vec3 (#199374)

Implement __builtin_astype for vec4 to vec3

Issue #192311
DeltaFile
+20-12clang/test/CIR/CodeGenOpenCL/as_type.cl
+15-5clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+35-172 files

LLVM/project 67ba995llvm/test/CodeGen/AMDGPU llvm.exp10.f64.ll llvm.exp.f64.ll

AMDGPU/GlobalISel: Switch some tests to -new-reg-bank-select
DeltaFile
+887-803llvm/test/CodeGen/AMDGPU/llvm.exp10.f64.ll
+855-771llvm/test/CodeGen/AMDGPU/llvm.exp.f64.ll
+677-645llvm/test/CodeGen/AMDGPU/llvm.exp2.f64.ll
+654-306llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
+503-255llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
+435-309llvm/test/CodeGen/AMDGPU/rsq.f64.ll
+4,011-3,08926 files not shown
+5,656-4,16332 files

LLVM/project b76f082mlir/lib/Transforms Mem2Reg.cpp, mlir/test/Dialect/LLVMIR mem2reg-dbginfo.mlir

trim comments
DeltaFile
+7-19mlir/lib/Transforms/Mem2Reg.cpp
+1-8mlir/test/Dialect/LLVMIR/mem2reg-dbginfo.mlir
+8-272 files

LLVM/project 1f1ae8fclang/tools/clang-sycl-linker ClangSYCLLinker.cpp

[NFC][clang-sycl-linker] Apply LLVM coding standards to ClangSYCLLinker.cpp (#200543)

Bring the file in line with llvm/docs/CodingStandards.rst without
changing
behavior:

- Restore the canonical //===---===// file-header banner.
- Move free functions out of the anonymous namespace and mark them
  `static`; keep only types (LinkerOptTable, LinkResult, SplitModule,
  IRSplitMode, EntryPointCategorizer) inside anonymous namespaces.
- Rename a local `OutputFile` in createTempFile to `Path` to stop it
  shadowing the file-scope `OutputFile`.
- Rename the inner `Err` in runCodeGen to `MatErr` to stop it shadowing
  the surrounding `SMDiagnostic Err`.
- Normalize parameter-name comments to the `/*Name=*/value` form.
- Strip quotes from Doxygen `\param 'Name'` directives.

Co-Authored-By: Claude
DeltaFile
+48-39clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
+48-391 files

LLVM/project 17a57ebclang/include/clang/AST ExprCXX.h, clang/include/clang/Sema Sema.h

[clang] fix transformation of SubstNonTypeTemplateParmExpr nodes from typealiases and concepts

This makes sure SubstNonTypeTemplateParmExpr produced from non-specialization
decls (Type alias templates and concepts) are correctly transformed.

This makes the SubstNonTypeTemplateParmExpr store the parameter type directly,
and uses that instead of relying on the AssociatedDecl.

Fixes #191738
Fixes #196375
DeltaFile
+16-36clang/lib/Sema/SemaTemplate.cpp
+18-31clang/lib/Sema/TreeTransform.h
+13-13clang/include/clang/AST/ExprCXX.h
+14-10clang/lib/Sema/SemaTemplateInstantiate.cpp
+9-10clang/include/clang/Sema/Sema.h
+0-12clang/lib/AST/ExprCXX.cpp
+70-11214 files not shown
+126-13720 files

LLVM/project d1e6085llvm/lib/Transforms/Scalar LoopInterchange.cpp

address reviews
DeltaFile
+2-4llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+2-41 files

LLVM/project 5cbd57dclang/include/clang/AST ExprCXX.h, clang/include/clang/Sema Sema.h

[clang] fix transformation of SubstNonTypeTemplateParmExpr nodes from typealiases and concepts

This makes sure SubstNonTypeTemplateParmExpr produced from non-specialization
decls (Type alias templates and concepts) are correctly transformed.

This makes the SubstNonTypeTemplateParmExpr store the parameter type directly,
and uses that instead of relying on the AssociatedDecl.

Fixes #191738
Fixes #196375
DeltaFile
+17-36clang/lib/Sema/SemaTemplate.cpp
+18-31clang/lib/Sema/TreeTransform.h
+13-13clang/include/clang/AST/ExprCXX.h
+14-10clang/lib/Sema/SemaTemplateInstantiate.cpp
+9-10clang/include/clang/Sema/Sema.h
+0-12clang/lib/AST/ExprCXX.cpp
+71-11214 files not shown
+127-13720 files

LLVM/project 234e46aflang/include/flang/Semantics semantics.h, flang/lib/Semantics semantics.cpp resolve-names.cpp

[cuda][flang] Diagnose missing CUDA intrinsic modules in Flang semantics (#200509)

- Replace CUDA intrinsic module `CHECK`s with actionable diagnostics
when `cudadevice` or `__cuda_builtins` cannot be read.
- Avoid dereferencing missing CUDA module scopes during implicit CUDA
symbol import.
- Add a semantics test covering the missing CUDA intrinsic module
diagnostic.
DeltaFile
+20-9flang/lib/Semantics/semantics.cpp
+14-11flang/lib/Semantics/resolve-names.cpp
+10-0flang/test/Semantics/cuf-missing-intrinsic-modules.cuf
+4-2flang/include/flang/Semantics/semantics.h
+48-224 files

LLVM/project 45660cblldb/source/Host/windows ConnectionGenericFileWindows.cpp

[lldb][Windows] Use captured error in ConnectionGenericFile::Read (#200803)

Use the captured value on both branches so the reported error matches
the one that was tested against.
DeltaFile
+1-1lldb/source/Host/windows/ConnectionGenericFileWindows.cpp
+1-11 files

LLVM/project 96f5b17libc/hdr/types struct_udphdr.h CMakeLists.txt, libc/include/llvm-libc-types struct_udphdr.h

[libc] Add netinet/udp.h containing struct udphdr (#200839)

This patch adds a generated <netinet/udp.h> containing the `udphdr`
structure definition.

There are two styles ("linux" and "BSD") of udphdr field names (and both
of them can be found in the wild), so I follow the glibc and bionic
approach of using an anonymous union. (musl uses a #define on the field
names, which doesn't seem that great).

I've added the target to `include/CMakeLists.txt` and registered it
under target lists in `headers.txt` for the supported Linux platforms
(x86_64, aarch64, and riscv).

To verify layout and alignment correctness, I've added a layout and
field compatibility unit test under `test/src/netinet/udp_test.cpp`.

Assisted by Gemini.
DeltaFile
+43-0libc/test/src/netinet/udp_test.cpp
+37-0libc/include/llvm-libc-types/struct_udphdr.h
+27-0libc/hdr/types/struct_udphdr.h
+13-0libc/test/src/netinet/CMakeLists.txt
+10-0libc/hdr/types/CMakeLists.txt
+9-0libc/include/netinet/udp.yaml
+139-06 files not shown
+153-012 files

LLVM/project a5a3398clang/lib/Driver Driver.cpp, clang/test/Driver offload-arch-translation-amdgpu.cu hip-toolchain-no-rdc.hip

[Clang][AMDGPU] Restore the non-RDC compilation pipeline

The new offload driver uses the LTO compilation pipeline even for non-RDC
compilation. This PR restores the conventional non-RDC flow, where the backend
generates executable code directly, which is then bundled into the HIP fat
binary.

We can revert this change in the future if we decide to deprecate the
distinction between non-RDC and RDC compilation and unify the compilation flow.
DeltaFile
+60-60clang/test/Driver/offload-arch-translation-amdgpu.cu
+74-26clang/lib/Driver/Driver.cpp
+26-45clang/test/Driver/hip-toolchain-no-rdc.hip
+21-13clang/test/Driver/hip-phases.hip
+3-11clang/test/Driver/hip-toolchain-opt.hip
+4-3clang/test/Driver/hip-save-temps.hip
+188-1582 files not shown
+190-1608 files

LLVM/project 82b4ef5llvm/lib/Transforms/Vectorize VPlan.h VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize/AArch64 sve2-histcnt.ll

[LV] Fix missing MetaData for histogram instructions (#134241)
DeltaFile
+56-0llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt.ll
+32-0llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve2-histcnt-vplan.ll
+8-7llvm/lib/Transforms/Vectorize/VPlan.h
+4-3llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+2-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+102-115 files

LLVM/project cf797d6mlir/include/mlir/Interfaces MemorySlotInterfaces.td, mlir/lib/Transforms Mem2Reg.cpp

set insertion point before memOp in promoteInBlock
DeltaFile
+23-0mlir/test/Dialect/LLVMIR/mem2reg-dbginfo.mlir
+6-4mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
+4-1mlir/lib/Transforms/Mem2Reg.cpp
+33-53 files

LLVM/project 16dc82cllvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange memory-attr.ll

[LoopInterchange] Prevent to interchange when memory-related calls exist
DeltaFile
+7-19llvm/test/Transforms/LoopInterchange/memory-attr.ll
+4-2llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+11-212 files

LLVM/project ef7cbc5mlir/lib/Conversion/TosaToSPIRVTosa TosaToSPIRVTosaOps.cpp, mlir/test/Conversion/TosaToSPIRVTosa tosa-to-spirv.mlir

[mlir][spirv][tosa] Add remaining TOSA 1.0 SPIR-V TOSA ops (#200383)

Add conversion patterns for additional TOSA 1.0 operations targeting the
SPIR-V TOSA extended instruction set.

This covers pooling and convolution ops, FFT/RFFT, matmul, concat, pad,
rescale, const, const_shape, and identity. Concat is split into
conservative chunks to avoid producing SPIR-V instructions with too many
operands.

Add a multi-result conversion pattern for FFT/RFFT and share the
convolution replacement logic for conv2d, conv3d, and depthwise_conv2d
while keeping transpose_conv2d explicit because it has different
attributes.

Also share constant attribute conversion for const and const_shape,
including integer element type conversions such as index to i32, i4 to
i8, and i48 to i64, and preserve the empty const_shape edge case.


    [2 lines not shown]
DeltaFile
+288-0mlir/test/Conversion/TosaToSPIRVTosa/tosa-to-spirv.mlir
+275-10mlir/lib/Conversion/TosaToSPIRVTosa/TosaToSPIRVTosaOps.cpp
+563-102 files

LLVM/project b052222llvm/test/tools/llubi intr_vector_manip.ll, llvm/tools/llubi/lib Interpreter.cpp Value.h

[llubi] Fix the storage kind of poison results (#200830)

`AnyValue::poison()` only represents scalar integer/fp/pointer values.
DeltaFile
+15-13llvm/tools/llubi/lib/Interpreter.cpp
+12-12llvm/test/tools/llubi/intr_vector_manip.ll
+19-0llvm/tools/llubi/lib/Value.h
+4-4llvm/tools/llubi/lib/Library.cpp
+50-294 files

LLVM/project 027053cllvm/lib/IR AsmWriter.cpp, llvm/test/Assembler dilabel.ll

[LLVM][IR] Make sure that DILabel's line is always printed

This commit ensures that the textual IR of the DILabel always contains
the `line` information. This is required as the absence of a line causes
a parsing failure, i.e., this change fixes the print + parse roundtrip.
DeltaFile
+22-0llvm/test/Assembler/dilabel.ll
+2-2llvm/lib/IR/AsmWriter.cpp
+24-22 files

LLVM/project 5fa7b55lldb/source/Host/windows ProcessLauncherWindows.cpp

[NFC][lldb][windows] cleanup ProcessLauncherWindows result check (#200804)
DeltaFile
+8-12lldb/source/Host/windows/ProcessLauncherWindows.cpp
+8-121 files

OpenBSD/src KT1j4hRusr.sbin/vmd virtio.c vioscsi.c

   A privileged guest can make the host-side `vioblk` backend read a descriptor
   outside the configured virtqueue descriptor table and interpret the out-of-table
   entry as a block request descriptor. In the confirmed run, the guest-controlled
   out-of-table descriptor made `vmd(8)` read and log a guest-chosen block command
   value, and the device entered `DEVICE_NEEDS_RESET`.
   from Quarkslab
   from deraadt@; ok hshoexer, mlarkin

   A privileged guest can notify one invalid virtio-block queue index and
   terminate the host-side `vioblk` device process. In the confirmed run, this
   also caused the VM event thread to exit unexpectedly.
   from Quarkslab
   from deraadt@; ok hshoexer, mlarkin

   Do not call `fatalx()` on malformed guest-provided descriptor lengths. Reject
   the request and return without terminating the VM process.
   from Quarkslab
   from deraadt@; ok hshoexer, mlarkin


    [26 lines not shown]
VersionDeltaFile
1.127.2.1+40-7usr.sbin/vmd/virtio.c
1.26.2.1+17-2usr.sbin/vmd/vioscsi.c
1.24.2.1+7-2usr.sbin/vmd/vioblk.c
+64-113 files

LLVM/project 53133f6llvm/lib/CodeGen PeepholeOptimizer.cpp, llvm/test/CodeGen/X86 bitcnt-load-with-cmov.ll

[Peephole] Do not fold load if any clobber exists (#198238)

Fixes #198173, which is introduced by
https://github.com/llvm/llvm-project/commit/9525bcc3e06e6c0bff3a85f503e47b06a63d6dcc.
The original patch missed the case where there is a clobber between
`LoadMI` and `FlagProducer`.
DeltaFile
+45-0llvm/test/CodeGen/X86/bitcnt-load-with-cmov.ll
+6-1llvm/lib/CodeGen/PeepholeOptimizer.cpp
+51-12 files

LLVM/project e68990blldb/source/Plugins/Process/Windows/Common NativeProcessWindows.cpp NativeProcessWindows.h

[NFC][lldb][windows] break down NativeProcessWindows::OnDebugException (#200832)

This patch breaks down `NativeProcessWindows::OnDebugException` into 3
different handlers (one for each exception) for readability.
DeltaFile
+141-136lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp
+9-0lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.h
+150-1362 files

LLVM/project 6148075bolt/include/bolt/Profile DataAggregator.h, bolt/lib/Profile DataAggregator.cpp

[BOLT] Support multiple perf data inputs

Allow multiple -p/-perfdata args (comma-separated and repeated).
Process them in parallel with `--perfdata-jobs/-pj` (default 4,
0 for all available hardware threads). Keep YAML/DataReader
inputs single-profile only.

This also enables density computation with multiple perf files.
Prior to that, it was impossible to compute total density as
it wasn't computed from symbolized profiles.

Depends on
#199323
#199322
#199321
#199320

Test Plan:
Updated pre-aggregated-perf.test and perf_test

    [11 lines not shown]
DeltaFile
+54-5bolt/lib/Profile/DataAggregator.cpp
+12-3bolt/include/bolt/Profile/DataAggregator.h
+7-8bolt/lib/Utils/CommandLineOpts.cpp
+12-0bolt/test/perf2bolt/perf_test.test
+7-0bolt/lib/Rewrite/RewriteInstance.cpp
+5-0bolt/test/X86/pre-aggregated-perf.test
+97-163 files not shown
+104-219 files

OpenBSD/src hYve2lSusr.sbin/vmd virtio.c vioscsi.c

   A privileged guest can make the host-side `vioblk` backend read a descriptor
   outside the configured virtqueue descriptor table and interpret the out-of-table
   entry as a block request descriptor. In the confirmed run, the guest-controlled
   out-of-table descriptor made `vmd(8)` read and log a guest-chosen block command
   value, and the device entered `DEVICE_NEEDS_RESET`.
   from Quarkslab
   from deraadt@; ok hshoexer, mlarkin

   A privileged guest can notify one invalid virtio-block queue index and
   terminate the host-side `vioblk` device process. In the confirmed run, this
   also caused the VM event thread to exit unexpectedly.
   from Quarkslab
   from deraadt@; ok hshoexer, mlarkin

   Do not call `fatalx()` on malformed guest-provided descriptor lengths. Reject
   the request and return without terminating the VM process.
   from Quarkslab
   from deraadt@; ok hshoexer, mlarkin


    [37 lines not shown]
VersionDeltaFile
1.137.4.1+40-7usr.sbin/vmd/virtio.c
1.29.4.1+17-2usr.sbin/vmd/vioscsi.c
1.82.2.1+9-8usr.sbin/vmd/config.c
1.28.4.1+7-2usr.sbin/vmd/vioblk.c
+73-194 files

FreeBSD/src 79d0dbcsys/security/mac_do mac_do.c, tests/sys/mac/do invalid_configs.sh

MAC/do: Fix double-free on parse error after "executable paths" feature

parse_rules() has been calling toast_rules() in case of a parse error in
order to deallocate the 'struct rule' objects it has constructed up to
that point.

toast_rules() would take a pointer to a full 'struct rules' object, and
besides freeing all 'struct rule' referenced by it, would also free the
holding 'struct rules' itself.

With the introduction of the "executable paths" feature, and the
embedding of 'struct rules' into 'struct conf', meaning that the
lifecycle for 'struct rules' was no longer independent, toast_rules()
was changed not to free the passed 'struct rules' (as it was a field of
a 'struct conf' object).  Unfortunately, this change was not completed
with a reinitialization of the rules list head, so the 'struct conf'
object would continue to reference just-freed rules, which then would be
freed a second time on destruction of that container.


    [16 lines not shown]
DeltaFile
+8-8sys/security/mac_do/mac_do.c
+14-0tests/sys/mac/do/invalid_configs.sh
+22-82 files

LLVM/project 9f1568aflang/test/Integration/OpenMP atomic-capture-release.f90

[flang][OpenMP] Restricting Integration test atomic-capture-release.f90 run to x86 and aarch64 (#200770)

Similar to the the change in
`flang/test/Integration/OpenMP/atomic-compare.f90`, restricting the test
case `flang/test/Integration/OpenMP/atomic-capture-release.f90` to run
on
`x86-registered-target & aarch64-registered-target`

This also Fixes
[#200729](https://github.com/llvm/llvm-project/issues/200729)

A comment has been added to the merge in
[[Flang][OpenMP]Handling restrictions of using Memory-Order-Clause with
Atomic-Clause](https://github.com/llvm/llvm-project/pull/199636)

>LLVM Buildbot has detected a new failure on builder
ppc64le-mlir-rhel-clang running on ppc64le-mlir-rhel-test while building
flang,llvm,mlir at step 4 "cmake-configure".
Full details are available at:

    [4 lines not shown]
DeltaFile
+2-1flang/test/Integration/OpenMP/atomic-capture-release.f90
+2-11 files

LLVM/project 6535731llvm/test/Transforms/LoopInterchange memory-attr.ll

[LoopInterchange] Add test where loop has memory-affected calls (NFC) (#200827)

This patch adds the following two test cases:

- There is a call to a function with `memory(write)` in the loop nest,
which is taken from #200796.
- There is a call to a function with `memory(none)` in the loop nest.

For the former case, we are not allowed to interchange the loops because
the function call may write to an unknown memory location, but the
transformation is still applied, i.e., a miscompilation. As for the
latter case, the call should not prevent the loops from being
interchanged, which seems to be the original intention of the code.
DeltaFile
+140-0llvm/test/Transforms/LoopInterchange/memory-attr.ll
+140-01 files

OpenBSD/src jtiR0abusr.sbin/smtpd smtp_session.c crypto.c

   Validate encrypted queue buffer sizes before processing auth tag
   and IV data: current callers already treat malformed input as a
   decrypt failure but rejecting truncated buffers earlier makes
   boundary conditions more explicit.

   from gilles@; diff by Stuart Thomas <stuart.thomas at triageforge.co.uk>

   Ensure pending asynchronous lookups do not retain dangling smtp_session
   references after teardown.
   This is mainly a robustness fix inside the privsep model: stale
   references may permit lateral effects between smtpd processes after
   another compromise.

   from gilles@; diff by Stuart Thomas <stuart.thomas at triageforge.co.uk>

   Zero the temporary envelope parsing buffers before use.
   While current parsing paths do not expose uninitialized data, keeping
   stack residue in these transient buffers unnecessarily weakens
   compartmentalization and may aid lateral movement inside the privsep

    [24 lines not shown]
VersionDeltaFile
1.448.2.1+16-1usr.sbin/smtpd/smtp_session.c
1.10.20.1+5-3usr.sbin/smtpd/crypto.c
1.69.12.1+5-1usr.sbin/smtpd/queue_backend.c
1.251.2.1+4-1usr.sbin/smtpd/lka.c
1.48.2.1+3-1usr.sbin/smtpd/mproc.c
+33-75 files

OpenBSD/src CGBrfDjusr.sbin/smtpd smtp_session.c crypto.c

   Validate encrypted queue buffer sizes before processing auth tag
   and IV data: current callers already treat malformed input as a
   decrypt failure but rejecting truncated buffers earlier makes
   boundary conditions more explicit.

   from gilles@; diff by Stuart Thomas <stuart.thomas at triageforge.co.uk>

   Ensure pending asynchronous lookups do not retain dangling smtp_session
   references after teardown.
   This is mainly a robustness fix inside the privsep model: stale
   references may permit lateral effects between smtpd processes after
   another compromise.

   from gilles@; diff by Stuart Thomas <stuart.thomas at triageforge.co.uk>

   Zero the temporary envelope parsing buffers before use.
   While current parsing paths do not expose uninitialized data, keeping
   stack residue in these transient buffers unnecessarily weakens
   compartmentalization and may aid lateral movement inside the privsep

    [24 lines not shown]
VersionDeltaFile
1.444.2.2+16-1usr.sbin/smtpd/smtp_session.c
1.10.16.1+5-3usr.sbin/smtpd/crypto.c
1.69.8.1+5-1usr.sbin/smtpd/queue_backend.c
1.250.4.1+4-1usr.sbin/smtpd/lka.c
1.47.2.2+3-1usr.sbin/smtpd/mproc.c
+33-75 files

LLVM/project dbeea29llvm/lib/ObjCopy/DXContainer DXContainerObjcopy.cpp, llvm/test/tools/llvm-objcopy/DXContainer dump-section.yaml copy-headers.yaml

[llvm-objcopy] Strip header from DXContainer's ILDB part during `--dump-section` (#198578)

This strips the header from ILDB part of DXContainer during
`llvm-objcopy --dump-section`, so that the output contains bitcode only.
DeltaFile
+20-220llvm/test/tools/llvm-objcopy/DXContainer/dump-section.yaml
+12-3llvm/test/tools/llvm-objcopy/DXContainer/copy-headers.yaml
+1-1llvm/lib/ObjCopy/DXContainer/DXContainerObjcopy.cpp
+33-2243 files