LLVM/project 4c95776lldb/source/Expression DWARFExpression.cpp

[lldb] Thread DWARFExpression::Evaluate state through an EvalContext (NFCI) (#195220)

Collect the inputs, derived pointers, and mutable evaluation state of
DWARFExpression::Evaluate into a file-local EvalContext struct passed by
reference to the static helpers.

Two incidental fixes making this not-quite NFC:

1. Evaluate_DW_OP_deref_size renamed to Evaluate_DW_OP_deref and takes
the LocationAtom, so error messages name the actual opcode.
2. ResolveLoadAddress no longer crashes on null exe_ctx (uses
eval_ctx.target, which is null-safe).

I initially prototyped a visitor-like design, centered around a
DWARFEvaluator class with one method per opcode and shared state as
members. I discarded it because moving the simple operations out of the
switch hurt readability and increased mental overhead. Its only real
benefit were the cleaner signatures, which this patch achives by using
the new EvalContext.
DeltaFile
+231-217lldb/source/Expression/DWARFExpression.cpp
+231-2171 files

LLVM/project dd099ba.github/workflows release-tasks.yml

workflows/release-tasks: Use app generated token for creating the release (#195219)

We are trying to move a way from using secrets associated with the
llvmbot account, so this drops another one of its users.
DeltaFile
+12-1.github/workflows/release-tasks.yml
+12-11 files

LLVM/project 26994c3llvm/test/CodeGen/AMDGPU select-cmp-shared-constant-int.ll

[NFC] Edit lit-test comment (#195361)

Fixes lit test comment from #195286
DeltaFile
+1-1llvm/test/CodeGen/AMDGPU/select-cmp-shared-constant-int.ll
+1-11 files

LLVM/project 491e8celldb/tools/debugserver/source RNBRemote.cpp

[lldb][debugserver] Don't duplicate loaded binaries in jStopInfo (#195343)

RNBRemote::GetJSONThreadsInfo() has a bool mode switch: Only
exception-related information information about threads which had an
exception, or full information about all threads. The exception-related
information is what ends up in the `jstopinfo` key in the stop packet,
asciihex encoded. The full information is what is sent for the
`jThreadsInfo` packet, with full information for all threads at a public
stop.

When I added the `added-binaries` and `detailed-binaries-info` keys to
the thread description, I incorrectly put this in the exception related
block of this method. Move that in to the "full information" section of
the method, so we don't duplicate the information that is included in
the stop packet, asciihex encoded at that.

rdar://176001611
DeltaFile
+19-19lldb/tools/debugserver/source/RNBRemote.cpp
+19-191 files

LLVM/project b87b094clang/lib/Sema HLSLBuiltinTypeDeclBuilder.cpp

[NFC][HLSL] Remove dead branch for const return by value (#194983)

Remove unreachable addConst() on the by-value return path of
addHandleAccessFunction.
No caller passes IsConstReturn=true with IsRef=false. The existing AST
tests ( StructuredBuffers-AST.hlsl, ByteAddressBuffers-AST.hlsl,
TypedBuffers-AST.hlsl) already assert the by-value Load return type is
non-const, so behavior is verified unchanged.


Assisted by: Github Copilot
Fixes https://github.com/llvm/llvm-project/issues/194982
DeltaFile
+2-2clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
+2-21 files

LLVM/project e29aa9elldb/examples/python formatter_bytecode.py

[lldb][bytecode] Add missing selectors to formatter_bytecode.Compiler (#195328)
DeltaFile
+6-0lldb/examples/python/formatter_bytecode.py
+6-01 files

LLVM/project 1879af1compiler-rt/test/cfi/icall bad-signature.c

Fix test's FileCheck match to allow a column number in message. (#195356)

In some cases, the cfi diagnostic is emitted with a column
number. Allow that in the test.
DeltaFile
+1-1compiler-rt/test/cfi/icall/bad-signature.c
+1-11 files

LLVM/project 2548c01llvm/test/tools/dsymutil embed-resource.test arch-option.test, llvm/test/tools/dsymutil/AArch64 allow-disallow.test

[dsymutil] Make --linker explicit in every test (#195293)

Pass `--linker classic` or `--linker parallel` on every `dsymutil`
invocation instead of relying on the implicit default. This preserves
the existing coverage in preparation for toggling the default in the
future.

Tests previously exercising only one linker now mirror the RUN block for
the other, sharing FileCheck prefixes. Not all tests are compatible, and
I've added a FIXME to make them easy to spot.
DeltaFile
+54-10llvm/test/tools/dsymutil/AArch64/allow-disallow.test
+39-8llvm/test/tools/dsymutil/embed-resource.test
+11-11llvm/test/tools/dsymutil/X86/verify.test
+12-6llvm/test/tools/dsymutil/X86/update.test
+9-9llvm/test/tools/dsymutil/arch-option.test
+12-6llvm/test/tools/dsymutil/X86/accelerator.test
+137-50102 files not shown
+350-203108 files

LLVM/project 4ff87c0clang/lib/Driver Driver.cpp

clang: Stop using replace_extension when there's no extension (#195335)

The offload case is building a fresh filepath and there's no file
extension to replace. Just directly append the file extension to avoid
clobbering part of the path name if the triple contains a period.

Avoids confusing test updates in future triple patch.
DeltaFile
+3-1clang/lib/Driver/Driver.cpp
+3-11 files

LLVM/project 35f9e49flang/lib/Lower/OpenMP OpenMP.cpp DataSharingProcessor.cpp, flang/test/Lower/OpenMP metadirective-loop.f90

[flang][OpenMP] Support loop-associated metadirective variants (part 3)

Enable metadirective lowering for loop-associated variants such as
`do`, `simd`, `parallel do`, and `do simd`.

When a metadirective resolves to a loop-associated directive, the
sibling DO evaluation is spliced into the metadirective's evaluation
list so existing loop lowering finds it. Loop IV data-sharing
attributes are marked at lowering time since semantic analysis cannot
know which variant will be selected. The DataSharingProcessor is also
extended to handle spliced evaluations.

This patch is part of the feature work for #188820 and stacked on top
of #194424.

Assisted with copilot and GPT-5.4
DeltaFile
+203-0flang/test/Lower/OpenMP/metadirective-loop.f90
+100-1flang/lib/Lower/OpenMP/OpenMP.cpp
+83-2flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
+15-0flang/test/Lower/OpenMP/Todo/metadirective-target-loop.f90
+14-0flang/lib/Lower/OpenMP/Utils.cpp
+12-0flang/test/Lower/OpenMP/Todo/metadirective-no-loop.f90
+427-32 files not shown
+429-158 files

LLVM/project 67bd7bcllvm/tools/llubi/lib Interpreter.cpp

[llubi][NFC] Fix build with old GCC (#195327)

Using old GCC (7.5 in this case), we get a compile error about not being
able to deduce the template paramerter:


```
/llvm/llvm/tools/llubi/lib/Interpreter.cpp:770:14: error: no viable constructor or deduction guide for deduction of template arguments of 'std::vector'
  770 |       return std::vector(Vec.begin() + Offset, Vec.begin() + Offset + DstSize);
```

The error was introduced in
https://github.com/llvm/llvm-project/pull/194345.

Just specify the element type.

---------

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
DeltaFile
+2-1llvm/tools/llubi/lib/Interpreter.cpp
+2-11 files

LLVM/project 37c9464clang/lib/Driver Driver.cpp

Fix other path
DeltaFile
+1-0clang/lib/Driver/Driver.cpp
+1-01 files

LLVM/project cd2277bflang/lib/Lower/OpenMP OpenMP.cpp DataSharingProcessor.cpp, flang/test/Lower/OpenMP metadirective-loop.f90

[flang][OpenMP] Support loop-associated metadirective variants

Enable metadirective lowering for loop-associated variants such as
`do`, `simd`, `parallel do`, and `do simd`.

When a metadirective resolves to a loop-associated directive, the
sibling DO evaluation is spliced into the metadirective's evaluation
list so existing loop lowering finds it. Loop IV data-sharing
attributes are marked at lowering time since semantic analysis cannot
know which variant will be selected.

The DataSharingProcessor is extended to handle spliced evaluations:
the symbol visitor walks nested parse trees, symbol collection
includes nested evaluations, scope resolution walks ancestor scopes,
and lastprivate copy-back handles symbols without HostAssocDetails.

Not yet supported:
- Target constructs selected by metadirective (requires host-eval)
DeltaFile
+203-0flang/test/Lower/OpenMP/metadirective-loop.f90
+100-1flang/lib/Lower/OpenMP/OpenMP.cpp
+84-2flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
+15-0flang/test/Lower/OpenMP/Todo/metadirective-target-loop.f90
+14-0flang/lib/Lower/OpenMP/Utils.cpp
+0-12flang/test/Lower/OpenMP/Todo/metadirective-loop.f90
+416-152 files not shown
+430-158 files

LLVM/project 6946e51libc/include/llvm-libc-macros sys-personality-macros.h, libc/src/__support/OSUtil/linux/syscall_wrappers personality.h

[libc] Implement sys/personality.h (#195065)

Added the personality() syscall wrapper, which sets or queries the
process execution domain. The function signature follows the Linux man
page: int personality(unsigned long persona).

New files:
* libc/include/sys/personality.{yaml,h.def}
* libc/src/sys/personality/ (implementation + linux/ syscall)
* libc/test/src/sys/personality/ (unit tests)

Registered the entrypoint and header for x86_64, aarch64, riscv, and
arm. The implementation includes <linux/personality.h> for the
kernel-defined constants (PER_LINUX, ADDR_NO_RANDOMIZE, etc.) following
the same pattern as sys/prctl.h.
DeltaFile
+40-0libc/test/src/sys/personality/linux/personality_test.cpp
+31-0libc/src/__support/OSUtil/linux/syscall_wrappers/personality.h
+28-0libc/src/sys/personality/linux/personality.cpp
+21-0libc/src/sys/personality/personality.h
+16-0libc/include/llvm-libc-macros/sys-personality-macros.h
+15-0libc/test/src/sys/personality/linux/CMakeLists.txt
+151-019 files not shown
+257-025 files

LLVM/project 45132b5llvm/tools/llubi/lib Library.cpp

[llubi] Fix evaluation order of logic operators (#195304)

`&&` is evaluated first, though it doesn't affect the result.
DeltaFile
+3-3llvm/tools/llubi/lib/Library.cpp
+3-31 files

LLVM/project 3983bf6llvm/lib/Target/AMDGPU GCNDPPCombine.cpp, llvm/test/CodeGen/AMDGPU dpp_combine.ll dpp64_combine.ll

[AMDGPU] Optimize DPP for fmin/fmax functions (#195282)

Summary:
These functions currently don't simplify in the optimistic (no-NaN) case
as their identity is not recognized by the optimizer. This PR simply
adds the -inf,+inf checks so these combine without the intermediate
moves.
DeltaFile
+120-0llvm/test/CodeGen/AMDGPU/dpp_combine.ll
+38-0llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
+22-0llvm/test/CodeGen/AMDGPU/dpp64_combine.ll
+180-03 files

LLVM/project c36eec7flang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP metadirective-user.f90

Fix dynamic metadirective candidate selection

- Use one scored candidate path for static and dynamic metadirective variants.
- Dynamic user conditions are statically filtered and scored using their
  non-user traits, then guarded at runtime with fir.if.
- Keeps construct/device/implementation traits enforced for dynamic
  candidates and lets higher-scored static candidates beat lower-scored dynamic
  candidates.
- Add regressions for construct mismatch, score ordering, and
  implicit-nothing tie-breaking.
DeltaFile
+66-57flang/lib/Lower/OpenMP/OpenMP.cpp
+50-0flang/test/Lower/OpenMP/metadirective-user.f90
+116-572 files

LLVM/project be11e2bclang/lib/Format Format.cpp, clang/unittests/Format ConfigParseTest.cpp

[clang-format] Fix nested parsing of AlignAfterOpenBracket (#192283)

When parsing AlignAfterOpenBracket a default backward compatibility
option is always used even if an inherited style option was set. Avoid
using the default setting unless one of the backward compatible enum
type options is found.

Fixes #183845
Fixes #190758
DeltaFile
+43-14clang/lib/Format/Format.cpp
+4-1clang/unittests/Format/ConfigParseTest.cpp
+47-152 files

LLVM/project 241c7bbflang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP metadirective-user.f90

[flang][OpenMP] Support lowering of metadirective (part 2)

Lower non-constant user={condition(expr)} selectors in metadirectives
to a fir.if/else chain.

Only statically applicable when-clauses participate in dynamic
selection. Dynamic conditions are evaluated at runtime in declaration
order, with the best static match, an explicit otherwise/default
clause, or implicit nothing as the final fallback.

This patch is part of the feature work for #188820.

Assisted with copilot and GPT-5.4
DeltaFile
+202-1flang/test/Lower/OpenMP/metadirective-user.f90
+76-28flang/lib/Lower/OpenMP/OpenMP.cpp
+0-10flang/test/Lower/OpenMP/Todo/metadirective-dynamic.f90
+278-393 files

LLVM/project f242ad8compiler-rt/lib/scudo/standalone string_utils.cpp string_utils.h, compiler-rt/lib/scudo/standalone/tests strings_test.cpp

[scudo] Add append overloads for integers and bool

This patch adds overloads for append to support directly appending s32,
s64, u32, u64, and bool values without requiring format strings. This
simplifies usage and avoids the overhead of parsing format strings for
simple type appends.
DeltaFile
+46-7compiler-rt/lib/scudo/standalone/string_utils.cpp
+36-0compiler-rt/lib/scudo/standalone/tests/strings_test.cpp
+6-0compiler-rt/lib/scudo/standalone/string_utils.h
+88-73 files

LLVM/project d595bc9clang/test/AST ast-dump-templates.cpp, llvm/test/CodeGen/RISCV rvp-simd-64.ll atomic-rmw.ll

Rebase

Created using spr 1.3.7
DeltaFile
+648-9,339clang/test/AST/ast-dump-templates.cpp
+5,061-4,162llvm/test/CodeGen/Thumb2/mve-clmul.ll
+4,652-0llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+2,420-2,120llvm/test/CodeGen/RISCV/atomic-rmw.ll
+3,230-456llvm/test/CodeGen/WebAssembly/strided-int-mac.ll
+1,519-1,501llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-accesses-masked-group.ll
+17,530-17,5783,678 files not shown
+157,970-92,1723,684 files

LLVM/project dadc748flang/lib/Lower/OpenMP OpenMP.cpp

Remove redundant MetadirectiveVariant
DeltaFile
+9-12flang/lib/Lower/OpenMP/OpenMP.cpp
+9-121 files

LLVM/project 2a9699cllvm/test/Transforms/LoopVectorize reduction-inloop-uf4.ll consecutive-ptr-uniforms.ll, llvm/test/Transforms/LoopVectorize/AArch64 transform-narrow-interleave-to-widen-memory-with-wide-ops-chained.ll

Revert "[VPlan] Run removeDeadRecipes early." (#195325)

Reverts llvm/llvm-project#190191

Breaks buildbot, details:
https://lab.llvm.org/buildbot/#/builders/67/builds/3821
DeltaFile
+25-8llvm/test/Transforms/LoopVectorize/VPlan/predicator.ll
+10-15llvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
+6-10llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops-chained.ll
+5-10llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
+6-6llvm/test/Transforms/LoopVectorize/VPlan/first-order-recurrence-sink-replicate-region.ll
+6-6llvm/test/Transforms/LoopVectorize/VPlan/vplan-sink-scalars-and-merge.ll
+58-5530 files not shown
+131-12936 files

LLVM/project 39eff8bflang/lib/Lower/OpenMP Clauses.cpp, flang/lib/Parser openmp-parsers.cpp

[flang][OpenMP] Change NONTEMPORAL clause to contain OmpObjectList

NONTEMPORAL in source code takes a variable list, which is represented
in the AST as OmpObjectList.
DeltaFile
+41-5flang/test/Parser/OpenMP/nontemporal-unparse.f90
+6-1flang/lib/Semantics/check-omp-structure.cpp
+2-2flang/lib/Semantics/resolve-directives.cpp
+2-2flang/lib/Lower/OpenMP/Clauses.cpp
+1-2llvm/include/llvm/Frontend/OpenMP/OMP.td
+1-1flang/lib/Parser/openmp-parsers.cpp
+53-136 files

LLVM/project 463173bllvm/test/Transforms/InferAddressSpaces/AMDGPU int2ptr.ll

[NFC][AMDGPU] adding tests to see outcomes before getaddrspacecastpreserved ptr mask implementation (#195277)
DeltaFile
+525-0llvm/test/Transforms/InferAddressSpaces/AMDGPU/int2ptr.ll
+525-01 files

LLVM/project ad6e4c4clang/lib/Driver Driver.cpp

clang: Stop using replace_extension when there's no extension

The offload case is building a fresh filepath and there's no file
extension to replace. Just directly append the file extension to avoid
clobbering part of the path name if the triple contains a period.

Avoids confusing test updates in future triple patch.
DeltaFile
+2-1clang/lib/Driver/Driver.cpp
+2-11 files

LLVM/project 48d7765clang/docs ReleaseNotes.rst, clang/lib/CodeGen CGCall.cpp CodeGenModule.cpp

Revert "[Clang] Emit LLVM flatten attribute instead of per-callsite alwaysinline (#188615)"  (#195314)

Reverts #188615 due to #195236 — Linux kernel build with LTO hangs.
DeltaFile
+34-81clang/test/CodeGen/AArch64/sme-inline-callees-streaming-attrs.c
+12-20clang/test/CodeGen/flatten.c
+11-0clang/lib/CodeGen/CGCall.cpp
+0-10clang/docs/ReleaseNotes.rst
+0-3clang/lib/CodeGen/CodeGenModule.cpp
+57-1145 files

LLVM/project fe8ff67llvm/test/CodeGen/AMDGPU amdgpu-lower-exec-sync-and-module-lds.ll amdgpu-lower-exec-sync.ll

[AMDGPU][NFC] Update join/signal ordering in named barrier tests (#195316)

The ISA requires that you join a barrier before signaling it if you're
planning to wait on that barrier. Some IR-level tests have the join and
signal in the wrong order, confusing people.

This PR reorders join and signal.var in order to make correct usage more
obvious going forward.

AI: none
DeltaFile
+8-8llvm/test/CodeGen/AMDGPU/amdgpu-lower-exec-sync-and-module-lds.ll
+8-8llvm/test/CodeGen/AMDGPU/amdgpu-lower-exec-sync.ll
+4-4llvm/test/CodeGen/AMDGPU/s-barrier-lowering.ll
+4-4llvm/test/CodeGen/AMDGPU/amdgpu-lower-exec-sync-and-sw-lds.ll
+3-3llvm/test/CodeGen/AMDGPU/lds-link-time-codegen-named-barrier.ll
+2-2llvm/test/CodeGen/AMDGPU/lds-link-time-named-barrier.ll
+29-296 files

LLVM/project 8e67558llvm/test/Transforms/LoopVectorize reduction-inloop-uf4.ll consecutive-ptr-uniforms.ll, llvm/test/Transforms/LoopVectorize/AArch64 transform-narrow-interleave-to-widen-memory-with-wide-ops-chained.ll

Revert "[VPlan] Run removeDeadRecipes early. (#190191)"

This reverts commit 992210aa3c8f76d71996172597ca902dadff2a36.
DeltaFile
+25-8llvm/test/Transforms/LoopVectorize/VPlan/predicator.ll
+10-15llvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
+6-10llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops-chained.ll
+5-10llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
+6-6llvm/test/Transforms/LoopVectorize/VPlan/vplan-sink-scalars-and-merge.ll
+6-6llvm/test/Transforms/LoopVectorize/VPlan/first-order-recurrence-sink-replicate-region.ll
+58-5530 files not shown
+131-12936 files

LLVM/project 81d618bllvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp, llvm/test/CodeGen/AMDGPU asyncmark-merge-empty-other.mir

[AMDGPU][SIInsertWaitcnts] Fix iota_range assertion when OtherMarks is empty in mergeAsyncMarks() (#193499)

WaitcntBrackets::mergeAsyncMarks() asserts when merging async wait-count
state at a CFG join point where one predecessor has pending async memory
  operations and the other does not.

  Problem:
  - The existing early-exit only handles the both-empty case
- When OtherMarks is empty but AsyncMarks is not, MergeCount = min(0, N)
= 0
  - seq_inclusive<unsigned>(1, 0) fires: "Assertion Begin <= End failed"

  Changes:
  - Add early return when MergeCount == 0 (OtherMarks is empty)
  - When the other predecessor contributed no async marks, our marks are
    unchanged and no stricter waits are needed
  - Add regression lit test: asyncmark-merge-empty-other.mir
DeltaFile
+139-0llvm/test/CodeGen/AMDGPU/asyncmark-merge-empty-other.mir
+6-1llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+145-12 files