LLVM/project e5bc20blldb/docs dil-expr-lang.ebnf, lldb/source/ValueObject DILLexer.cpp DILEval.cpp

[lldb] Add bitwise operators to DIL (#209768)

Add binary bitwise operators `|`, `^`, `&`, and unary bitwise `~`.
DeltaFile
+79-4lldb/source/ValueObject/DILParser.cpp
+65-0lldb/source/ValueObject/DILEval.cpp
+59-0lldb/test/API/commands/frame/var-dil/expr/Bitwise/TestFrameVarDILBitwise.py
+9-3lldb/docs/dil-expr-lang.ebnf
+12-0lldb/test/API/commands/frame/var-dil/expr/Bitwise/main.cpp
+9-0lldb/source/ValueObject/DILLexer.cpp
+233-75 files not shown
+252-711 files

LLVM/project e696fb5clang/lib/StaticAnalyzer/Checkers LifetimeModeling.cpp UseAfterLifetimeEnd.cpp, clang/test/Analysis lifetime-bound.cpp

 [analyzer] Improve UseAfterLifetimeEnd checker's diagnostic with descriptive names and value tracking (#212158)

Currently the `UseAfterLifetimeEnd` checker used `getString()` for
constructing error message. However, `getString()` is a debug only
stringification and should not be used for emitting reports to the
users. That is why I have changed it to `getDescriptiveName()` and also
implemented the `getRegionName`(#211552) function to return the region's
descriptive name. The `getRegionName()` function got also moved to the
modeling checker since both of the reporting checkers consume it
(#211818). This PR also uses the `trackStoredValue()` for value tracking
path notes, so the report points at where the value's source came from.
DeltaFile
+63-32clang/test/Analysis/lifetime-bound.cpp
+7-5clang/lib/StaticAnalyzer/Checkers/UseAfterLifetimeEnd.cpp
+3-2clang/lib/StaticAnalyzer/Checkers/LifetimeModeling.cpp
+73-393 files

LLVM/project 9f75b6bllvm/docs AMDGPUMemoryModel.md

[AMDGPU][Docs] Memory Model: Refactor location-order to cover reads

This shouldn't change anything semantically, only make the spec
(a) closer to the Vulkan spec, which includes reads in their location-ordered
    relation: https://docs.vulkan.org/spec/latest/appendices/memorymodel.html#memory-model-location-ordered
(b) more uniform: this way, the may-see constraints are the same as the vanilla
    LLVM constraints, only with all occurrences of "happens-before" replaced by
    "location-ordered before".
DeltaFile
+7-3llvm/docs/AMDGPUMemoryModel.md
+7-31 files

LLVM/project 5993d28llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[VPlan] Process simplifyRecipes in a worklist

For now just push the new recipe onto the worklist, not its users. For users we need to be careful if we're introducing cycles.
DeltaFile
+22-23llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+22-231 files

LLVM/project 6e56fa3llvm/lib/Target/AMDGPU AMDGPUSwLowerLDS.cpp

changes as per review feedback
DeltaFile
+33-30llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
+33-301 files

LLVM/project 66d049clibcxx/include/__random mersenne_twister_engine.h, libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers seed_sseq.pass.cpp ctor_sseq.pass.cpp

[libc++] Fix std::mt19937 seeding with std::seed_seq under vectorized ABI (#209860)

This PR fixes a bug in `std::mersenne_twister_engine::seed(_Sseq&)`
where the initialization twist is bypassed when the vectorized engine
optimization (`_LIBCPP_ABI_VECTORIZED_MERSENNE_TWISTER_ENGINE`) is
enabled.

In the vectorized implementation introduced in #206423, the engine state
must be pre-twisted during initialization by calling
`__update_all_states()` at the end of the `seed` functions.

However, in `seed(_Sseq& __q)`, the all-zero state check contains an
early `return;` when a non-zero state is verified. This early return
bypasses the trailing `__update_all_states()` call. Consequently, the
generator is initialized with raw, untwisted seed values (tempered)
rather than the standard twisted values.

This only manifests when compiled with unstable ABI settings
(`_LIBCPP_ABI_VERSION >= 2`) which enables the vectorized

    [7 lines not shown]
DeltaFile
+63-63libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/ctor_sseq.pass.cpp
+23-1libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/seed_sseq.pass.cpp
+5-3libcxx/include/__random/mersenne_twister_engine.h
+91-673 files

LLVM/project 7ccf4e6llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rvp-simd-64.ll

[RISCV] Improve lowerVECTOR_SHUFFLEAsPPair. (#212895)

Allow V1 and V2 to be swapped. Allow V1 or V2 to be used twice.

Assisted-by: Claude
DeltaFile
+147-0llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+50-31llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+197-312 files

LLVM/project 11b58f0libcxx/test/std/ranges/range.adaptors/range.elements/iterator ctor.base.pass.cpp, libcxx/test/std/ranges/range.adaptors/range.elements/sentinel ctor.base.pass.cpp

[libc++][ranges] P3059R2: Making user-defined constructors of view iterators/sentinels private (#193891)

Implements https://wg21.link/P3059R2 (DR)

Closes #189599

1. Made constructors of iterator and sentinel types of the following
views private:
  - `iota_view`
  - `basic_istream_view`
  - `filter_view`
  - `transform_view`
  - `take_view`
  - `take_while_view`
  - `join_view`
  - `lazy_split_view`
  - `split_view`
  - `elements_view`
2. Updated all relevant tests to fix the usages of the now private

    [10 lines not shown]
DeltaFile
+0-86libcxx/test/std/ranges/range.adaptors/range.take.while/sentinel/ctor.base.pass.cpp
+0-60libcxx/test/std/ranges/range.adaptors/range.filter/sentinel/ctor.parent.pass.cpp
+0-58libcxx/test/std/ranges/range.factories/range.istream.view/iterator/ctor.pass.cpp
+0-54libcxx/test/std/ranges/range.adaptors/range.elements/iterator/ctor.base.pass.cpp
+0-53libcxx/test/std/ranges/range.adaptors/range.split/iterator/ctor.base.pass.cpp
+0-52libcxx/test/std/ranges/range.adaptors/range.elements/sentinel/ctor.base.pass.cpp
+0-36350 files not shown
+640-83556 files

LLVM/project 73d6181libc/src/__support/math ceilf128.h, libc/src/math/generic CMakeLists.txt ceilf128.cpp

test
DeltaFile
+7-0libc/src/math/generic/ceilf128.cpp
+2-2libc/src/__support/math/ceilf128.h
+1-0libc/src/math/generic/CMakeLists.txt
+10-23 files

LLVM/project 2f08dfflibc/hdr/types struct_statfs.h, libc/include/llvm-libc-types struct_statfs.h

[libc] Refactor statfs Linux syscalls and provide 'struct statfs' (#212930)

* Extract statfs/fstatfs Linux syscall wrappers to
`linux/syscall_wrappers` directory;
* Provide our own definition of `struct statfs` type and a corresponding
proxy header (to use system type in overlay mode);
* Migrate callers (e.g. statfs->statvfs translation) to use the new
syscall wrapper.

This would allow us to add Linux-specific (non-POSIX) `<sys/statfs.h>`
header as a next step.

Assisted by: Gemini, human-reviewed
DeltaFile
+8-59libc/src/sys/statvfs/linux/statfs_utils.h
+43-0libc/src/__support/OSUtil/linux/syscall_wrappers/fstatfs.h
+43-0libc/src/__support/OSUtil/linux/syscall_wrappers/statfs.h
+39-0libc/include/llvm-libc-types/struct_statfs.h
+27-0libc/hdr/types/struct_statfs.h
+26-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+186-5911 files not shown
+286-10017 files

LLVM/project aa07c1fllvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp, llvm/test/CodeGen/SPIRV/debug-info debug-function-with-declaration.ll debug-function.ll

Implement support for NSDI DebugFunction opcode. (#211760)

Add support for
[DebugFunction](https://github.khronos.org/SPIRV-Registry/nonsemantic/NonSemantic.Shader.DebugInfo.html#DebugFunction).
DeltaFile
+55-4llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+44-0llvm/test/CodeGen/SPIRV/debug-info/debug-function-namespace-scope.ll
+43-0llvm/test/CodeGen/SPIRV/debug-info/debug-function.ll
+27-13llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+37-0llvm/test/CodeGen/SPIRV/debug-info/debug-function-with-declaration.ll
+206-175 files

LLVM/project e744320utils/bazel/llvm-project-overlay/lldb BUILD.bazel

[Bazel] Fix Host target's exported headers to include windows (#213018)

When PR# 201283 added windows os select to the build of the Host target,
it missed the exported headers since the CI checks run only linux and
mac (and I hadn't gotten to this in my slow slog of windows bazel lldb
support). I found when translating to BUCK and running into this
compilation error on windows for buck2 built lldb.
Still cannot build and claude tells me the exclude is necessary to avoid
a duplicate.

claude assisted with bazel rule creation
DeltaFile
+4-0utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
+4-01 files

LLVM/project d7c1e60llvm/test/Transforms/PhaseOrdering/X86 avg.ll, llvm/test/Transforms/SLPVectorizer/AArch64 trimmed-node-gather-cost.ll

[SLP]Recalculate gather costs after tree trimming

Gather node costs are computed against the set of vectorized nodes
available for reuse. Tree trimming changes that set, but the costs were
not recalculated: a gather that reused a trimmed-away vectorized value
kept its 0 cost, and the node transformed to a gather matched the same
sibling gather for a free reuse, so the buildvector cost was lost and
unprofitable trees were vectorized.

Recalculate costs of all gather nodes after trimming.

Fixes #212983

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/213034
DeltaFile
+170-240llvm/test/Transforms/PhaseOrdering/X86/avg.ll
+19-139llvm/test/Transforms/SLPVectorizer/X86/pr46983.ll
+8-16llvm/test/Transforms/SLPVectorizer/X86/poor-throughput-seeds.ll
+11-9llvm/test/Transforms/SLPVectorizer/X86/multi-parent-instr-copyable-regular.ll
+8-9llvm/test/Transforms/SLPVectorizer/AArch64/trimmed-node-gather-cost.ll
+1-14llvm/test/Transforms/SLPVectorizer/X86/split-node-reused-in-later-vector.ll
+217-4272 files not shown
+227-4368 files

LLVM/project a853e6flibc/hdr/types struct_passwd.h, libc/include pwd.yaml

[libc] Add struct passwd type, pwd.yaml, and pwd_utils parser (#212421)

Added struct passwd type definition, pwd.yaml header specification, and
parse_passwd_line utility returning ErrorOr<struct passwd> for
colon-separated
password file parsing with hermetic unit tests.

Note: Additional POSIX pwd.h functions (getpwuid, getpwnam, getpwuid_r,
getpwnam_r, fgetpwent) are omitted from this initial change and will be
added in follow-up PRs.

* Added libc/include/llvm-libc-types/struct_passwd.h and proxy header
* Added libc/include/pwd.yaml header specification
* Added pwd_utils.h and pwd_utils.cpp implementing ErrorOr<struct
passwd> parse_passwd_line
* Added pwd.h to target public headers for linux architectures
* Added unit tests in libc/test/src/pwd/pwd_utils_test.cpp

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+104-0libc/test/src/pwd/pwd_utils_test.cpp
+73-0libc/src/pwd/pwd_utils.cpp
+31-0libc/include/llvm-libc-types/struct_passwd.h
+30-0libc/src/pwd/pwd_utils.h
+26-0libc/include/pwd.yaml
+26-0libc/hdr/types/struct_passwd.h
+290-012 files not shown
+345-018 files

LLVM/project 09da485llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp SPIRVAsmPrinter.cpp

Remove unused parameter.
DeltaFile
+1-2llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+1-1llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+1-1llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
+3-43 files

LLVM/project 2a3f74fllvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Update trunc combine, fix m_Not return position
DeltaFile
+4-4llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+4-41 files

LLVM/project e001308libcxx/src exception.cpp, libcxx/src/support/runtime exception_fallback.ipp

[libc++] Fix exception_fallback.ipp not compiling (#212961)
DeltaFile
+0-1libcxx/src/exception.cpp
+1-0libcxx/src/support/runtime/exception_fallback.ipp
+1-12 files

LLVM/project 3b2fe5allvm/test/Transforms/SLPVectorizer/AArch64 trimmed-node-gather-cost.ll

[SLP][NFC]Add a test with the non-profitable vectorization, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/213028
DeltaFile
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/trimmed-node-gather-cost.ll
+133-01 files

LLVM/project 11d7c9cllvm/tools/llvm-calc-occupancy llvm-calc-occupancy.cpp

[llvm-calc-occupancy] Fix build after SGPR queries moved to TargetParser (#213023)

Urgent buildbot fix for #208727.

That PR was developed before #209848, which moved the SGPR count queries
into TargetParser and removed
`AMDGPU::IsaInfo::getAddressableNumSGPRs()`, so
`llvm-calc-occupancy.cpp` fails to compile on current `main`:

```
llvm-calc-occupancy.cpp:229:41: error: no member named 'getAddressableNumSGPRs' in namespace 'llvm::AMDGPU::IsaInfo'
```

This switches to the equivalent
`GCNSubtarget::getAddressableNumSGPRs()`, which forwards to the
TargetParser version. All other `IsaInfo::*` calls in the file were
checked against the new API and are unaffected.

Verified locally: `ninja llvm-calc-occupancy` builds clean,
`llvm/test/tools/llvm-calc-occupancy` passes, and the reported
addressable SGPR count is unchanged (102 on gfx90a).
DeltaFile
+1-1llvm/tools/llvm-calc-occupancy/llvm-calc-occupancy.cpp
+1-11 files

LLVM/project cb0944coffload/unittests/OffloadAPI/device_code CMakeLists.txt, offload/unittests/OffloadAPI/program olCreateProgram.cpp

[offload][lit] Add jit unittest (#212860)

Basic test for the JIT path.

Context: https://github.com/llvm/llvm-project/pull/212823

---------

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
DeltaFile
+19-0offload/unittests/OffloadAPI/program/olCreateProgram.cpp
+2-0offload/unittests/OffloadAPI/device_code/CMakeLists.txt
+21-02 files

LLVM/project b95468fclang/lib/Driver/ToolChains HIPSPV.h HIPSPV.cpp, clang/test/Driver hipspv-link-static-library.hip hipspv-pass-plugin.hip

[HIPSPV] Add in-tree SPIR-V backend support for chipStar (#206910)
DeltaFile
+125-35clang/lib/Driver/ToolChains/HIPSPV.cpp
+39-27clang/test/Driver/hipspv-toolchain.hip
+13-9clang/test/Driver/hipspv-pass-plugin.hip
+5-2clang/lib/Driver/ToolChains/HIPSPV.h
+2-1llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
+2-1clang/test/Driver/hipspv-link-static-library.hip
+186-756 files

LLVM/project 2d697f8clang/test/OpenMP loop_transform_final_iv.c reverse_codegen.cpp

[OpenMP] Restore loop variable values after loop-transformation constructs. (#212853)

This PR relands #208533 which was reverted in #212832 due to test
failures with iterator-based loops.

Original Change:
#208533 fixes loop variable finalization for OpenMP 6.0
loop-transformations constructs: tile, stripe, reverse, interchange and
fuse to comply with spec requirement page 371, lines 19-21. The spec
requires that "After the execution of the loop-transforming construct,
the loop-iteration variables of any of its transformation-affected loops
have the values that they would have without the loop-transforming
directive".

What's Fixed in This Reland:
The original implementation attempted to finalize all loop variables,
including iterators in range-based for loops (CXXForRangeStmt). This
caused issues because the finalization formula `final_value =
lower_bound + num_iterations * step` only applies to arithmetic types
(integers, floats).
DeltaFile
+192-98clang/test/OpenMP/interchange_codegen.cpp
+172-110clang/test/OpenMP/tile_codegen.cpp
+172-110clang/test/OpenMP/stripe_codegen.cpp
+216-66clang/test/OpenMP/fuse_codegen.cpp
+154-85clang/test/OpenMP/reverse_codegen.cpp
+129-0clang/test/OpenMP/loop_transform_final_iv.c
+1,035-4694 files not shown
+1,221-53410 files

LLVM/project 1001697llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp

Fix rebase.
DeltaFile
+0-6llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+0-61 files

LLVM/project 3f3cecallvm/lib/Target/SPIRV SPIRVAsmPrinter.cpp SPIRVNonSemanticDebugHandler.h

[SPIRV] Drive DebugFunctionDefinition placement via begin/endInstruction

Replace the SPIRV-specific notifyMachineInstructionEmitted() callback with
DebugHandlerBase::beginInstruction()/endInstruction().
Keep notifyEntryLabelEmitted() for the synthesized entry OpLabel, which
has no MachineInstr.
DeltaFile
+22-14llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+8-12llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+2-5llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
+32-313 files

LLVM/project 58077a9llvm/test/CodeGen/SPIRV/debug-info debug-function-definition.ll

Improve test.
DeltaFile
+19-4llvm/test/CodeGen/SPIRV/debug-info/debug-function-definition.ll
+19-41 files

LLVM/project 5ab44b1llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp

Remove CachedExtInstSetReg.
DeltaFile
+2-9llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+3-2llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+5-112 files

LLVM/project 877b5d8llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h SPIRVNonSemanticDebugHandler.cpp

Change signature.
DeltaFile
+4-5llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+2-2llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+6-72 files

LLVM/project 9453fd1llvm/test/CodeGen/SPIRV/debug-info debug-function-definition.ll

Fix path check.
DeltaFile
+1-1llvm/test/CodeGen/SPIRV/debug-info/debug-function-definition.ll
+1-11 files

LLVM/project 3f996dallvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h

Keep original comment.
DeltaFile
+3-0llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+3-01 files

LLVM/project 670862cllvm/lib/Target/SPIRV SPIRVAsmPrinter.cpp SPIRVNonSemanticDebugHandler.h, llvm/test/CodeGen/SPIRV/debug-info debug-function-definition-after-opvariable.ll debug-function-definition.ll

Implement support for NSDI DebugFunctionDefinition.
DeltaFile
+160-6llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+50-21llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+40-0llvm/test/CodeGen/SPIRV/debug-info/debug-function-definition.ll
+36-0llvm/test/CodeGen/SPIRV/debug-info/debug-function-definition-after-opvariable.ll
+14-3llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
+300-305 files