LLVM/project f60650cllvm/lib/Bitcode/Reader BitcodeReader.cpp

[BitcodeReader] Lazily read and cache target triple (NFC) (#208175)

Lazily read and cache the target triple from the stream, currently meant
to be used only for upgrading AArch64 memory effects from old bitcode.

Co-authored-by: Caroline Concatto <caroline.concatto at arm.com>
DeltaFile
+24-22llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+24-221 files

LLVM/project a436e36llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp, llvm/test/CodeGen/AArch64 round-fptosi-sat-scalar.ll round-fptoui-sat-scalar.ll

[AArch64][GlobalISel] Legalization for bf16 fptosi.sat/fptoui.sat (#209378)

This is the equivalent change to #209206 for fptoi.sat.
DeltaFile
+692-163llvm/test/CodeGen/AArch64/round-fptosi-sat-scalar.ll
+692-162llvm/test/CodeGen/AArch64/round-fptoui-sat-scalar.ll
+585-145llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
+159-66llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
+2-18llvm/test/CodeGen/AArch64/bf16-instructions.ll
+6-1llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+2,136-5556 files

LLVM/project 8eb6e26openmp/runtime/src kmp_utility.cpp

[openmp] Apply a mingw/64 bit codepath to arm64ec too (#209297)

When targeting arm64ec, neither KMP_ARCH_X86_64 nor KMP_ARCH_AARCH64 is
defined.

This fixes a compilation warning when building openmp for mingw/arm64ec.
DeltaFile
+2-1openmp/runtime/src/kmp_utility.cpp
+2-11 files

LLVM/project 4d5bc90llvm/lib/CodeGen/SelectionDAG LegalizeIntegerTypes.cpp, llvm/test/CodeGen/AArch64 clmul.ll

[SelectionDAG] Improve `CLMUL` lowering for `Promote` types wider than register width (#209265)

For `ISD::CLMUL`, add a check to `PromoteIntRes_CLMUL` to take advantage
of the cross-product expansion in `ExpandIntRes_CLMUL` when possible for
`Promote` types which are wider than the register width (e.g. `i96` for
64-bit registers).
DeltaFile
+23,904-12llvm/test/CodeGen/RISCV/clmul.ll
+1,726-0llvm/test/CodeGen/X86/clmul.ll
+699-0llvm/test/CodeGen/AArch64/clmul.ll
+6-1llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+26,335-134 files

LLVM/project c4703a0llvm/lib/Transforms/Coroutines MaterializationUtils.cpp

change free to available
DeltaFile
+31-29llvm/lib/Transforms/Coroutines/MaterializationUtils.cpp
+31-291 files

LLVM/project 05b6b4forc-rt/include/orc-rt-c Logging.h, orc-rt/lib/executor Logging.cpp

[orc-rt] Add new ControllerAccess logging category. (#209380)

The orc_rt_log_Category_ControllerAccess category should be used to log
messages from ControllerAccess implementations. E.g.

  ORC_RT_LOG(Error, ControllerAccess, "connect() failed with <error>");
DeltaFile
+16-3orc-rt/test/unit/LoggingTest.cpp
+1-1orc-rt/lib/executor/Logging.cpp
+1-0orc-rt/include/orc-rt-c/Logging.h
+18-43 files

LLVM/project 5dd58c9llvm/test/Transforms/Coroutines coro-materialize-check-operands.ll

test cleanup
DeltaFile
+2-4llvm/test/Transforms/Coroutines/coro-materialize-check-operands.ll
+2-41 files

LLVM/project 1bd4601clang-tools-extra/clang-doc YAMLGenerator.cpp, clang-tools-extra/clang-doc/tool ClangDocMain.cpp

[clang-doc] Remove the YAML generator (#209350)

The original intent of the YAML generator was to package the
documentation information in a structured and reusable way. It has been
superseded by the JSON generator.
DeltaFile
+0-593clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
+0-585clang-tools-extra/clang-doc/YAMLGenerator.cpp
+0-148clang-tools-extra/test/clang-doc/yaml/templates.cpp
+0-89clang-tools-extra/test/clang-doc/yaml/builtin_types.cpp
+0-27clang-tools-extra/test/clang-doc/yaml/single-file.cpp
+2-6clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
+2-1,4488 files not shown
+6-1,46414 files

LLVM/project 6de51bellvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp, llvm/test/CodeGen/AArch64 bf16-v8-instructions.ll bf16-v4-instructions.ll

[AArch64][GlobalISel] Legalization for bf16 fptosi/fptoui. (#209206)

Similar to other operations, this makes sure we can widen bf16
fptosi/fptoui correctly, promoting the value to a f32. The vector
variants have been proven by exhaustive checking.
DeltaFile
+678-169llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
+143-65llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
+2-14llvm/test/CodeGen/AArch64/bf16-instructions.ll
+6-1llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+829-2494 files

LLVM/project bd14bd7libc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath] Support relative paths
DeltaFile
+84-3libc/test/src/stdlib/realpath_test.cpp
+16-1libc/src/stdlib/linux/realpath.cpp
+2-0libc/test/src/stdlib/CMakeLists.txt
+1-0libc/src/stdlib/linux/CMakeLists.txt
+103-44 files

LLVM/project 44a42e6clang-tools-extra/clang-tidy/misc RedundantExpressionCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Fix false positive in misc-redundant-expression with type aliases (#198085)

The `misc-redundant-expression` check previously flagged expressions as
redundant if their underlying `DeclRefExpr` pointed to the same
declaration. This caused false positives when comparing identical values
accessed through distinct type aliases.

Following Clang's diagnostic `aka` logic, this patch uses the AST
Printer to stringify and compare the `NestedNameSpecifier` and
`TemplateArguments`. This safely preserves sugared types while natively
normalizing all whitespaces and newlines, ensuring robustness against
multiline formatting changes.

Fixes #145415
DeltaFile
+46-0clang-tools-extra/test/clang-tidy/checkers/misc/redundant-expression.cpp
+39-2clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
+7-2clang-tools-extra/docs/ReleaseNotes.rst
+92-43 files

LLVM/project a70234bflang/lib/Lower CallInterface.cpp, flang/lib/Optimizer/Transforms FunctionAttr.cpp

[flang] Propagate INTENT(IN) dummy arguments as readonly (#207732)

Mark eligible `INTENT(IN)` dummy data objects with a `fir.read_only`
argument attribute during lowering, and teach `FunctionAttr` to
translate the marker to LLVM `readonly` for reference arguments when
optimizing for speed.

LLVM FunctionAttrs can infer `readonly` later in the pipeline, but this
happens too late for IPSCCP function specialization.
`FunctionSpecializer::promoteConstantStackValues` requires
`onlyReadsMemory()` before promoting constant by-reference scalar
arguments. Providing `readonly` satisfies this check and allows these
arguments to be promoted, enabling function specialization, including in
non-LTO builds.

For direct-data arguments, restrict propagation to by-reference
non-character intrinsic scalars. Ordinary arrays and derived-type
arguments are excluded because compiler-generated copy-out may write
back through a forwarded dummy argument. LLVM `readonly` does not permit

    [30 lines not shown]
DeltaFile
+175-0flang/test/Lower/dummy-argument-readonly.f90
+90-0flang/test/Transforms/function-attrs-readonly.fir
+48-0flang/test/Driver/function-attr-readonly.f90
+43-1flang/lib/Lower/CallInterface.cpp
+25-10flang/lib/Optimizer/Transforms/FunctionAttr.cpp
+25-1flang/test/Lower/call-copy-in-out.f90
+406-1217 files not shown
+447-4123 files

LLVM/project a527c6forc-rt/lib/executor Logging.cpp

[orc-rt] Statically check logging category/level name array sizes. (#209372)

Add static_asserts to trigger compilation failure if the sizes of these
arrays don't match their respective enum/macro value ranges.
DeltaFile
+7-2orc-rt/lib/executor/Logging.cpp
+7-21 files

LLVM/project 13e5986libc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath] Support relative paths
DeltaFile
+81-3libc/test/src/stdlib/realpath_test.cpp
+16-1libc/src/stdlib/linux/realpath.cpp
+2-0libc/test/src/stdlib/CMakeLists.txt
+1-0libc/src/stdlib/linux/CMakeLists.txt
+100-44 files

LLVM/project c4edd8bllvm/include/llvm/Object IRSymtab.h, llvm/test/Object/X86 irsymtab-large-common.ll irsymtab.ll

[Object] Fix irsymtab CommonSize truncation past 4 GiB (#209085)

Fixes #208669

Issue :
With -flto, Fortran COMMON blocks larger than 4 GiB were silently
miscompiled. The linker reserved only the low 32 bits of the declared
size, so stores past that boundary could segfault with no diagnostic.

Root Cause :
storage::Uncommon::CommonSize in the LTO irsymtab was stored as 32-bit
(Word). Sizes above 2^32 bytes were truncated when the symtab was
written and read back at link time.

Fix :
Widen CommonSize to 64-bit and bump irsymtab format version to 4. Added
test to verify symtab records the full size.
DeltaFile
+26-0llvm/test/Object/X86/irsymtab-large-common.ll
+5-3llvm/include/llvm/Object/IRSymtab.h
+2-2llvm/test/Object/X86/irsymtab.ll
+33-53 files

LLVM/project f18e59acompiler-rt/lib/sanitizer_common sanitizer_dl.cpp sanitizer_dl.h, compiler-rt/lib/tsan/go buildgo.sh

Revert "[compiler-rt] [sanitizer_common] Fix SIGSEGV in ForEachMappedRegion for DSOs with custom image base" (#209371)

Reverts llvm/llvm-project#206299 due to buildbot breakage
(https://github.com/llvm/llvm-project/pull/206299#issuecomment-4964804971)
DeltaFile
+0-9compiler-rt/lib/sanitizer_common/sanitizer_dl.cpp
+0-4compiler-rt/lib/sanitizer_common/sanitizer_dl.h
+1-2compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+0-3compiler-rt/lib/tsan/go/buildgo.sh
+0-2compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cpp
+1-0compiler-rt/test/sanitizer_common/TestCases/Linux/dlopen_image_base.c
+2-206 files

LLVM/project 0b2ac29libc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp

[libc][realpath] Validate path components.

This PR updates `realpath` to validate paths and return `ENOTDIR` or `ENOENT` according to https://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html.

This PR also bumps the memory limit in `HermeticTestUtils.cpp`. The realpath unit tests allocate quite a few strings. Since memory in hermetic tests is never free'd, the unit test quickly reaches the limit.
DeltaFile
+49-0libc/test/src/stdlib/realpath_test.cpp
+34-0libc/src/stdlib/linux/realpath.cpp
+5-0libc/src/stdlib/linux/CMakeLists.txt
+88-03 files

LLVM/project 0366b21libc/test/UnitTest HermeticTestUtils.cpp, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath][test] Create test files/directories

Follow-up PRs will add path validation etc to `realpath`, which will require paths to exist in the filesystem.
DeltaFile
+233-13libc/test/src/stdlib/realpath_test.cpp
+10-0libc/test/src/stdlib/CMakeLists.txt
+1-1libc/test/UnitTest/HermeticTestUtils.cpp
+244-143 files

LLVM/project a9927a9llvm/lib/Target/WebAssembly WebAssemblyCodeGenPassBuilder.cpp WebAssemblyReduceToAnyAllTrue.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+256-0llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+125-104llvm/lib/Target/WebAssembly/WebAssemblyReduceToAnyAllTrue.cpp
+214-0llvm/lib/Target/WebAssembly/WebAssemblyCoalesceFeaturesAndStripAtomics.cpp
+23-188llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+108-99llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
+109-17llvm/lib/Target/WebAssembly/WebAssembly.h
+835-40812 files not shown
+1,116-50018 files

LLVM/project 7495d4ellvm/lib/Target/WebAssembly WebAssemblyCodeGenPassBuilder.cpp WebAssemblyReduceToAnyAllTrue.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+256-0llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+125-104llvm/lib/Target/WebAssembly/WebAssemblyReduceToAnyAllTrue.cpp
+214-0llvm/lib/Target/WebAssembly/WebAssemblyCoalesceFeaturesAndStripAtomics.cpp
+108-99llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
+20-185llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+99-15llvm/lib/Target/WebAssembly/WebAssembly.h
+822-40311 files not shown
+1,079-48817 files

LLVM/project cc926b0libc/test/UnitTest HermeticTestUtils.cpp, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath][test] Create test files/directories

Follow-up PRs will add path validation etc to `realpath`, which will require paths to exist in the filesystem.
DeltaFile
+233-13libc/test/src/stdlib/realpath_test.cpp
+10-0libc/test/src/stdlib/CMakeLists.txt
+1-1libc/test/UnitTest/HermeticTestUtils.cpp
+244-143 files

LLVM/project ca213c5libc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp

[libc][realpath] Validate path components.

This PR updates `realpath` to validate paths and return `ENOTDIR` or `ENOENT` according to https://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html.

This PR also bumps the memory limit in `HermeticTestUtils.cpp`. The realpath unit tests allocate quite a few strings. Since memory in hermetic tests is never free'd, the unit test quickly reaches the limit.
DeltaFile
+49-0libc/test/src/stdlib/realpath_test.cpp
+34-0libc/src/stdlib/linux/realpath.cpp
+5-0libc/src/stdlib/linux/CMakeLists.txt
+88-03 files

LLVM/project 910c1ealibc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath] Support relative paths
DeltaFile
+87-3libc/test/src/stdlib/realpath_test.cpp
+16-1libc/src/stdlib/linux/realpath.cpp
+2-0libc/test/src/stdlib/CMakeLists.txt
+1-0libc/src/stdlib/linux/CMakeLists.txt
+106-44 files

LLVM/project 67f5b53lld/test/ELF retain-symbols-file.s

[ELF,test] Improve retain-symbols-file.s (#209366)
DeltaFile
+61-41lld/test/ELF/retain-symbols-file.s
+61-411 files

LLVM/project 81752bdlibc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath] Support relative paths
DeltaFile
+87-3libc/test/src/stdlib/realpath_test.cpp
+16-1libc/src/stdlib/linux/realpath.cpp
+2-0libc/test/src/stdlib/CMakeLists.txt
+1-0libc/src/stdlib/linux/CMakeLists.txt
+106-44 files

LLVM/project 7246ceclibc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp

[libc][realpath] Validate path components.

This PR updates `realpath` to validate paths and return `ENOTDIR` or `ENOENT` according to https://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html.

This PR also bumps the memory limit in `HermeticTestUtils.cpp`. The realpath unit tests allocate quite a few strings. Since memory in hermetic tests is never free'd, the unit test quickly reaches the limit.
DeltaFile
+49-0libc/test/src/stdlib/realpath_test.cpp
+34-0libc/src/stdlib/linux/realpath.cpp
+5-0libc/src/stdlib/linux/CMakeLists.txt
+88-03 files

LLVM/project 8b852dalibc/test/UnitTest HermeticTestUtils.cpp, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath][test] Create test files/directories

Follow-up PRs will add path validation etc to `realpath`, which will require paths to exist in the filesystem.
DeltaFile
+229-13libc/test/src/stdlib/realpath_test.cpp
+11-2libc/test/src/stdlib/CMakeLists.txt
+1-1libc/test/UnitTest/HermeticTestUtils.cpp
+241-163 files

LLVM/project b959f78llvm/utils/lit/lit/builtin_commands cat.py

Add text file support for z/OS back in (#209259)

Support for auto conversion of text files was added to cat.py in
https://github.com/llvm/llvm-project/pull/90128. That was accidently
removed in https://github.com/llvm/llvm-project/pull/204711 while
removing some old win32 code. This adds the z/OS support back in.
DeltaFile
+23-8llvm/utils/lit/lit/builtin_commands/cat.py
+23-81 files

LLVM/project b15f932flang/test/Evaluate fold-kind-logical.f90 fold-kind-zero-size.f90, flang/test/Lower/HLFIR array-ctor-character-kind.f90

[flang] Add kind-preservation regression tests (#208760)

These tests pin currently-correct behaviors where the KIND type
parameter of a result must be preserved by constant folding, semantics,
and lowering. They all pass at head; their purpose is to guard against
silent kind loss during future refactoring of the Evaluate library's
type-parameterized machinery (see the discussion on PR #206907, where an
experimental rewrite passed check-flang while dropping kinds in several
places).

Folded LOGICAL operations: `.NOT./.AND./.OR./.EQV./.NEQV.` keep their
operand kind; ANY/ALL/PARITY and logical DOT_PRODUCT results have the
MASK/argument kind (F2023 16.9.14/16.9.16/16.9.148), including for empty
masks where there is no element value to take a kind from; MERGE and
TRANSFER keep the TSOURCE/MOLD kind; STORAGE_SIZE of folded
non-default-kind logicals folds to the right value; the default BOUNDARY
fill element of a folded EOSHIFT has the array's kind; relational
results are default logical regardless of operand kinds; and generic
resolution over LOGICAL kinds is unchanged by folding

    [18 lines not shown]
DeltaFile
+43-0flang/test/Evaluate/fold-kind-logical.f90
+32-0flang/test/Lower/HLFIR/array-ctor-character-kind.f90
+29-0flang/test/Semantics/modfile84.F90
+28-0flang/test/Evaluate/fold-kind-zero-size.f90
+14-0flang/test/Evaluate/fold-kind-substring.f90
+13-0flang/test/Semantics/substring-literal-kind.f90
+159-01 files not shown
+172-07 files

LLVM/project 368d765libunwind/test .clang-format

[libunwind][test] Add .clang-format

Borrow from `libcxx/test/.clang-format` to avoid `clang-format`
suggestions that are incompatible with `FileCheck`.
DeltaFile
+4-0libunwind/test/.clang-format
+4-01 files