LLVM/project 643fb92 — libcxx/test/std/depr/depr.c.headers stdio_h.compile.pass.cpp, libcxx/test/std/input.output/file.streams/c.files cstdio.pass.cpp

[libcxx][NFC] remove XFAIL on stdio_h.compile.pass (#231694)

Obsolete after #229347 and #221349
DeltaFile
+0-3libcxx/test/std/input.output/file.streams/c.files/cstdio.pass.cpp
+0-3libcxx/test/std/depr/depr.c.headers/stdio_h.compile.pass.cpp
+0-62 files

LLVM/project 4ba245d — llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Transforms/IndVarSimplify widen-zext-nneg-add-nsw-runtime-start.ll eliminate-comparison.ll

[SCEV] Prove monotonic predicates from loop entry in isKnownViaInduction

isKnownViaInduction requires the predicate to hold on loop entry and on
the backedge. The backedge check usually fails when the latch only
bounds the IV from above, so e.g. {s,+,1}<nsw> >=s 0 is not proven even
when s >=s 0 is known on entry.

In a loop guarded by "start <u len", this keeps IndVars from computing
a[i - 32] in i64.

A monotonically increasing predicate against a loop-invariant value can
only change from false to true, so holding on entry is enough.

Use this in isKnownOnEveryIteration when the backedge check fails.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+261-0llvm/unittests/Analysis/ScalarEvolutionTest.cpp
+81-0llvm/test/Transforms/IndVarSimplify/monotonic-predicate-samesign.ll
+59-9llvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll
+29-32llvm/test/Transforms/IndVarSimplify/widen-zext-nneg-add-nsw-runtime-start.ll
+8-24llvm/test/Transforms/PhaseOrdering/indvars-vectorize-runtime-start.ll
+14-3llvm/lib/Analysis/ScalarEvolution.cpp
+452-683 files not shown
+463-759 files

LLVM/project 9d9ad8a — clang/test CMakeLists.txt, clang/test/Analysis/Scalable/ssaf-orchestrator-make bare-linker.test link-driver.test

Clang ssaf orchestrator fixes (#231678)

Attempt to fix https://github.com/llvm/llvm-project/pull/231583
DeltaFile
+6-1clang/test/CMakeLists.txt
+4-1clang/test/Analysis/Scalable/ssaf-orchestrator-make/lit.local.cfg
+3-1clang/tools/CMakeLists.txt
+1-2clang/test/Analysis/Scalable/ssaf-orchestrator-make/link-driver.test
+1-1clang/test/Analysis/Scalable/ssaf-orchestrator-make/bare-linker.test
+15-65 files

LLVM/project 9d18ac3 — llvm/lib/Target/BPF BPFInstrInfo.td, llvm/test/CodeGen/BPF atomics_mem_order_v3.ll

[BPF] Use FETCH atomic instruction for monotonic atomicrmw when the result is used (#210371)

For BPF, a monotonic atomicrmw selected the non-fetch instruction
regardless of whether the result was used. The non-fetch form discards
the old value, so the result was wrong if used.

Fix makes ISel select the fetch form when the result is used and the
non-fetch form otherwise via the binop_no_use / binop_has_use PatFrags.
This was already done for the i64 and/or/xor patterns, applied it to the
remaining monotonic patterns: i64 add and sub, and all i32 ops
(add/sub/and/or/xor).

Fixes #210280

Assisted-by: Claude (Anthropic)
DeltaFile
+78-62llvm/lib/Target/BPF/BPFInstrInfo.td
+7-7llvm/test/CodeGen/BPF/atomics_mem_order_v3.ll
+85-692 files

LLVM/project c6f4770 — llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Transforms/IndVarSimplify widen-zext-nneg-add-nsw-runtime-start.ll eliminate-comparison.ll

[SCEV] Prove monotonic predicates from loop entry in isKnownViaInduction

isKnownViaInduction requires the predicate to hold on loop entry and on
the backedge. The backedge check usually fails when the latch only
bounds the IV from above, so e.g. {s,+,1}<nsw> >=s 0 is not proven even
when s >=s 0 is known on entry.

In a loop guarded by "start <u len", this keeps IndVars from computing
a[i - 32] in i64.

A monotonically increasing predicate against a loop-invariant value can
only change from false to true, so holding on entry is enough.

Use this in isKnownOnEveryIteration when the backedge check fails.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+260-0llvm/unittests/Analysis/ScalarEvolutionTest.cpp
+81-0llvm/test/Transforms/IndVarSimplify/monotonic-predicate-samesign.ll
+59-9llvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll
+29-32llvm/test/Transforms/IndVarSimplify/widen-zext-nneg-add-nsw-runtime-start.ll
+8-24llvm/test/Transforms/PhaseOrdering/indvars-vectorize-runtime-start.ll
+14-3llvm/lib/Analysis/ScalarEvolution.cpp
+451-683 files not shown
+462-759 files

LLVM/project 49666ef — llvm/test/Transforms/IndVarSimplify ult-nonneg-bound-implies-nonneg.ll widen-zext-nneg-add-nsw-runtime-start.ll, llvm/test/Transforms/PhaseOrdering indvars-vectorize-runtime-start.ll

[IndVarSimplify][PhaseOrdering][NFC] Add tests for widening nsw IV arithmetic

Add tests for for (int i = start; i < N; i++) a[i] = a[i - 32] + 1,
with zext nneg indices and i - 32 nsw only:
- IndVarSimplify: with guards that do and do not prove start
  non-negative, i - 32 is computed in i64 or i32.
- PhaseOrdering (indvars, loop-vectorize): whether a runtime alias check
  is emitted.

Move @runtime_start out of ult-nonneg-bound-implies-nonneg.ll, which
duplicated it.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+709-0llvm/test/Transforms/IndVarSimplify/widen-zext-nneg-add-nsw-runtime-start.ll
+125-0llvm/test/Transforms/PhaseOrdering/indvars-vectorize-runtime-start.ll
+0-67llvm/test/Transforms/IndVarSimplify/ult-nonneg-bound-implies-nonneg.ll
+834-673 files

LLVM/project 0ab3f16 — llvm/test/Transforms/IndVarSimplify iv-widen-elim-ext.ll

[IndVarSimplify][NFC] Add a negative test for zext elimination

Add @foo3_neg: the loop from @foo3 with a guard on an unrelated value,
so %add3 may be negative and its zext must stay.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+71-0llvm/test/Transforms/IndVarSimplify/iv-widen-elim-ext.ll
+71-01 files

LLVM/project 8a5d595 — llvm/include/llvm/Analysis ScalarEvolution.h, llvm/lib/Analysis ScalarEvolution.cpp

[SCEV][NFC] Use isKnownOnEveryIteration in isKnownViaInduction

isKnownViaInduction and isKnownOnEveryIteration both prove a predicate
on every iteration from loop entry and the backedge, so the next change
can extend one place.

Add a private isKnownOnEveryIteration overload that takes any LHS and
RHS and the loop, and move the entry/backedge check from
isKnownViaInduction into it. The public overload is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+30-24llvm/lib/Analysis/ScalarEvolution.cpp
+7-0llvm/include/llvm/Analysis/ScalarEvolution.h
+37-242 files

LLVM/project 93ebf74 — llvm/include/llvm/Analysis ScalarEvolution.h, llvm/lib/Analysis ScalarEvolution.cpp

[SCEV][NFC] Factor getMonotonicPredicate out of getLoopInvariantPredicate

The next change needs the same setup as getLoopInvariantPredicate.

Move it into a private helper: put the loop-invariant operand on the
RHS, check that the other side is a recurrence of the loop, and compute
the predicate's monotonicity.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+24-9llvm/lib/Analysis/ScalarEvolution.cpp
+19-0llvm/include/llvm/Analysis/ScalarEvolution.h
+43-92 files

LLVM/project 975df9c — llvm/test/Transforms/SandboxVectorizer/Passes/Common alignment.ll

[SandboxVec][NFC] Precommit test (#231330)

For a follow-up patch that updates the alignment logic.
DeltaFile
+94-0llvm/test/Transforms/SandboxVectorizer/Passes/Common/alignment.ll
+94-01 files

LLVM/project cfe1b90 — libc/src/stdlib CMakeLists.txt __cxa_thread_atexit_impl.h, libc/test/integration/src/__support/threads double_exit_test.cpp

[libc] Moves __cxa_thread_atexit_impl into proper entrypoint (#229347)

This  PR resolves (#224664).

---------

Co-authored-by: Pavel Labath <pavel at labath.sk>
DeltaFile
+84-0libc/test/integration/src/stdlib/atexit_thread_test.cpp
+30-0libc/src/stdlib/__cxa_thread_atexit_impl.cpp
+25-0libc/src/stdlib/__cxa_thread_atexit_impl.h
+12-0libc/test/integration/src/stdlib/CMakeLists.txt
+11-0libc/src/stdlib/CMakeLists.txt
+5-5libc/test/integration/src/__support/threads/double_exit_test.cpp
+167-511 files not shown
+186-2617 files

LLVM/project 4f792b8 — llvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp GCNHazardRecognizer.cpp, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Handle gfx950 v_pk_{add,mul,fma}_f32 invalid op_sel (#231506)

gfx950 v_pk_add/mul/fma_f32 for certain op_sel combinations:

- Case 1 (v_pk_add/mul_f32): src0/src1 both VGPR with op_sel[1:0] ==
2'b10. Adjusted in GCNHazardRecognizer::fixPkF32InvalidOpSel by
commuting src0/src1 in place.
- Case 2/3 (v_pk_fma_f32): op_sel[2:1] == 2'b01, 2'b10, or 2'b11. Fixed
via SIInstrInfo::decomposePkFMAF32, which splits the packed FMA into two
independent scalar v_fma_f32s; wired in from both
SIInstrInfo::legalizeOperandsVOP3 (SelectionDAG) and
AMDGPUInstructionSelector::select's G_FMA case (GlobalISel), both gated
on SIInstrInfo::isLegalPkFMAF32OpSel. A safety net that crashes the
compiler is added in GCNHazardRecognizer::fixPkF32InvalidOpSel.

Also reject the invalid op_sel encodings directly in the assembler
(AMDGPUAsmParser::validateOpSel) so hand-written/inline asm can't encode
them.
DeltaFile
+719-0llvm/test/CodeGen/AMDGPU/gfx950-pk-f32-invalid-op-sel.ll
+132-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+49-0llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+24-0llvm/test/MC/AMDGPU/gfx950_err.s
+16-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+16-0llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+956-03 files not shown
+966-09 files

LLVM/project c3d1b63 — flang/lib/Lower/OpenMP OpenMP.cpp Utils.cpp, flang/test/Lower/OpenMP declare-variant-construct.f90 variant-source-context.f90

[flang][OpenMP] Match variant selectors in the source construct context

The construct context for METADIRECTIVE and DECLARE VARIANT came from
enclosing MLIR operations. It recognized only a few operations, followed
operation nesting instead of source nesting, kept constructs outside an
enclosing TARGET, and used the body context for clause expressions and
loop bounds.

Build the context from the evaluation's source ancestors and from frames
for construct regions entered during lowering:
- A selected METADIRECTIVE replacement stands in for its source construct.
- TARGET discards the outer context.
- Constructs without a selector property still add a nesting level.
- Clause expressions see only enclosing constructs.
- Loop bounds see the leaves that precede the first loop-associated leaf.
- Specification expressions see no construct.

Composite DISTRIBUTE PARALLEL DO [SIMD] now evaluates DISTRIBUTE clauses
before PARALLEL, as in source nesting, and destroys their temporaries

    [5 lines not shown]
DeltaFile
+580-0flang/test/Lower/OpenMP/declare-variant-loop-bounds.f90
+303-0flang/test/Lower/OpenMP/declare-variant-metadirective-context.f90
+211-0flang/test/Lower/OpenMP/variant-source-context.f90
+112-2flang/test/Lower/OpenMP/declare-variant-construct.f90
+86-22flang/lib/Lower/OpenMP/Utils.cpp
+71-18flang/lib/Lower/OpenMP/OpenMP.cpp
+1,363-4212 files not shown
+1,678-5618 files

LLVM/project 98dc5e0 — flang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP distribute-parallel-do.f90 distribute-parallel-do-simd.f90

[flang][OpenMP] Destroy composite num_threads temporaries once

DISTRIBUTE PARALLEL DO and DISTRIBUTE PARALLEL DO SIMD evaluate the
PARALLEL clause operands before creating omp.parallel, using the
statement context of the dispatch. That context is finalized after the
returned omp.distribute, which is inside the parallel region, so every
thread destroyed the same num_threads temporary, for example for
num_threads(size(f())) where f returns an allocatable.

Evaluate these operands in a separate statement context and finalize it
after omp.parallel.

Fixes #230661

Assisted with Copilot and Claude Opus 5.5
DeltaFile
+27-9flang/lib/Lower/OpenMP/OpenMP.cpp
+32-0flang/test/Lower/OpenMP/distribute-parallel-do.f90
+32-0flang/test/Lower/OpenMP/distribute-parallel-do-simd.f90
+91-93 files

LLVM/project fc6b058 — llvm/test/Transforms/VectorCombine/X86 load-inseltpoison.ll

fixup! Update test cases
DeltaFile
+5-8llvm/test/Transforms/VectorCombine/X86/load-inseltpoison.ll
+5-81 files

LLVM/project 0a89329 — llvm/lib/Target/VE VEISelLowering.cpp, llvm/test/CodeGen/VE exception-model.ll

VE: Use i32 registers for 32-bit loads in the SjLj dispatch block

Fix verifier errors in exception test. The call site index and the
PIC jump table offset were loaded with ldl.zx, which defines an i32
register, into vregs with the i64 register class.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+19-4llvm/lib/Target/VE/VEISelLowering.cpp
+1-2llvm/test/CodeGen/VE/exception-model.ll
+20-62 files

LLVM/project b6577d3 — llvm/lib/Target/VE/MCTargetDesc VEMCAsmInfo.cpp, llvm/lib/TargetParser Triple.cpp

VE: Default to SjLj exception handling

The clang driver selects SjLj exceptions for VE (96d4ccf00c8f), but the
triple defaulted to no exception model. Make SjLj the default for the
triple and MCAsmInfo so llc agrees with the driver.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+20-0llvm/test/CodeGen/VE/exception-model.ll
+2-2llvm/unittests/TargetParser/TripleTest.cpp
+2-0llvm/lib/TargetParser/Triple.cpp
+1-0llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp
+25-24 files

LLVM/project ffc8779 — llvm/lib/Target/AMDGPU VOP1Instructions.td SIInstrInfo.td

AMDGPU: Add vgpr32_lo16/vgpr32_hi16 OutPatFrags

Add OutPatFrags for extracting a 16-bit half of a value after copying
it to a VGPR_32, and use them for the existing open-coded instances.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+8-8llvm/lib/Target/AMDGPU/VOP3Instructions.td
+6-0llvm/lib/Target/AMDGPU/SIInstrInfo.td
+1-1llvm/lib/Target/AMDGPU/VOP1Instructions.td
+15-93 files

LLVM/project 18f9f72 — llvm/lib/Target/AMDGPU DSInstructions.td VOP3Instructions.td

AMDGPU: Use lo16_to_vgpr32/hi16_to_vgpr32 OutPatFrags (NFC) (#231650)

Replace open-coded REG_SEQUENCE widenings of 16-bit values into a
VGPR_32 with the existing OutPatFrags.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+17-17llvm/lib/Target/AMDGPU/SIInstructions.td
+3-3llvm/lib/Target/AMDGPU/VOP1Instructions.td
+2-2llvm/lib/Target/AMDGPU/VOP3Instructions.td
+1-1llvm/lib/Target/AMDGPU/DSInstructions.td
+23-234 files

LLVM/project bb80dc2 — llvm/test/CodeGen/X86 mem-cache-hint-dag-combine-i386.ll mem-cache-hint-dag-combine.ll

Update cache hint metadata test after we stopped emitting kill flags in InstrEmitter (#231633)

https://github.com/llvm/llvm-project/commit/6b9cb66aa6c03212e5c107fc5ec2dbb48805764c
stopped emitting kill flags in InstrEmitter and
https://github.com/llvm/llvm-project/pull/225954/ was merged without
rebasing, leading to failures. Update this test.
DeltaFile
+9-9llvm/test/CodeGen/X86/mem-cache-hint-dag-combine.ll
+4-4llvm/test/CodeGen/X86/mem-cache-hint-dag-combine-i386.ll
+13-132 files

LLVM/project 4121de4 — llvm/lib/CodeGen/SelectionDAG SDNodeInfo.cpp

[SelectionDAG] Implement SDTCisVTSmallerThanOp/SDTCisOpSmallerThanOp in SDNodeInfo::verifyNode. (#230679)

I've tried to capture the rules based on what tablegen does:
-Both should be FP or int.
-Both should be vector or scalar.
-If the scalar size is smaller then they contraint is satisified.
-If the scalar size is equal, the total size must be smaller.

We throw an error for comparing the total size of a fixed and
scalable vector. I don't know if we have good examples of what the rules
should be for mixing.

Assisted-by: Claude
DeltaFile
+54-1llvm/lib/CodeGen/SelectionDAG/SDNodeInfo.cpp
+54-11 files

LLVM/project 16e51f1 — utils/bazel/llvm-project-overlay/libc BUILD.bazel

[Bazel] Fixes 3036a4f (#231646)

This fixes 3036a4f16c6bffefe7e4ab75b06cef197a91f323 (#221349).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=3036a4f16c6bffefe7e4ab75b06cef197a91f323

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+2-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+2-01 files

LLVM/project 35d45e9 — flang/include/flang/Semantics openmp-utils.h, flang/lib/Lower/OpenMP OpenMP.cpp

[flang][OpenMP] Fix variant selector identity and candidate ranking

Identify user conditions by a profile of the parsed expression instead of
their source text: names by their ultimate symbol and literals by value
and kind. Equivalent spellings of the same condition share an identity,
including across module imports, while distinct variables stay distinct.

Record unknown trait properties with addUnknownTrait instead of an invalid
trait, so their selectors still score under match_any and match_none.
Recognize construct={simd}.

Rank METADIRECTIVE candidates once against the complete candidate set and
keep that order when runtime guards fail, so removing a failed guard does
not restore the raw score of its strict subset. Represent the false
outcome under match_any and match_none with a false condition to preserve
selector identity, and score an implicit NOTHING like an explicit
replacement; explicitness only breaks ties.

Split from #224431.

    [2 lines not shown]
DeltaFile
+291-86flang/test/Lower/OpenMP/metadirective-user.f90
+373-0flang/test/Lower/OpenMP/declare-variant-condition-identity.f90
+168-102flang/lib/Semantics/openmp-utils.cpp
+81-0flang/test/Lower/OpenMP/metadirective-user-static.f90
+7-22flang/lib/Lower/OpenMP/OpenMP.cpp
+10-11flang/include/flang/Semantics/openmp-utils.h
+930-2212 files not shown
+962-2218 files

LLVM/project bd953c9 — clang/test/CodeGen codemodels.c, flang/test/Integration mcmodel.f90

Support module importing with differing code models

First, module-level code model information is stored as a module flag.
To support merging of modules with different module flag values, we add
a new module flag behavior, `Ignore`, which ignores differences between
values and takes the flag from the first module.

Second, when a module imports a value from another module with a
dfferent code model, the imported value should retain the code model of
its source module. A small value imported into a large module should
remain small in order to prevent disturbing other references to that
small value in its original module. At the same time, a large value
imported into a small module should remain large as otherwise the value
may not be reachable in the small value.

Co-authored-by: Alan Zhao <ayzhao at google.com>
DeltaFile
+21-0llvm/test/Linker/module-flags-ignore.ll
+11-6llvm/test/LTO/X86/largedatathreshold-3.ll
+11-0llvm/lib/Linker/IRMover.cpp
+2-8llvm/lib/IR/Module.cpp
+5-5flang/test/Integration/mcmodel.f90
+5-5clang/test/CodeGen/codemodels.c
+55-2410 files not shown
+86-4016 files

LLVM/project 47a5648 — llvm/lib/Transforms/Vectorize VectorCombine.cpp

fixup! Add TODO comment
DeltaFile
+2-0llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+2-01 files

LLVM/project 1538f4b — llvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/PhaseOrdering/X86 hsub.ll hadd.ll

[VectorCombine] Add instructions created by IRBuilder into Worklist automatically
DeltaFile
+31-49llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+15-49llvm/test/Transforms/VectorCombine/X86/concat-boolmasks.ll
+25-38llvm/test/Transforms/VectorCombine/X86/load-inseltpoison.ll
+4-4llvm/test/Transforms/PhaseOrdering/X86/hsub.ll
+4-4llvm/test/Transforms/PhaseOrdering/X86/hadd.ll
+0-2llvm/test/Transforms/VectorCombine/X86/extract-binop.ll
+79-1461 files not shown
+79-1477 files

LLVM/project 887ffdd — llvm/test/Transforms/PhaseOrdering/X86 hsub.ll hadd.ll

fixup! Re-generate some CHECKs
DeltaFile
+7-7llvm/test/Transforms/PhaseOrdering/X86/hsub.ll
+7-7llvm/test/Transforms/PhaseOrdering/X86/hadd.ll
+14-142 files

LLVM/project 40d50e3 — llvm/lib/CAS UnifiedOnDiskCache.cpp, llvm/test/tools/llvm-cas plugin-validation-crash.test logging.test

HashName as subdirectory

Created using spr 1.3.7
DeltaFile
+82-85llvm/lib/CAS/UnifiedOnDiskCache.cpp
+16-18llvm/unittests/CAS/UnifiedOnDiskCacheTest.cpp
+10-10llvm/test/tools/llvm-cas/validation.test
+7-7llvm/test/tools/llvm-cas/logging.test
+6-6llvm/test/tools/llvm-cas/plugin-validation-crash.test
+6-3llvm/tools/llvm-cas-fuzzer/cas-fuzzer.cpp
+127-1293 files not shown
+137-1389 files

LLVM/project b1a3b4c — clang/docs ReleaseNotes.md AllocToken.md, clang/lib/CodeGen CGExpr.cpp

[Clang][AllocToken] Support TypeFuncHash and TypeFuncHashPointerSplit modes (#228492)

Extend Clang to support the `-falloc-token-mode=typefunchash` and
`-falloc-token-mode=typefunchashpointersplit` modes, which were added 
to LLVM in #227686.

In these modes, CodeGen attaches the qualified name of the enclosing
function as the third operand of !alloc_token metadata. Allocations
outside functions use an empty function name. When type inference fails,
metadata is still emitted with an empty type name, so that a
function-based
token can be assigned. This allows distinguishing allocations that would
otherwise all share the fallback token.

Like the Increment and Random modes, `__builtin_infer_alloc_token()`
is not supported in constant expressions under these modes.
DeltaFile
+130-0clang/test/CodeGenCXX/alloc-token-typefunchash.cpp
+45-7clang/lib/CodeGen/CGExpr.cpp
+14-1clang/docs/AllocToken.md
+14-0clang/test/SemaCXX/alloc-token-typefunchash.cpp
+5-0clang/test/CodeGen/alloc-token-inline.c
+5-0clang/docs/ReleaseNotes.md
+213-83 files not shown
+217-129 files

LLVM/project d300b80 — lldb/include/lldb/Target BorrowedStackFrame.h, lldb/source/Target BorrowedStackFrame.cpp

[lldb] Forward step plans through BorrowedStackFrame (#231657)

When a frame provider returns an index relative to its input frames,
LLDB wraps that frame in a BorrowedStackFrame. BorrowedStackFrame
forwards most StackFrame methods to the frame it borrows, except for
GetThreadPlanForStepType, so a scripted frame lost its custom step plans
as soon as another provider was stacked on top of it.

Forward it like the methods, and test stepping with a pass-through
provider stacked on top of a provider whose frames have step plans.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+36-6lldb/test/API/functionalities/scripted_frame_provider/step_with_type/TestFrameProviderStepping.py
+28-0lldb/test/API/functionalities/scripted_frame_provider/step_with_type/frame_provider.py
+5-0lldb/source/Target/BorrowedStackFrame.cpp
+3-0lldb/include/lldb/Target/BorrowedStackFrame.h
+72-64 files