LLVM/project f8db5dbflang/include/flang/Optimizer/Dialect FIROps.td, flang/lib/Optimizer/Dialect FIROps.cpp

[flang] Fix fir.call setCalleeFromCallable (#187124)

The CallOpInterface setCalleeFromCallable allows either value or
SymbolRef to be passed in. However, the implementation showed an issue
because while it was able to set attribute, it would fall-through and
also try to set value.

This PR improves the implementation to handle updating the callee even
when switching modes (direct vs indirect) and adds testing for these
APIs.
DeltaFile
+414-0flang/unittests/Optimizer/FIRCallInterfaceTest.cpp
+50-0flang/lib/Optimizer/Dialect/FIROps.cpp
+1-7flang/include/flang/Optimizer/Dialect/FIROps.td
+1-0flang/unittests/Optimizer/CMakeLists.txt
+466-74 files

LLVM/project ba231aaclang-tools-extra/clang-doc/assets clang-doc-mustache.css

[clang-doc] Enclose documented entities in a card (#185121)

This patch adds a card that encompasses the whole documented entity
instead of just the description. This helps to visually separate the
documentation which was previously more difficult to distinguish. The
description card is also changed to only show a left border to create
less visual noise within the card.

The light theme colors are also changed slightly to not be completely
white.
DeltaFile
+11-8clang-tools-extra/clang-doc/assets/clang-doc-mustache.css
+11-81 files

LLVM/project 20a6cf9libsycl/src/detail/offload offload_utils.cpp

default -> specific switch case

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+1-1libsycl/src/detail/offload/offload_utils.cpp
+1-11 files

LLVM/project d54da68llvm/test/tools/llvm-remarkutil/filter filter-exclude.test, llvm/tools/llvm-remarkutil RemarkFilter.cpp

[llvm-remarkutil] filter: Add --exclude flag (#187163)

Add --exclude to invert filter behavior, keeping all remarks excluding
those matching the filter.

Pull Request: https://github.com/llvm/llvm-project/pull/187163
DeltaFile
+9-0llvm/test/tools/llvm-remarkutil/filter/filter-exclude.test
+8-1llvm/tools/llvm-remarkutil/RemarkFilter.cpp
+17-12 files

LLVM/project 7166468flang/lib/Optimizer/OpenACC/Transforms ACCUseDeviceCanonicalizer.cpp, flang/test/Fir/OpenACC use-device-canonicalizer.mlir

[flang][acc] Handle deduplicated use_device (part 2) (#187305)

After https://github.com/llvm/llvm-project/pull/186855 there was still
one additional part of the pass that assumed it was able to erase
acc.use_device. Thus extend the same solution and add test.
DeltaFile
+39-0flang/test/Fir/OpenACC/use-device-canonicalizer.mlir
+8-3flang/lib/Optimizer/OpenACC/Transforms/ACCUseDeviceCanonicalizer.cpp
+47-32 files

LLVM/project 731969clibsycl/include/sycl/__impl usm_functions.hpp

add more articles

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+8-8libsycl/include/sycl/__impl/usm_functions.hpp
+8-81 files

LLVM/project c0ce28flibsycl/include/sycl/__impl usm_functions.hpp, libsycl/src/detail/offload offload_utils.cpp offload_utils.hpp

fix comments

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+42-40libsycl/include/sycl/__impl/usm_functions.hpp
+4-5libsycl/src/detail/offload/offload_utils.cpp
+3-3libsycl/src/detail/offload/offload_utils.hpp
+49-483 files

LLVM/project b11a603mlir/include/mlir/Dialect/Transform/Interfaces TransformInterfaces.h, mlir/test/Dialect/Transform ops-invalid.mlir

[mlir][Transform] Fix crash in SequenceOp::getEffects when body region is empty (#185063)

When walking operations post-order and erasing blocks, the inner body
block of a nested transform.sequence can be erased while the outer op is
still alive. If printAsOperand is called on the outer block at that
point, it triggers verification, which calls SequenceOp::getEffects ->
getPotentialTopLevelEffects -> getBodyBlock() -> Region::front() on an
empty region, causing an assertion failure in ilist_iterator
('\!NodePtr->isKnownSentinel()').

Fix by checking that the body region is non-empty before passing its
front block to detail::getPotentialTopLevelEffects in the
PossibleTopLevelTransformOpTrait.

Fixes #60213

Assisted-by: Claude Code
DeltaFile
+13-0mlir/test/Dialect/Transform/ops-invalid.mlir
+4-1mlir/include/mlir/Dialect/Transform/Interfaces/TransformInterfaces.h
+17-12 files

LLVM/project d8545a4llvm/lib/Transforms/Scalar LoopFuse.cpp

[LoopFusion] Use DA by default for dependence analysis (#187309)

Loop Fusion includes some internal dependence analysis code. Currently
the pass uses both DA and internal code and chooses the best result. The
goal is to use DA for all dependence analysis requirements in fusion.
This patch changes the default value. Removing the code will be done
separately later.
DeltaFile
+1-1llvm/lib/Transforms/Scalar/LoopFuse.cpp
+1-11 files

LLVM/project 253616dlibc CMakeLists.txt, libc/cmake/modules LibcConfig.cmake

[libc][docs] Generate configure.rst in the build directory (#187266)

generate_config_doc() was writing configure.rst directly into the source
tree, which fails when building from a read-only source directory (e.g.
when the source is on a read-only filesystem or in a packaging
environment).

The Sphinx build in libc/docs/CMakeLists.txt already copies static .rst
files from the source tree into the build tree so that generated docs
don't pollute the source directory. Move configure.rst generation to
follow this same pattern by writing to LIBC_BUILD_DIR/docs/ instead of
LIBC_SOURCE_DIR/docs/.

This also removes configure.rst from the checked-in source tree, since
it was fully generated content that was being regenerated on every CMake
configure anyway.
DeltaFile
+0-80libc/docs/configure.rst
+1-1libc/CMakeLists.txt
+2-0libc/cmake/modules/LibcConfig.cmake
+3-813 files

LLVM/project 81d3f04llvm/test/Transforms/LoopVectorize/ARM mve-reg-pressure-spills.ll

[NFC] Fix mve-reg-pressure-spills.ll test (#187316)

This test needs a REQUIRES: asserts, as it uses -debug-only.
DeltaFile
+1-0llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll
+1-01 files

LLVM/project 6e86ee2clang/include/clang/Basic Module.h, clang/include/clang/Serialization ModuleManager.h

[clang][modules] Stop uniquing implicit modules via `FileEntry` (#185765)

This PR changes how `ModuleManager` deduplicates module files.

Previously, `ModuleManager` used `FileEntry` for assigning unique
identity to module files. This works fine for explicitly-built modules
because they don't change during the lifetime of a single Clang
instance. For implicitly-built modules however, there are two issues:
1. The `FileEntry` objects are deduplicated by `FileManager` based on
the inode number. Some file systems reuse inode numbers of previously
removed files. Because implicitly-built module files are rapidly removed
and created, this deduplication breaks and compilations may fail
spuriously when inode numbers are recycled during the lifetime of a
single Clang instance.
2. The first thing `ModuleManager` does when loading a module file is
consulting the `FileManager` and checking the file size and modification
time match the expectation of the importer. This is done even when such
module file already lives in the `InMemoryModuleCache`. This introduces
racy behavior into the mechanism that explicitly tries to solve race

    [14 lines not shown]
DeltaFile
+96-97clang/lib/Serialization/ModuleManager.cpp
+126-0clang/include/clang/Basic/Module.h
+60-0clang/test/Modules/relative-module-cache.c
+16-28clang/include/clang/Serialization/ModuleManager.h
+21-19clang/lib/Serialization/ASTReader.cpp
+21-18clang/lib/Frontend/CompilerInstance.cpp
+340-16227 files not shown
+445-23533 files

LLVM/project 4e500bdllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer reduced-gathered-vectorized.ll consecutive-access.ll

Revert "[SLP] Loop aware cost model/tree building"

This reverts commit 6261cb4487f153c599a040d7a77524561b520240 to try to
fix compile time regressions
DeltaFile
+28-329llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+92-69llvm/test/Transforms/SLPVectorizer/RISCV/buildvector-all-external-scalars.ll
+52-41llvm/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
+20-61llvm/test/Transforms/SLPVectorizer/reduced-gathered-vectorized.ll
+52-24llvm/test/Transforms/SLPVectorizer/consecutive-access.ll
+29-35llvm/test/Transforms/SLPVectorizer/X86/parent-node-split-non-schedulable.ll
+273-55929 files not shown
+450-71235 files

LLVM/project 2caba08compiler-rt/include/sanitizer asan_interface.h, compiler-rt/lib/asan asan_poisoning.cpp

[ASan] Fix overflow and last byte handling in __asan_region_is_poisoned (#183900)

__asan_region_is_poisoned() uses an exclusive end address
(end = beg + size) to validate the region [beg, end) and to compute
the aligned inner shadow region. This causes correctness issue
near memory range upper boundary and could trigger address space
overflow on 32-bit targets.

1. Incorrect handling of the last byte of a memory range

   The implementation checks AddrIsInMem(end) instead of the last
   application byte (end - 1). For regions ending at the last byte
   of Low/Mid/HighMem (e.g. __asan_region_is_poisoned(kHighMemEnd, 1)),
   this returns end (kHighMemEnd + 1) instead of the original 
   pointer. This behavior is inconsistent with the function’s 
   semantics and with __asan_address_is_poisoned().

2) address space overflow and invalid shadow range


    [27 lines not shown]
DeltaFile
+21-11compiler-rt/lib/asan/tests/asan_noinst_test.cpp
+11-9compiler-rt/lib/asan/asan_poisoning.cpp
+1-1compiler-rt/include/sanitizer/asan_interface.h
+1-1compiler-rt/test/asan/TestCases/wild_pointer.cpp
+34-224 files

LLVM/project b17db27clang/docs ReleaseNotes.rst, clang/lib/Headers endian.h CMakeLists.txt

[clang][Headers] add endian.h (#186032)

POSIX.1-2024 defines a header called
`endian.h`` which contains macros and helpers for
handling byte order conversions.

Unfortunately it is not available on all platforms, however LLVM libc
has a useful endian.h
implementation that is essentially only casts and
builtins.

This PR draws on that implementation to add a
clang header so applications on
platforms without it can make use of this header.
The clang header forwards to the system header if
available, so existing usages are not affected.
DeltaFile
+74-0clang/lib/Headers/endian.h
+42-0clang/test/Headers/endian.c
+2-0clang/docs/ReleaseNotes.rst
+1-0clang/lib/Headers/CMakeLists.txt
+119-04 files

LLVM/project 1c31c92libsycl Doxyfile

remove doxyfile, added by accident

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+0-2,863libsycl/Doxyfile
+0-2,8631 files

LLVM/project 9dd2e37llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/RISCV pr186969.ll

[DAGCombiner] Move the XORHandle in rebuildSetCC inside the while loop. (#187189)

If N was changed on the previous loop iteration, we need the handle to
point at the new N.

Fixes #186969.
DeltaFile
+54-0llvm/test/CodeGen/RISCV/pr186969.ll
+1-1llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+55-12 files

LLVM/project 9b0c2a1llvm/test/Transforms/LoopVectorize predicator.ll

[NFC] Update `LoopVectorize/predicator.ll` test (#187125)

Align it with the style of `LoopVectorize/VPlan/predicator.ll`:

* Move ascii-graphs close to IR to avoid scrolling through CHECKs when
comparing the picture and actual IR
* Rename `%cN` to ensure that `bbN` branches on `%cN`
DeltaFile
+42-45llvm/test/Transforms/LoopVectorize/predicator.ll
+42-451 files

LLVM/project 7a9299fllvm/lib/Target/RISCV RISCVInstrInfoZb.td RISCVInstrInfoXTHead.td

[RISCV] Rename add_like pattern -> riscv_add_like (#187306)

Rename to riscv_add_like to discriminate from generic pattern in a future patch

Ideally we'd make the riscv patterns generic but they're currently using value tracking and I'm not sure if we want to that generically?
DeltaFile
+18-18llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
+6-6llvm/lib/Target/RISCV/RISCVInstrInfoXTHead.td
+4-4llvm/lib/Target/RISCV/RISCVInstrInfo.td
+1-1llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
+29-294 files

LLVM/project 16585afmlir/lib/Dialect/OpenACC/IR OpenACC.cpp, mlir/unittests/Dialect/OpenACC OpenACCOpsTest.cpp

[mlir][acc] Fix bindNameValue for RoutineOp (#187307)

If the routine op only has one of the string or id attributes, the API
was crashing since it was attempting to search in both. Guard each
search individually.
DeltaFile
+40-0mlir/unittests/Dialect/OpenACC/OpenACCOpsTest.cpp
+14-15mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+54-152 files

LLVM/project 55cee50llvm/lib/Target/AMDGPU VOP1Instructions.td AMDGPULegalizerInfo.cpp, llvm/test/CodeGen/AMDGPU fptosi-sat-vector.ll fptoui-sat-vector.ll

[AMDGPU] Use native instructions for f16 to u16/i16 saturated conversion (#186769)

This addresses one of the limitations of #174726 by directly selecting
`v_cvt_[u16/i16]_f16` instructions for conversion between 16-bit types,
as they already handle saturation internally.
DeltaFile
+988-280llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
+885-248llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
+298-27llvm/test/CodeGen/AMDGPU/fptosi-sat-scalar.ll
+184-18llvm/test/CodeGen/AMDGPU/fptoui-sat-scalar.ll
+23-0llvm/lib/Target/AMDGPU/VOP1Instructions.td
+3-0llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+2,381-5731 files not shown
+2,384-5737 files

LLVM/project 13a093bllvm/lib/Transforms/Vectorize VPlanRecipes.cpp

[VPlan] Compute cost for predicated loads/stores to invariant address. (#181572)

Update VPReplicateRecipe::computeCost to compute the cost for stores to
invariant addresses only masked by the header mask.

This matches the legacy cost model logic, but it is slightly odd that
the legacy cost model only seems to do this for stores predicated by the
header mask (i.e. tail-folding and not executed conditionally
otherwise). This is probably something we want to re-evaluate
eventually.

PR: https://github.com/llvm/llvm-project/pull/181572
DeltaFile
+36-3llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+36-31 files

LLVM/project 1974f2allvm/test/CodeGen/AMDGPU dynamic_stackalloc.ll llvm.amdgcn.reduce.sub.ll, llvm/test/CodeGen/AMDGPU/GlobalISel fshr.ll

Rebase

Created using spr 1.3.8-wip
DeltaFile
+2,113-1,374llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
+1,412-1,169llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+1,096-146llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.sub.ll
+1,047-142llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.add.ll
+968-165llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umax.ll
+968-165llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umin.ll
+7,604-3,1611,502 files not shown
+35,177-13,2941,508 files

LLVM/project 1d9282cllvm/test/CodeGen/AMDGPU dynamic_stackalloc.ll llvm.amdgcn.reduce.sub.ll, llvm/test/CodeGen/AMDGPU/GlobalISel fshr.ll

[spr] changes introduced through rebase

Created using spr 1.3.8-wip

[skip ci]
DeltaFile
+2,113-1,374llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
+1,412-1,169llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+1,096-146llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.sub.ll
+1,047-142llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.add.ll
+968-165llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umax.ll
+968-165llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umin.ll
+7,604-3,1611,502 files not shown
+35,177-13,2941,508 files

LLVM/project 1b8db06lldb/include/lldb/Core Module.h, lldb/source/Core Module.cpp

[PrefixMap] Teach lldb to auto-load compilation-prefix-map.json (#187145)

Add a LoadCompilationPrefixMap() helper in SymbolFile::FindPlugin that
walks up from the symbol file's directory looking for a
compilation-prefix-map.json file. When found, each key→value entry is
applied to the module's source path mapping list, allowing LLDB to
resolve source file paths that were rewritten by -fdebug-prefix-map at
build time without requiring manual `settings set target.source-map`.

The JSON file format maps fake paths (as written into debug info) back
to their real on-disk counterparts:
  { "/fake/srcdir": "/real/srcdir" }

Directory results are cached so the filesystem is walked at most once
per unique directory across all modules loaded in a session.

Also apply the module's source path remappings in
SymbolFileDWARFDebugMap::ParseCompileUnitAtIndex when constructing
compile units from N_SO stabs. This mirrors what MakeAbsoluteAndRemap

    [5 lines not shown]
DeltaFile
+63-3lldb/source/Core/Module.cpp
+43-0lldb/test/API/functionalities/compilation-prefix-map/TestCompilationPrefixMap.py
+16-2lldb/include/lldb/Core/Module.h
+11-0lldb/source/Symbol/SymbolFile.cpp
+9-0lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
+9-0lldb/test/API/functionalities/compilation-prefix-map/Makefile
+151-51 files not shown
+156-57 files

LLVM/project 9418cdbllvm/test/tools/llvm-remarkutil filter.test, llvm/test/tools/llvm-remarkutil/Inputs filter.yaml

[llvm-remarkutil] filter: Support multiple input files (#187162)

Refactor filter into a FilterTool class that can process multiple input
files sequentially and emits the remarks into a single output file.

Pull Request: https://github.com/llvm/llvm-project/pull/187162
DeltaFile
+84-37llvm/tools/llvm-remarkutil/RemarkFilter.cpp
+69-0llvm/test/tools/llvm-remarkutil/filter/filter.test
+0-69llvm/test/tools/llvm-remarkutil/filter.test
+40-0llvm/test/tools/llvm-remarkutil/filter/filter-multi.test
+0-28llvm/test/tools/llvm-remarkutil/Inputs/filter.yaml
+28-0llvm/test/tools/llvm-remarkutil/filter/Inputs/filter.yaml
+221-1342 files not shown
+235-1378 files

LLVM/project 63b44declang/lib/AST/ByteCode InterpFrame.h InterpFrame.cpp

[clang][bytecode] Allocate local variables in `InterpFrame` tail storage (#185835)

Instead of heap-allocating an `InterpFrame` and then immediately
heap-allocating more space for the local variables, do only one
heap-allocation and use tail storage for the local variables.
We already know how many bytes we need to for the tail storage after
all.
This also makes `InterpFrame` a little smaller since we don't need to
save an explicit pointer for the local variable memory.






For an artificial test case doing lots of function calls with local
variables like:
```c++
constexpr int plus(int a, int b) {

    [27 lines not shown]
DeltaFile
+39-15clang/lib/AST/ByteCode/InterpFrame.h
+23-21clang/lib/AST/ByteCode/InterpFrame.cpp
+13-15clang/lib/AST/ByteCode/Function.h
+9-15clang/lib/AST/ByteCode/Compiler.cpp
+15-7clang/lib/AST/ByteCode/Context.cpp
+13-6clang/lib/AST/ByteCode/Interp.cpp
+112-7910 files not shown
+144-11616 files

LLVM/project f609344llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.ds.sub.gs.reg.rtn.ll llvm.amdgcn.ds.add.gs.reg.rtn.ll

AMDGPU/GlobalISel: RegBankLegalize rules for ds_add/sub_gs_reg_rtn (#185991)
DeltaFile
+27-1llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.sub.gs.reg.rtn.ll
+27-1llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.add.gs.reg.rtn.ll
+5-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+59-23 files

LLVM/project 0f5d8a9utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[Bazel] Fixes dd9dd1d (#187310)

This fixes dd9dd1d2f39c8feb650de732540198b96240e4ff.
DeltaFile
+1-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+1-01 files

LLVM/project 4c745dfmlir/lib/Target/LLVMIR/Dialect/LLVMIR LLVMToLLVMIRTranslation.cpp, mlir/lib/Target/LLVMIR/Dialect/OpenACC OpenACCToLLVMIRTranslation.cpp

[MLIR][LLVMIR][NFC] Drop uses of BranchInst (#187304)
DeltaFile
+10-14mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+2-2mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+1-1mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp
+13-173 files