LLVM/project ce2518fllvm/lib/Analysis AliasAnalysis.cpp, llvm/test/Transforms/DeadStoreElimination atomic.ll atomic-todo.ll

[AA] Improve precision for monotonic atomic load/store operations (#158169)

Refines `getModRefInfo` for `Monotonic` and `Unordered` atomic
operations to perform a full alias evaluation instead of conservatively
returning `ModRef`.

This allows AA to return more precise results (e.g., `NoModRef`),
unblocking optimizations in passes like DSE/PRE when the pointers are
proven not to alias.

LIT testing: 
1. Fixed the `XFAIL` test `@test9` in `DSE/atomic-todo.ll`, where the
improved AA now allows DSE to correctly remove a dead store.
2. Added test `@test9a` to the same file to ensure DSE is still blocked
when pointers may alias.
3. I am also reviewing tests in GVN/PRE to see where this change may be
beneficial. While all existing tests pass, I will update this PR with
any new GVN test cases in a follow-up commit.


    [2 lines not shown]
DeltaFile
+67-26llvm/test/Transforms/DeadStoreElimination/atomic.ll
+0-23llvm/test/Transforms/DeadStoreElimination/atomic-todo.ll
+16-3llvm/lib/Analysis/AliasAnalysis.cpp
+83-523 files

LLVM/project dedcf88clang/include/clang/CIR MissingFeatures.h, clang/include/clang/CIR/Dialect/Builder CIRBaseBuilder.h

[CIR] Implement NRVO variable cleanup (#170774)

This implements the cleanup handling for C++ NRVO variables. Because
exception handling is still incomplete, this doesn't behave any
differently with exceptions enabled yet, but the NRVO-specific code for
that case is trivial.
DeltaFile
+22-3clang/lib/CIR/CodeGen/CIRGenDecl.cpp
+13-0clang/test/CIR/CodeGen/nrvo.cpp
+8-0clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
+0-1clang/include/clang/CIR/MissingFeatures.h
+43-44 files

LLVM/project 96c733elldb/source/Core FormatEntity.cpp, lldb/source/Plugins/Process/scripted ScriptedFrame.cpp

[lldb] Add support for PC-less scripted frames (#170805)

Scripted frames that materialize Python functions or other non-native
code are PC-less by design, meaning they don't have valid program
counter values. Previously, these frames would display invalid addresses
(`0xffffffffffffffff`) in backtrace output.

This patch updates `FormatEntity` to detect and suppress invalid address
display for PC-less frames, adds fallback to frame methods when symbol
context is unavailable, and modifies `StackFrame::GetSymbolContext` to
skip PC-based symbol resolution for invalid addresses.

The changes enable PC-less frames to display cleanly with proper
function names, file paths, and line numbers, and allow for source
display of foreign sources (like Python). Includes comprehensive test
coverage demonstrating frames pointing to Python source files.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+175-48lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
+102-59lldb/source/Plugins/Process/scripted/ScriptedFrame.cpp
+93-64lldb/source/Core/FormatEntity.cpp
+94-0lldb/test/API/functionalities/scripted_frame_provider/test_frame_providers.py
+36-0lldb/test/API/functionalities/scripted_frame_provider/python_helper.py
+29-0lldb/test/API/functionalities/scripted_process/dummy_scripted_process.py
+529-1715 files not shown
+550-17611 files

LLVM/project 113b2d7llvm/lib/Transforms/Instrumentation MemProfUse.cpp, llvm/test/Transforms/PGOProfile memprof-dump-matched-alloc-site.ll memprof-dump-matched-call-sites.ll

[MemProf] Add remarks for matched allocs and calls (#170379)

The new remarks are somewhat equivalent to the -memprof-print-match-info
messages, however, are not deduplicated across the module so will be
generally more verbose.
DeltaFile
+17-2llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
+8-1llvm/test/Transforms/PGOProfile/memprof-dump-matched-alloc-site.ll
+7-1llvm/test/Transforms/PGOProfile/memprof-dump-matched-call-sites.ll
+32-43 files

LLVM/project 8d57635lldb/tools/lldb-dap DAPLog.h DAP.cpp, lldb/tools/lldb-dap/tool lldb-dap.cpp

[lldb-dap] Improving logging support and formatting. (#170731)

Adjusting logs in a few ways:

* The `DAP_LOG` and `DAP_LOG_ERROR` macros now include the file/line of
the log statement.
* Added support for creating a log with a prefix. This simplifies how we
create logs for the `lldb_dap::DAP` instance and `lldb_dap::Transport`
instance, allowing us to not have to pass the client name around as
much.
* Updated logging usage to take the `lldb_dap::Log` as a reference but
it now defaults to `llvm::raw_null_stream` if not configured. This
ensures more uniform access to the logger, even if its not written
anywhere.

The logs now look like:

```
1764896564.038788080 (stdio) --> {"command":"initialize","arguments":{...},"type":"request","seq":1}

    [2 lines not shown]
DeltaFile
+28-26lldb/tools/lldb-dap/tool/lldb-dap.cpp
+53-0lldb/unittests/DAP/DAPLogTest.cpp
+30-17lldb/tools/lldb-dap/DAPLog.h
+15-26lldb/tools/lldb-dap/DAP.cpp
+10-5lldb/tools/lldb-dap/DAPLog.cpp
+7-7lldb/tools/lldb-dap/EventHelper.cpp
+143-818 files not shown
+166-11014 files

LLVM/project 07669b0clang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+571-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+454-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+90-0clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+1,118-14 files

LLVM/project 9d5e4b3clang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+621-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+519-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+90-0clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+1,233-14 files

LLVM/project 698cd1dclang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+571-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+454-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+90-0clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+1,118-14 files

LLVM/project 06aaba5clang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+430-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+422-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+90-0clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+945-14 files

LLVM/project 949d77cclang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+430-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+422-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+90-0clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+945-14 files

LLVM/project 2b8f784clang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+247-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+209-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+90-0clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+549-14 files

LLVM/project 2e2fe68clang/include/clang/DependencyScanning DependencyScanningWorker.h, clang/include/clang/Tooling DependencyScanningTool.h

[clang][DependencyScanning] Use ArrayRef in function signatures over const std::vector& (NFC) (#170941)

This updates the dependency-scanning tooling to consistently use
`ArrayRef<std::string>` rather than `const std::vector<std::string>&` in
function signatures.

This is done to help break PR #169964 into smaller, more manageable
pieces.
DeltaFile
+10-12clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+7-7clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+7-6clang/include/clang/Tooling/DependencyScanningTool.h
+7-6clang/lib/Tooling/DependencyScanningTool.cpp
+1-1clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+32-325 files

LLVM/project 5aa16f8llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp, llvm/lib/Transforms/Scalar SROA.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.6-beta.1
DeltaFile
+78-5llvm/lib/Transforms/Scalar/SROA.cpp
+73-0llvm/test/Transforms/SROA/protected-field-pointer.ll
+21-11llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+19-0llvm/test/CodeGen/AArch64/ptrauth-irelative.ll
+17-0llvm/test/CodeGen/AArch64/ptrauth-reloc.ll
+208-165 files

LLVM/project 168c35allvm/lib/Target/AArch64 AArch64AsmPrinter.cpp, llvm/lib/Transforms/Scalar SROA.cpp

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

Created using spr 1.3.6-beta.1

[skip ci]
DeltaFile
+78-5llvm/lib/Transforms/Scalar/SROA.cpp
+73-0llvm/test/Transforms/SROA/protected-field-pointer.ll
+7-2llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+6-0llvm/test/CodeGen/AArch64/ptrauth-irelative.ll
+164-74 files

LLVM/project 0d30bb2llvm/lib/Target/AArch64 AArch64AsmPrinter.cpp, llvm/lib/Transforms/Scalar SROA.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.6-beta.1
DeltaFile
+78-5llvm/lib/Transforms/Scalar/SROA.cpp
+73-0llvm/test/Transforms/SROA/protected-field-pointer.ll
+7-2llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+6-0llvm/test/CodeGen/AArch64/ptrauth-irelative.ll
+164-74 files

LLVM/project 902c43allvm/lib/Transforms/Scalar SROA.cpp, llvm/test/Transforms/SROA protected-field-pointer.ll

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

Created using spr 1.3.6-beta.1

[skip ci]
DeltaFile
+78-5llvm/lib/Transforms/Scalar/SROA.cpp
+73-0llvm/test/Transforms/SROA/protected-field-pointer.ll
+151-52 files

LLVM/project a4419c9llvm/include/llvm/Analysis PtrUseVisitor.h, llvm/lib/Analysis PtrUseVisitor.cpp

Address review comments

Created using spr 1.3.6-beta.1
DeltaFile
+38-17llvm/lib/Transforms/Scalar/SROA.cpp
+0-15llvm/include/llvm/Analysis/PtrUseVisitor.h
+2-3llvm/lib/Analysis/PtrUseVisitor.cpp
+40-353 files

LLVM/project c1b08ddclang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+247-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+209-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+90-0clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+549-14 files

LLVM/project 2d4147cclang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+173-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+161-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+90-0clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+427-14 files

LLVM/project cd0ea93clang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+173-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+161-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+337-13 files

LLVM/project eccbae3clang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+173-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+161-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+90-0clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+427-14 files

LLVM/project fd50292llvm/lib/CodeGen/SelectionDAG StatepointLowering.cpp, llvm/test/CodeGen/AMDGPU llvm.deoptimize.ll

DAG: Check if deoptimize call is available before emitting it
DeltaFile
+10-2llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
+2-6llvm/test/CodeGen/AMDGPU/llvm.deoptimize.ll
+12-82 files

LLVM/project 42a3179llvm/include/llvm/CodeGen TargetInstrInfo.h, llvm/lib/CodeGen/SelectionDAG SelectionDAGISel.cpp

AMDGPU: Avoid crashing on statepoint-like pseudoinstructions

At the moment the MIR tests are somewhat redundant. The waitcnt
one is needed to ensure we actually have a load, given we are
currently just emitting an error on ExternalSymbol. The asm printer
one is more redundant for the moment, since it's stressed by the IR
test. However I am planning to change the error path for the IR test,
so it will soon not be redundant.
DeltaFile
+64-0llvm/test/CodeGen/AMDGPU/statepoint-insert-waitcnts.mir
+40-0llvm/test/CodeGen/AMDGPU/statepoint-asm-printer.mir
+16-0llvm/test/CodeGen/AMDGPU/llvm.deoptimize.ll
+12-1llvm/include/llvm/CodeGen/TargetInstrInfo.h
+12-0llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+11-0llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+155-17 files not shown
+184-313 files

LLVM/project 7ba7101flang/include/flang/Optimizer/Dialect/CUF CUFOps.td, flang/lib/Lower Allocatable.cpp

[flang][cuda] Add pointer attribute to allocate/deallocate ops (#170937)

Similar for the double descriptor information added in
https://github.com/llvm/llvm-project/pull/170901, we need to carry over
the pointer information until the op can be converted. The correct
detection would fail if the op is converted late.
DeltaFile
+1-9flang/lib/Optimizer/Transforms/CUDA/CUFAllocationConversion.cpp
+4-4flang/test/Fir/CUDA/cuda-allocate.fir
+8-0flang/test/Lower/CUDA/cuda-allocatable.cuf
+4-2flang/lib/Lower/Allocatable.cpp
+2-2flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
+19-175 files

LLVM/project 27bf5fdllvm/include/llvm/CodeGen SelectionDAG.h, llvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp TargetLowering.cpp

DAG: Add overload of getExternalSymbol using RTLIB::LibcallImpl (#170587)

DeltaFile
+7-8llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+4-4llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+5-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+1-2llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+1-0llvm/include/llvm/CodeGen/SelectionDAG.h
+18-145 files

LLVM/project 651e3bfclang/include/clang/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.h, clang/lib/Analysis/FlowSensitive/Models UncheckedStatusOrAccessModel.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+173-0clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
+161-0clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
+3-1clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
+337-13 files

LLVM/project 0cb237dclang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenBuiltin.cpp

[CIR] Add AtomicFenceOp and signal/thread fence builtins and required helpers (#168346)

This PR adds the AtomicFenceOp and signal/thread fence builtins.
DeltaFile
+181-0clang/test/CIR/CodeGen/atomic-thread-fence.c
+35-0clang/include/clang/CIR/Dialect/IR/CIROps.td
+32-0clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+22-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+270-04 files

LLVM/project c87602fclang/lib/CIR/Analysis FallThroughWarning.cpp, clang/test/CIR/Analysis fallthrough_switch.c fallthrough_1.c

[CIR] Added switch support
DeltaFile
+106-0clang/lib/CIR/Analysis/FallThroughWarning.cpp
+105-0clang/test/CIR/Analysis/fallthrough_switch.c
+1-3clang/test/CIR/Analysis/fallthrough_1.c
+1-3clang/test/CIR/Analysis/fallthrough_2.c
+213-64 files

LLVM/project fd85d17llvm/include/llvm/IR RuntimeLibcalls.td, llvm/lib/CodeGen TargetLoweringBase.cpp

DAG: Use RuntimeLibcalls to legalize vector frem calls

This continues the replacement of TargetLibraryInfo uses in codegen
with RuntimeLibcallsInfo started in 821d2825a4f782da3da3c03b8a002802bff4b95c.
The series there handled all of the multiple result calls. This
extends for the other handled case, which happened to be frem.

For some reason the Libcall for these are prefixed with "REM_", for
the instruction "frem", which maps to the libcall "fmod".
DeltaFile
+36-80llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+49-4llvm/lib/IR/RuntimeLibcalls.cpp
+23-13llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sleef.ll
+22-13llvm/test/Transforms/Util/DeclareRuntimeLibcalls/armpl.ll
+22-0llvm/lib/CodeGen/TargetLoweringBase.cpp
+11-11llvm/include/llvm/IR/RuntimeLibcalls.td
+163-1211 files not shown
+167-1217 files

LLVM/project 5a3e770llvm/include/llvm/CodeGen SelectionDAG.h, llvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp TargetLowering.cpp

DAG: Add overload of getExternalSymbol using RTLIB::LibcallImpl
DeltaFile
+7-8llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+4-4llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+5-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+1-2llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+1-0llvm/include/llvm/CodeGen/SelectionDAG.h
+18-145 files