LLVM/project 664e704flang/include/flang/Semantics semantics.h, flang/lib/Semantics resolve-names.cpp

[flang] Add ability to implicitly use a module (#207824)

Add parser and semantics plumbing for configured implicit USE modules,
reusing
the normal USE-association path so public symbols and common blocks are
imported
consistently.
DeltaFile
+64-21flang/lib/Semantics/resolve-names.cpp
+26-0flang/test/Driver/bbc-implicit-use-module.f90
+8-0flang/include/flang/Semantics/semantics.h
+5-0flang/tools/bbc/bbc.cpp
+103-214 files

LLVM/project 5c715d5clang-tools-extra/docs ReleaseNotes.rst, clang/lib/Tooling Tooling.cpp

[Tooling] Preserve backslashes in POSIX source paths (#207499)

On POSIX, backslashes are valid filename characters. Avoid converting
them to slashes when computing absolute source paths in LibTooling,
since doing so changes paths such as `a\b.cc` into `a/b.cc`.

Closes #207396
DeltaFile
+24-0clang/unittests/Tooling/ToolingTest.cpp
+3-0clang-tools-extra/docs/ReleaseNotes.rst
+1-1clang/lib/Tooling/Tooling.cpp
+28-13 files

LLVM/project 1b9723bllvm/include/llvm/ADT APInt.h, llvm/unittests/ADT APIntTest.cpp

Fix APInt::concat for zero-width operands (#207475)

APInt::concat triggered undefined behavior (invalid shift exponent) when
concatenating a zero-width operand with a 64-bit operand on the fast
path (combined width <= 64). For example, `I0.concat(I64)` resulted in
`U.VAL << 64`, which is UB.
Fix by checking for zero-width operands early and returning the other
operand. Added regression tests to `APIntTest.cpp`.
DeltaFile
+2-0llvm/include/llvm/ADT/APInt.h
+1-0llvm/unittests/ADT/APIntTest.cpp
+3-02 files

LLVM/project d49c6da.ci compute_projects_test.py compute_projects.py, .github/workflows libclang-python-tests.yml

CI: move libclang python bindings tests to main CI (#201677)

This removes the separate python bindings CI, which run on the GitHub
free runners and take more than one hour to build libclang.

The tests are executed instead in the monolithic pipelines, whenever
clang would be tested.
That only tests whatever python version we set up for that pipeline.

This is fine in terms of resources because all the dependencies are
built anyway, and the tests themselves take less than one second to run
on the free runners.
DeltaFile
+0-59.github/workflows/libclang-python-tests.yml
+13-12.ci/compute_projects_test.py
+1-1.ci/compute_projects.py
+14-723 files

LLVM/project 0ad19f4libc/shared builtins.h, libc/shared/builtins subsf3.h

[libc] add shared subsf3 builtin (#205677)

Re-exposes LLVM-libc's `__subsf3` as `shared::subsf3` for reuse by
compiler-rt's builtins.

Stacked change - merge these first:
- #200094
- #205669
- #205670
- #205671
- #205672
- #205673
- #205674
- #205675
- #205676

Part of #197824
DeltaFile
+32-0libc/src/__support/builtins/subsf3.h
+29-0libc/shared/builtins/subsf3.h
+9-0libc/src/__support/builtins/CMakeLists.txt
+1-0libc/shared/builtins.h
+1-0libc/test/shared/CMakeLists.txt
+1-0libc/test/shared/shared_builtins_test.cpp
+73-06 files

LLVM/project 5cd8f2fllvm/test/CodeGen/AMDGPU eliminate-frame-index-v-add-co-u32.mir eliminate-frame-index-s-add-u32.mir

[CodeGen] Rename prologpeilog to prolog-epilog (#207870)

This is primarily to ensure consistenct with the new pass manager where
the name of the pass is already prolog-epilog, which is more consistent
with our existing naming scheme. This is necessary to be able to run
existing llc invocations that explicitly specify prolog-epilog under the
NewPM automatically.

Assisted by Gemini.
DeltaFile
+9-9llvm/test/CodeGen/AMDGPU/eliminate-frame-index-v-add-co-u32.mir
+8-8llvm/test/CodeGen/AMDGPU/eliminate-frame-index-s-add-u32.mir
+8-8llvm/test/CodeGen/AMDGPU/pei-build-av-spill.mir
+8-8llvm/test/CodeGen/AMDGPU/pei-build-spill.mir
+8-8llvm/test/CodeGen/AMDGPU/eliminate-frame-index-s-add-i32.mir
+8-8llvm/test/CodeGen/AMDGPU/eliminate-frame-index-scalar-bit-ops.mir
+49-49275 files not shown
+462-462281 files

LLVM/project a42a1c8llvm/unittests/ExecutionEngine/Orc InProcessEPCTest.cpp

[ORC] Fix reinterpret_cast warning. (#207874)

https://github.com/llvm/llvm-project/pull/206725#issuecomment-4896222897
reported warnings on windows builds due to reinterpret_cast:

warning C4312: 'reinterpret_cast': conversion from 'unsigned int' to
'void *' of greater size

This commit fixes the issue by using ExecutorAddr::toPtr for conversion
instead of reinterpret_cast.
DeltaFile
+2-2llvm/unittests/ExecutionEngine/Orc/InProcessEPCTest.cpp
+2-21 files

LLVM/project 4cfd754.ci compute_projects_test.py compute_projects.py, .github/workflows libclang-python-tests.yml

CI: move libclang python byindings tests to main CI

This removes the separate python bindings CI, which run on the GitHub free
runners and take more than one hour to build libclang.

The tests are executed instead in the monolithic pipelines,
whenever clang would be tested.

This is fine in terms of resources because all the dependencies are
built anyway, and the tests themselves take less than one second to
run on the free runners.
DeltaFile
+0-59.github/workflows/libclang-python-tests.yml
+13-12.ci/compute_projects_test.py
+1-1.ci/compute_projects.py
+14-723 files

LLVM/project 52f1b75clang/bindings/python/tests/cindex test_source_range.py test_translation_unit.py

[clang] workaround libclang-python windows CI failures (#207875)
DeltaFile
+8-3clang/bindings/python/tests/cindex/test_source_range.py
+3-1clang/bindings/python/tests/cindex/test_translation_unit.py
+11-42 files

LLVM/project a37bb29llvm/lib/Target/NVPTX NVPTXLowerArgs.cpp, llvm/test/CodeGen/NVPTX lower-byval-args-mem-attrs.ll

[NVPTX] Assign correct memory attrs to args in NVPTXLowerArgs (#207461)
DeltaFile
+84-0llvm/test/CodeGen/NVPTX/lower-byval-args-mem-attrs.ll
+23-2llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
+107-22 files

LLVM/project 2846784clang/bindings/python/tests/cindex test_source_range.py test_translation_unit.py

[clang] workaround libclang-python windows CI failures
DeltaFile
+8-3clang/bindings/python/tests/cindex/test_source_range.py
+3-1clang/bindings/python/tests/cindex/test_translation_unit.py
+11-42 files

LLVM/project a2dbd23utils/bazel/llvm-project-overlay/clang-tools-extra/clang-doc BUILD.bazel, utils/bazel/llvm-project-overlay/clang-tools-extra/unittests BUILD.bazel

[Bazel] Fixes cc048e8 (#207873)

This fixes cc048e80b670a5262500612069d1c2d065b53f15.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+10-0utils/bazel/llvm-project-overlay/clang-tools-extra/clang-doc/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/clang-tools-extra/unittests/BUILD.bazel
+11-02 files

LLVM/project cc048e8clang-tools-extra/clang-doc/markdown Markdown.h Markdown.cpp, clang-tools-extra/clang-doc/support Markdown.h Markdown.cpp

[clang-doc] Move Markdown into its own subdirectory (#207856)

Removes the need for PARTIAL_SOURCES_INTENDED by giving clangDocMarkdown
its own directory. Addresses post-merge feedback on #205609.
DeltaFile
+0-315clang-tools-extra/clang-doc/support/Markdown.h
+315-0clang-tools-extra/clang-doc/markdown/Markdown.h
+0-99clang-tools-extra/clang-doc/support/Markdown.cpp
+99-0clang-tools-extra/clang-doc/markdown/Markdown.cpp
+0-7clang-tools-extra/clang-doc/support/CMakeLists.txt
+7-0clang-tools-extra/clang-doc/markdown/CMakeLists.txt
+421-4212 files not shown
+423-4228 files

LLVM/project 8f3e619libc/config/linux/riscv entrypoints.txt

[libc][RISC-V] Temporarily disable dirent (#207867)

The RISC-V 32 QEMU buildbot is failing due to missing SYS_fcntl, which
is needed for fdopendir. Since that syscall is referenced in the shared
dir code it's easiest to just disable all the dirent functions for now.
DeltaFile
+6-5libc/config/linux/riscv/entrypoints.txt
+6-51 files

LLVM/project 06f4b02llvm/lib/Target/NVPTX NVVMReflect.cpp

[NFC][LLVM][NVPTX] Minor code cleanup in NVVMReflect (#207549)

Use explicit types instead of auto when the type is not obvious. Use
`StringRef` type in the range for loop over `ReflectList`, allowing
additional code cleanups.
DeltaFile
+19-20llvm/lib/Target/NVPTX/NVVMReflect.cpp
+19-201 files

LLVM/project a51dcf7llvm/lib/Target/AMDGPU AMDGPUSearchableTables.td

Combine expressions

Change-Id: I535d5b8ee3eef19008536c0890a2901d2138908c
DeltaFile
+39-168llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
+39-1681 files

LLVM/project 81200d7llvm/lib/Target/NVPTX NVVMProperties.cpp NVPTXUtilities.cpp

[NFC][LLVM][NVPTX] Use namespace qualifiers to define functions (#207546)

Use namespace qualifiers to define functions in `llvm` namespace, per
https://llvm.org/docs/CodingStandards.html#use-namespace-qualifiers-to-define-previously-declared-symbols.
DeltaFile
+21-22llvm/lib/Target/NVPTX/NVVMProperties.cpp
+11-13llvm/lib/Target/NVPTX/NVPTXUtilities.cpp
+2-4llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp
+34-393 files

LLVM/project f7f0661clang/lib/CodeGen/Targets RISCV.cpp, clang/test/CodeGen/RISCV attr-rvv-vector-bits-struct-call.c

[RISCV] Pass structs containing riscv_rvv_vector_bits types using vector registers. (#203601)

The ABI for this isn't documented. The riscv_rvv_vector_bits feature was
copied from aarch_sve_vector_bits which passes the types in vector
registers. At the time I implemented RISC-V I didn't think about struct
arguments so no ABI support was added.

I think it makes sense to pass structs of these types in vector
registers similar to the vls_cc ABI. We already do use vector registers
for these types when the vls_cc ABI is enabled for a function(unclear if
that was intentional), but we should do it unconditionally.

I will work with gcc maintainers to see if they can do the same. In
practice, there probably isn't much compiler mixing with these types.

This patch was heavily assisted by AI, but I've reviewed it and the
changes seem reasonable to me.
DeltaFile
+260-0clang/test/CodeGen/RISCV/attr-rvv-vector-bits-struct-call.c
+103-0clang/lib/CodeGen/Targets/RISCV.cpp
+63-0clang/test/CodeGenCXX/riscv-rvv-fixed-length-struct-call.cpp
+426-03 files

LLVM/project 3d517eellvm/test/tools/dxil-dis waveactiveballot.ll

[NFC] Fix dxil-dis/waveactiveballot.ll test (#207446)

It looks like #204478 introduced new intrinsic signature verification,
but since it didn't touch any of the HLSL/DXIL related paths the tests
were never run on a runner that has dxil-dis installed on it.

Assisted-by: copilot
DeltaFile
+0-2llvm/test/tools/dxil-dis/waveactiveballot.ll
+0-21 files

LLVM/project f4fae77llvm/include/llvm/Transforms/IPO Attributor.h, llvm/lib/Transforms/IPO AttributorAttributes.cpp Attributor.cpp

[Attributor] Distinguish COHERENT accesses in addition to exact ones

When we find overlapping accesses, an access is exact when it will hit
the same memory. Otherwise we treated it like an unknown access that
could overwrite any part of the overlapping value. Using size and
alignment we can introduce a new category, COHERENT, which means the
access migth not be at the exact address but if it is affecting the
initial range it will do so with the proper value, e.g., it will not
write part of the range but all or nothing.
DeltaFile
+119-0llvm/test/Transforms/Attributor/nocapture-2.ll
+39-10llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+40-8llvm/test/Transforms/Attributor/multiple-offsets-pointer-info.ll
+9-7llvm/lib/Transforms/IPO/Attributor.cpp
+12-3llvm/include/llvm/Transforms/IPO/Attributor.h
+219-285 files

LLVM/project 1b6a281.ci compute_projects_test.py compute_projects.py, .github/workflows libclang-python-tests.yml

CI: move libclang python byindings tests to main CI

This removes the separate python bindings CI, which run on the GitHub free
runners and take more than one hour to build libclang.

The tests are executed instead in the monolithic pipelines,
whenever clang would be tested.

This is fine in terms of resources because all the dependencies are
built anyway, and the tests themselves take less than one second to
run on the free runners.
DeltaFile
+0-59.github/workflows/libclang-python-tests.yml
+13-12.ci/compute_projects_test.py
+8-3clang/bindings/python/tests/cindex/test_source_range.py
+3-1clang/bindings/python/tests/cindex/test_translation_unit.py
+1-1.ci/compute_projects.py
+25-765 files

LLVM/project 6da965cmlir/examples/standalone pyproject.toml

[mlir][python] Set a static version in the standalone example pyproject.toml (#207860)

The standalone example's pyproject.toml declares `dynamic = ["version"]` but does not configure a `tool.scikit-build metadata.version.provider`. Newer versions of scikit-build-core reject this combination with:

```
AssertionError: project.version is not specified, must be statically present or tool.scikit-build metadata.version.provider configured when dynamic
```

Just pin a static placeholder version instead of adding a "provider".

Assisted by: Claude
DeltaFile
+1-1mlir/examples/standalone/pyproject.toml
+1-11 files

LLVM/project 28bbe16llvm/lib/Transforms/IPO AttributorAttributes.cpp, llvm/test/Transforms/Attributor AddrSpaceIndirect.ll

[Attributor] AAAddressSpace should use the AA for recursive lookups

If we stripped some values, we can use the AAAddressSpace again for
an optimistic AS value. If we didn't strip any value, we can still use
the TLI.
DeltaFile
+172-0llvm/test/Transforms/Attributor/AddrSpaceIndirect.ll
+10-4llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+182-42 files

LLVM/project 249571bclang/include/clang/Serialization ASTRecordReader.h, clang/lib/AST ASTContext.cpp Type.cpp

trivial changes
DeltaFile
+20-14clang/lib/Sema/SemaOpenMP.cpp
+18-14clang/lib/AST/ASTContext.cpp
+16-15clang/lib/Sema/SemaTemplate.cpp
+14-11clang/lib/AST/Type.cpp
+14-8clang/lib/AST/ASTDiagnostic.cpp
+11-6clang/include/clang/Serialization/ASTRecordReader.h
+93-6834 files not shown
+208-16040 files

LLVM/project 30cd589llvm/lib/Target/AMDGPU AMDGPUSearchableTables.td SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU coexec-sched-flavor-classification.mir

[AMDGPU] Model RepeatRate in SearchableTables

Change-Id: I3d877b4d1fec3be39490e98b0aae3bb97dd10982
DeltaFile
+247-0llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
+134-6llvm/test/CodeGen/AMDGPU/coexec-sched-flavor-classification.mir
+19-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+8-1llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
+2-0llvm/lib/Target/AMDGPU/SIInstrInfo.h
+410-75 files

LLVM/project 184c752mlir/examples/standalone pyproject.toml

[mlir][python] Set a static version in the standalone example pyproject.toml

The standalone example's pyproject.toml declares `dynamic = ["version"]`
but does not configure a `tool.scikit-build metadata.version.provider`.
Newer versions of scikit-build-core reject this combination with:

  AssertionError: project.version is not specified, must be statically
  present or tool.scikit-build metadata.version.provider configured when
  dynamic

Since the standalone example is a template that builds a wheel directly,
there is nothing supplying a dynamic version. Pin a static placeholder
version instead so the wheel builds out of the box.
DeltaFile
+1-1mlir/examples/standalone/pyproject.toml
+1-11 files

LLVM/project 6e0311fllvm/include/llvm/Object COFF.h, llvm/lib/Object ArchiveWriter.cpp COFFObjectFile.cpp

[Archive][COFF] Split hybrid COFF files when adding them to an archive (#205160)

Create a separate member for the embedded hybrid object so that it's
properly reflected in the archive's symbol map and can be correctly
processed by tools unaware of multi-arch object files. Prefix the
embedded member name with 'obj.arm64x/' to avoid name collisions.

The split is performed only when targeting COFF archive format.
DeltaFile
+184-0llvm/test/tools/llvm-ar/arm64x-split.yaml
+61-21llvm/lib/Object/ArchiveWriter.cpp
+67-0llvm/lib/Object/COFFObjectFile.cpp
+58-0llvm/test/tools/llvm-ar/arm64x-hybridobj.yaml
+49-0llvm/test/tools/llvm-lib/arm64x-hybridobj.yaml
+1-0llvm/include/llvm/Object/COFF.h
+420-216 files

LLVM/project 8475e37lldb/bindings/python get-python-config.py

[lldb] Change Python site-packages path (#207771)

On POSIX systems, traditionally the lldb Python module is in
lib/pythonx.x/site-packages. We only ever have 1 Python in a given
build, so we don't need to specify the version.

On Windows, we've always had the Python module in lib\site-packages.

Change the behavior on POSIX to match the Windows behavior, and put the
lldb Python module in lib/site-packages.

---------

Co-authored-by: Ted Woodward <tedwood at quicinc.com>
DeltaFile
+7-19lldb/bindings/python/get-python-config.py
+7-191 files

LLVM/project 1f4aff8llvm/include/llvm/Transforms/IPO Attributor.h, llvm/lib/Transforms/IPO AttributorAttributes.cpp Attributor.cpp

[Attributor] Distinguish COHERENT accesses in addition to exact ones

When we find overlapping accesses, an access is exact when it will hit
the same memory. Otherwise we treated it like an unknown access that
could overwrite any part of the overlapping value. Using size and
alignment we can introduce a new category, COHERENT, which means the
access migth not be at the exact address but if it is affecting the
initial range it will do so with the proper value, e.g., it will not
write part of the range but all or nothing.
DeltaFile
+119-0llvm/test/Transforms/Attributor/nocapture-2.ll
+39-10llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+9-7llvm/lib/Transforms/IPO/Attributor.cpp
+12-3llvm/include/llvm/Transforms/IPO/Attributor.h
+1-7llvm/test/Transforms/Attributor/multiple-offsets-pointer-info.ll
+180-275 files

LLVM/project 1e7e166utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Transforms BUILD.bazel, utils/bazel/llvm-project-overlay/libc/test/UnitTest BUILD.bazel

[bazel][libc] Port 03c62ca40d pt2 (#207846)

This was missed in https://github.com/llvm/llvm-project/pull/207820 adding dep. Along with flang deps.
DeltaFile
+1-0utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Transforms/BUILD.bazel
+2-02 files