LLVM/project 4564e38 — orc-rt/lib/bedrock/sys/windows SocketConnector.cpp, orc-rt/tools/ogre CMakeLists.txt

[orc-rt] add stub for windows socket support. (#226855)
DeltaFile
+29-0orc-rt/lib/bedrock/sys/windows/SocketConnector.cpp
+1-0orc-rt/tools/ogre/CMakeLists.txt
+30-02 files

LLVM/project a98dcad — llvm/include/llvm/ADT DenseMap.h, llvm/utils lldbDataFormatters.py

[ADT] Extract DenseMapStorage from DenseMap (NFC) (#226664)

This patch extracts the bucket and occupancy storage management from
DenseMap into a new helper class, densemap::detail::DenseMapStorage,
and updates DenseMap to use it via composition.

DenseMapBase::Rep is also moved to densemap::detail::StorageRep so
that DenseMapStorage::getRep() can return it directly.

This is part of the effort to replace CRTP in DenseMapBase with
composition (see #168255).  I'm planning to post a similar patch for
SmallDenseMap before actually removing CRTP.
DeltaFile
+110-73llvm/include/llvm/ADT/DenseMap.h
+8-5llvm/utils/lldbDataFormatters.py
+6-6llvm/utils/LLVMVisualizers/llvm.natvis
+4-3llvm/utils/gdb-scripts/prettyprinters.py
+128-874 files

LLVM/project e3576a8 — clang/include/clang/CIR/Dialect/IR CIROps.td

[CIR] Support type deduction builder for BinaryFPToFPBuiltinOp

For external consumer, it would be easier to have constructor without
type parameter. As a result, we add a new builder, which can deduct type
from lhs directly.

As emitBinaryFPBuiltin is the only consumer for CIR Codegen, it is fine
for internal usage.
DeltaFile
+3-0clang/include/clang/CIR/Dialect/IR/CIROps.td
+3-01 files

LLVM/project b1f6690 — flang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Integration/OpenMP scope-allocate-clause.f90

[flang][OpenMP] Support allocate clauses on scope constructs (#221229)

Flang already lowers OpenMP 5.2 `allocate` clauses on `scope` constructs
to `omp.scope`, but LLVM IR translation previously rejected them.

This change maps allocation operands to their corresponding private or
firstprivate slots and reuses the existing allocator-backed
private-storage and OpenMPIRBuilder allocation/free paths.

Support is currently limited to host-side fixed-size intrinsic scalar
private and firstprivate variables, including SAVE variables and
individually listed COMMON-block members. Arrays, descriptors, pointers,
allocatables, derived types, named COMMON-block list items, and
target/device allocation remain unsupported.
DeltaFile
+303-0mlir/test/Target/LLVMIR/openmp-scope-allocate-clause.mlir
+225-0flang/test/Integration/OpenMP/scope-allocate-clause.f90
+81-69flang/lib/Lower/OpenMP/OpenMP.cpp
+90-43mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+73-0mlir/test/Dialect/OpenMP/invalid.mlir
+62-1mlir/test/Target/LLVMIR/openmp-allocate-clause.mlir
+834-1139 files not shown
+992-12915 files

LLVM/project bebb7fe — clang/include/clang/AST APValue.h CharUnits.h, clang/lib/AST ASTContext.cpp APValue.cpp

[clang][NFC] Pass/Return `CharUnits` by value (#226115)

`CharUnits` is just an `int64_t`, but passed around by const reference
for some reason.

Also update the `CharUnits` documentation since we touch most of the
lines anyway (due to clang-format).
DeltaFile
+161-195clang/include/clang/AST/CharUnits.h
+13-15clang/include/clang/AST/APValue.h
+5-5clang/lib/AST/ExprConstant.cpp
+3-4clang/lib/AST/APValue.cpp
+1-1clang/lib/AST/ASTContext.cpp
+183-2205 files

LLVM/project e807164 — clang/include/clang/CIR/Dialect/IR CIROps.td

[CIR] Support type deduction builder for BinaryFPToFPBuiltinOp

For external consumer, it would be easier to have constructor without
type parameter. As a result, we add a new builder, which can deduct type
from lhs directly.

As emitBinaryFPBuiltin is the only consumer for CIR Codegen, it is fine
for internal usage.
DeltaFile
+4-1clang/include/clang/CIR/Dialect/IR/CIROps.td
+4-11 files

LLVM/project b1f5907 — llvm/tools/llvm-jitlink llvm-jitlink.cpp

[llvm-jitlink] Call __orc_rt_run_program_wrapper through a Proxy (#226859)

Replace runWithRuntime's callSPSWrapper call with a Proxy.
DeltaFile
+28-13llvm/tools/llvm-jitlink/llvm-jitlink.cpp
+28-131 files

LLVM/project c52392a — clang/lib/AST ExprConstant.cpp, clang/lib/AST/ByteCode Opcodes.td Interp.h

[Clang][ExprConst] Drop PRValue for nothrow new (#226753)

A user defined operator new can accept prvalue for nothrow. However, it
should not be a ConstExpr. Early returns by
isUsableAsGlobalAllocationFunctionInConstantEvaluation instead of doing
LValue evaluation.
Also, move CheckPlacement new logic into new OpCode. This decouples
checking from Interp.cpp to Compiler.cpp.
DeltaFile
+33-38clang/lib/AST/ByteCode/Interp.cpp
+24-18clang/lib/AST/ExprConstant.cpp
+29-0clang/test/SemaCXX/new-nothrow-by-value.cpp
+11-9clang/lib/AST/ByteCode/Compiler.cpp
+1-0clang/lib/AST/ByteCode/Opcodes.td
+1-0clang/lib/AST/ByteCode/Interp.h
+99-656 files

LLVM/project fb72006 — orc-rt/test/regression lit.cfg.py README.md, orc-rt/test/regression/languages/c return-zero.c lit.local.cfg

[orc-rt] Rename lit %{jit} substitution to %{obj-jit}. (#226867)

This substitution jit-loads object files via llvm-jitlink. Future tests,
e.g. for lazy compilation, may want to JIT from other representations
and will need different substitutions. Rename now to make the intent
clear and save us renaming later.
DeltaFile
+5-5orc-rt/test/regression/README.md
+3-3orc-rt/test/regression/lit.cfg.py
+1-1orc-rt/test/regression/object-formats/mach-o/arm64/return-zero.s
+1-1orc-rt/test/regression/object-formats/lit.local.cfg
+1-1orc-rt/test/regression/languages/c/return-zero.c
+1-1orc-rt/test/regression/languages/c/lit.local.cfg
+12-121 files not shown
+13-137 files

LLVM/project 3e36b02 — llvm/utils/gn/secondary/libcxx/include BUILD.gn

[gn build] Port 7e91ef5d6aea (#226869)
DeltaFile
+1-0llvm/utils/gn/secondary/libcxx/include/BUILD.gn
+1-01 files

LLVM/project af39a01 — llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysis/Analyses BUILD.gn, llvm/utils/gn/secondary/clang/unittests/ScalableStaticAnalysis BUILD.gn

[gn build] Port ea0493b90c03 (#226870)
DeltaFile
+1-0llvm/utils/gn/secondary/clang/unittests/ScalableStaticAnalysis/BUILD.gn
+1-0llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysis/Analyses/BUILD.gn
+2-02 files

LLVM/project 6bc9070 — clang/lib/Sema SemaOverload.cpp

[clang] clang-format two constructors (#226737)

I'd like to change these two in a patch, and the diff looks a bit
confusing since they aren't formatted yet. So format them in a prep
commit to make the diff clearer.

No behavior change.
DeltaFile
+12-17clang/lib/Sema/SemaOverload.cpp
+12-171 files

LLVM/project 372dc97 — libcxx/include/__format buffer.h, libcxx/test/std/utilities/format/format.functions bug_154670.pass.cpp

[libc++][format] Don't leave the output buffer full after a bulk write (#226791)

__output_buffer::push_back writes a code unit before it makes room, so
the buffer must always have a free one. __copy, __transform and __fill
write in chunks of the available space and could end with the buffer
full. Formatting into a back_insert_iterator of a string, vector or
deque goes through a 256 code unit buffer, so an argument or fill whose
length is a multiple of 256, followed by a literal, wrote that literal
past the end of the buffer.

Make room in a full buffer at the end of these functions, as push_back
does.

Fixes #154670
DeltaFile
+74-0libcxx/test/std/utilities/format/format.functions/bug_154670.pass.cpp
+12-0libcxx/include/__format/buffer.h
+86-02 files

LLVM/project d34c0c8 — orc-rt/test/regression lit.cfg.py, orc-rt/test/regression/jit-free-foundations check-rt-process-info.test

[orc-rt] Rename os-version substitution. (#226863)

This substitution is available and being tested on all platforms. It's
currently only populated on Darwin, but may be useful on other
platforms, so rename it to reflect its role.
DeltaFile
+2-2orc-rt/test/regression/lit.cfg.py
+1-1orc-rt/test/regression/jit-free-foundations/check-rt-process-info.test
+3-32 files

LLVM/project 795457f — llvm/include/llvm/BinaryFormat ELF.h, llvm/include/llvm/Object ELFTypes.h

[MC] Add ELF::getSymbolInfo and fix bitwise OR between enumeration types. NFC (#226860)

`ELF::STT_FILE | ELF::STB_LOCAL` puts the binding in the type bits,
which only works because STB_LOCAL is 0.

It combines enumerators from two distinct unnamed enums, which is
deprecated in C++20 and ill-formed in C++26 (P2864R2).
DeltaFile
+5-5llvm/lib/MC/ELFObjectWriter.cpp
+8-2llvm/include/llvm/BinaryFormat/ELF.h
+1-1llvm/include/llvm/Object/ELFTypes.h
+14-83 files

LLVM/project 373c54d — orc-rt/test/regression/jit-free-foundations check-rt-process-info.test, orc-rt/test/tools orc-rt-process-info-check.cpp

[orc-rt] Prefix test tool output, update test. (#226862)

Prefix the triple, page-size, and cpu-features lines of the
orc-rt-process-info-check. The prefixes can be used to ensure that the
test doesn't try to match patterns against the wrong lines.

Also relaxes the feature string check to allow an empty feature string.
DeltaFile
+3-3orc-rt/test/tools/orc-rt-process-info-check.cpp
+3-3orc-rt/test/regression/jit-free-foundations/check-rt-process-info.test
+6-62 files

LLVM/project cef4b65 — llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU llvm.amdgcn.dot.ll

[AMDGPU][InstCombine] Fold zero dot operands to accumulator (#225003)

Fold AMDGPU dot intrinsics when either operand is zero.

`dot(a, 0) = 0` and `dot(0, b) = 0`, so replace the intrinsic with its
accumulator.
This avoids unrelated clamp and add/sub reassociation cases.
DeltaFile
+15-30llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.dot.ll
+3-0llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+18-302 files

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

[mlir][LLVM] Add smulh and umulh intrinsics. (#226776)

Assisted-by: grok-4.7
Signed-off-by: Letu Ren <fantasquex at gmail.com>
DeltaFile
+22-0mlir/test/Target/LLVMIR/Import/intrinsic.ll
+18-0mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
+6-0mlir/test/Dialect/LLVMIR/roundtrip.mlir
+2-0mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
+48-04 files

LLVM/project dc01d7f — llvm/include/llvm/CodeGen SlotIndexes.h, llvm/lib/CodeGen SlotIndexes.cpp

[SlotIndexes] Add queries for stale indexes

An erased instruction leaves its index list entry in place, making the
index indistinguishable from a block boundary entry. Add
isBlockBoundaryIndex() and isStaleIndex() to tell the two apart, and
canonicalizeIndex() to resolve a stale index to the closest preceding
instruction's register slot, or the block start if none survives.

NFC. No caller yet. LiveDebugVariables is next.
DeltaFile
+207-0llvm/unittests/CodeGen/SlotIndexesTest.cpp
+29-0llvm/lib/CodeGen/SlotIndexes.cpp
+14-0llvm/include/llvm/CodeGen/SlotIndexes.h
+1-0llvm/unittests/CodeGen/CMakeLists.txt
+251-04 files

LLVM/project 355a730 — llvm/include/llvm/CodeGen LiveDebugVariables.h, llvm/lib/CodeGen LiveDebugVariables.cpp

[LiveDebugVariables] Repair stale SlotIndexes

The analysis keeps its indexes from before the first register allocator
until DBG_VALUEs are emitted, by which point passes in between have
erased some of the instructions they point at. Resolve them at the
start of each allocator run and before emitting.

SlotIndexes can then reclaim the entries of erased instructions without
sparing the ones held here, which would have made generated code depend
on -g. Emitted locations are unchanged, except that intervals resolving
to one position now emit a single DBG_VALUE rather than identical
consecutive ones.
DeltaFile
+137-0llvm/lib/CodeGen/LiveDebugVariables.cpp
+63-0llvm/test/DebugInfo/AMDGPU/live-debug-vars-stale-slot-indexes.ll
+8-4llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir
+8-0llvm/include/llvm/CodeGen/LiveDebugVariables.h
+5-2llvm/test/CodeGen/X86/debug-spilled-snippet.mir
+5-2llvm/test/CodeGen/X86/debug-spilled-snippet.ll
+226-81 files not shown
+233-87 files

LLVM/project a432c76 — llvm/lib/Target/X86 X86RegisterInfo.td

[X86][NFC] Simplify definition of TMM registers (#226779)
DeltaFile
+6-11llvm/lib/Target/X86/X86RegisterInfo.td
+6-111 files

LLVM/project 0b5277a — .github/workflows bazel-checks.yml

[Github] Add LLVM-libc's full-build to Bazel Checks workflow

This PR adds a job to run `bazelisk test --@llvm-project//libc:build_mode=full @llvm-project//libc/...`. It is part of an effort to support LLVM-libc's full build functionality in Bazel.
DeltaFile
+13-2.github/workflows/bazel-checks.yml
+13-21 files

LLVM/project 6e671d1 — utils/bazel/llvm-project-overlay/libc BUILD.bazel, utils/bazel/llvm-project-overlay/libc/startup/linux BUILD.bazel

[bazel] Port 4faf0ae, 15cff90, 9028ff14, 4057f8e4
DeltaFile
+76-4utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+0-15utils/bazel/llvm-project-overlay/libc/startup/linux/x86_64/BUILD.bazel
+2-2utils/bazel/llvm-project-overlay/libc/startup/linux/BUILD.bazel
+78-213 files

LLVM/project dbde142 — orc-rt/test/regression lit.cfg.py, orc-rt/test/regression/jit-free-foundations check-rt-process-info.test

[orc-rt] Fixing linux tests to enable CI (#226766)
DeltaFile
+3-0orc-rt/test/regression/lit.cfg.py
+1-1orc-rt/test/regression/jit-free-foundations/check-rt-process-info.test
+4-12 files

LLVM/project 842e152 — utils/bazel/llvm-project-overlay/libc libc_build_rules.bzl BUILD.bazel

[bazel][libc] Refactor to allow copts under full-build mode

This PR moves away from having sets of predefined groups of copts and allows just directly using them. This lets the Bazel rules more directly parallel CMake.
DeltaFile
+30-35utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+27-26utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
+57-612 files

LLVM/project 15eef13 — llvm/include/llvm/ExecutionEngine/Orc/Debugging PerfSupportPlugin.h VTuneSupportPlugin.h, llvm/lib/ExecutionEngine/Orc/Debugging VTuneSupportPlugin.cpp PerfSupportPlugin.cpp

[ORC] Call Perf/VTune support wrappers through Proxies (#226677)

Hold PerfSupportPlugin's start/end registration wrappers and
VTuneSupportPlugin's unregister wrapper as Proxy members, replacing
their callSPSWrapper calls. Each proxy is built in the constructor from
the address it already takes, so the constructor signatures are
unchanged. The Perf impl and VTune register wrappers are only used as
alloc-action tags and stay ExecutorAddrs.
DeltaFile
+36-10llvm/lib/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.cpp
+24-3llvm/lib/ExecutionEngine/Orc/Debugging/VTuneSupportPlugin.cpp
+3-5llvm/include/llvm/ExecutionEngine/Orc/Debugging/VTuneSupportPlugin.h
+3-2llvm/include/llvm/ExecutionEngine/Orc/Debugging/PerfSupportPlugin.h
+66-204 files

LLVM/project 5ad4959 — clang/include/clang/AST ASTContext.h NestedNameSpecifierBase.h, clang/lib/AST NestedNameSpecifier.cpp

[clang] Unique NamespaceAndPrefixStorages with a UniquingSet (NFC) (#224221)

This patch migrates NamespaceAndPrefixStorages in ASTContext from
llvm::FoldingSet to llvm::UniquingSet.

NamespaceAndPrefixStorage keys on a pair of const NamespaceBaseDecl *
and NestedNameSpecifier.  Switching to UniquingSet allows us to look
up storages with a typed key, eliminating FoldingSetNodeID
serialization at lookup sites and removing
NamespaceAndPrefixStorage::Profile.

Assisted-by: Antigravity
DeltaFile
+2-6clang/include/clang/AST/NestedNameSpecifierBase.h
+1-4clang/lib/AST/NestedNameSpecifier.cpp
+1-1clang/include/clang/AST/ASTContext.h
+4-113 files

LLVM/project d8b43a8 — llvm/lib/Target/Mips MipsTargetMachine.h MipsAsmPrinter.cpp, llvm/test/CodeGen/Mips target-abi-module-flag.ll

Mips: Properly account for target-abi in subtarget construction (#226721)
DeltaFile
+42-0llvm/test/CodeGen/Mips/target-abi-module-flag.ll
+6-4llvm/lib/Target/Mips/MipsTargetMachine.cpp
+6-3llvm/lib/Target/Mips/MipsSubtarget.h
+3-2llvm/lib/Target/Mips/MipsSubtarget.cpp
+2-2llvm/lib/Target/Mips/MipsAsmPrinter.cpp
+0-3llvm/lib/Target/Mips/MipsTargetMachine.h
+59-146 files

LLVM/project 521b663 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU narrow-int-to-bfloat.ll narrow-int-to-fp.ll

[AMDGPU] Price scalar integer to fp casts by source width and sign

Scalar sources between a byte and 31 bits fell to the default cost of one
while the matching vector lanes were already priced, which skewed the
difference SLP weighs a bundle against. Such a source is extended before
the conversion, and what the extension takes depends on the width, on the
sign and on whether the subtarget has SDWA and 16 bit instructions.
Sources narrower than a byte are left alone, because their vector form is
not priced either.
DeltaFile
+259-259llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-fp.ll
+45-45llvm/test/Analysis/CostModel/AMDGPU/narrow-int-to-bfloat.ll
+29-9llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+333-3133 files

LLVM/project 440959e — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp

format
DeltaFile
+1-1llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+1-11 files