LLVM/project 0192c9fllvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp, llvm/test/MC/RISCV xqcili-load-address.s

[RISCV] Add assembler support to lower `la/lla` to `qc.e.li` (#205782)

This patch updates the `RISCVAsmParser::emitLoadLocalAddress` function
to enable lowering of the `la/lla` pseudos to `qc.e.li` from the
Qualcomm uC Xqcili extension.
DeltaFile
+41-0llvm/test/MC/RISCV/xqcili-load-address.s
+7-2llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+48-22 files

LLVM/project bf354feclang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp

[CIR] Add invariant attribute to cir.load (#204283)

Model LLVM's `!invariant.load` metadata on `cir.load` via an optional
`invariant` UnitAttr, lower it to the `llvm.load isInvariant` flag.
Update existing `LoadOp::create` call sites with new parameter.
DeltaFile
+31-0clang/test/CIR/CodeGen/vtable-load-invariant.cpp
+21-0clang/test/CIR/Lowering/load-invariant.cir
+20-0clang/test/CIR/IR/load-invariant.cir
+10-5clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
+6-5clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+9-1clang/include/clang/CIR/Dialect/IR/CIROps.td
+97-115 files not shown
+112-1911 files

LLVM/project e03a23blibcxx/src text_encoding.cpp, libcxx/test/std/localization/locales/locale/locale.members encoding.pass.cpp

[libc++] Cast 0 to `__locale_t` in `text_encoding.cpp` (#205882)

- As mentioned
https://github.com/llvm/llvm-project/pull/141312#issuecomment-4799649766,
platforms which define `locale_t` as not a pointer fail would fail to
compile. This should fix the picolibc case.
- As an aside, also disable the `encoding.pass.cpp` test for llvm-libc
as that also uses `__get_locale_encoding()`
DeltaFile
+1-1libcxx/src/text_encoding.cpp
+1-0libcxx/test/std/localization/locales/locale/locale.members/encoding.pass.cpp
+2-12 files

LLVM/project 06144adllvm/lib/Target/X86 X86TargetVerifier.cpp X86TargetMachine.cpp, llvm/test/Verifier/X86 target-verifier.ll lit.local.cfg

[X86] Add target verifier with subtarget-dependent checks

Add an X86 TargetVerify, registered by triple, so the target-independent
TargetVerifierPass dispatches to it for X86 modules.

These checks depend on the features in a function's target-cpu /
target-features attributes, which the generic triple-only IR verifier
cannot see. The MCSubtargetInfo is built from those attributes, so no
TargetMachine is needed and the pass runs from generic pipelines:

  - x86 instruction-set intrinsics (llvm.x86.avx/avx2/avx512.*) require
    the matching AVX/AVX2/AVX-512 feature.
  - 128/256-bit AVX-512 intrinsics additionally require AVX512VL.
  - The x86_amx type requires AMX-TILE.
DeltaFile
+151-0llvm/lib/Target/X86/X86TargetVerifier.cpp
+41-0llvm/test/Verifier/X86/target-verifier.ll
+6-0llvm/lib/Target/X86/X86TargetMachine.cpp
+6-0llvm/lib/Target/X86/X86.h
+2-0llvm/test/Verifier/X86/lit.local.cfg
+1-0llvm/lib/Target/X86/CMakeLists.txt
+207-06 files

LLVM/project c2f10e0llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/RISCV/rvv zvdot4a8i-sdnode.ll

[DAGCombiner] Fold multiplication through vp_merge into `partial_reduce_*mla` (#205890)

DAGCombiner is already doing this right now:
```
partial_reduce_*mla(acc, sel(p, mul(*ext(a), *ext(b)), splat(0)), splat(1))
   -> partial_reduce_*mla(acc, sel(p, a, splat(0)), b)
```
We should be able to have drop-in support for vp_merge (not for
vp_select though) as the select in the pattern above. This patch adds
such support.

The test is checking whether RISC-V's Zvdot4a8i instruction is
generated, as it depends on this pattern to fold away not just the
multiplication but also the sign / zero extensions.
DeltaFile
+36-0llvm/test/CodeGen/RISCV/rvv/zvdot4a8i-sdnode.ll
+13-4llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+49-42 files

LLVM/project 2919ad7clang/lib/Driver SanitizerArgs.cpp, clang/test/Driver fsanitize-shadow-call-stack-hexagon.c

[Hexagon] Add ShadowCallStack support (#200508)

Implement the software ShadowCallStack for Hexagon.

On Hexagon, r19 is used as the shadow stack pointer (reserved via
-ffixed-r19). On function entry the LR (r31) is saved to the shadow
stack and the pointer is advanced; on exit the LR is restored from the
shadow stack before returning.

Prologue sequence:

    r19 = add(r19, #4)
    memw(r19+#-4) = r31

Epilogue sequence (between deallocframe/jumpr r31):

    r31 = memw(r19+#-4)
    r19 = add(r19, #-4)


    [5 lines not shown]
DeltaFile
+141-13llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
+145-0llvm/test/CodeGen/Hexagon/shadow-call-stack.ll
+26-0compiler-rt/test/shadowcallstack/libc_support.h
+12-0clang/test/Driver/fsanitize-shadow-call-stack-hexagon.c
+7-1compiler-rt/test/shadowcallstack/lit.cfg.py
+8-0clang/lib/Driver/SanitizerArgs.cpp
+339-143 files not shown
+344-159 files

LLVM/project c675ecdllvm/test/CodeGen/AMDGPU div_v2i128.ll sched-handleMoveUp-dead-def-join.mir, llvm/test/MC/AMDGPU gfx13_asm_vop3_dpp16.s gfx12_asm_vop3_dpp16.s

Merge branch 'users/ikudrin/clang-findallocationfunction-simplify' into users/ikudrin/clang-cwg2282
DeltaFile
+12,991-3,310llvm/test/MC/AMDGPU/gfx13_asm_vop3_dpp16.s
+11,856-3,719llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s
+0-8,306llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp16.txt
+5,672-0llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp16-fake.txt
+2,592-2,587llvm/test/CodeGen/AMDGPU/div_v2i128.ll
+5,126-0llvm/test/CodeGen/AMDGPU/sched-handleMoveUp-dead-def-join.mir
+38,237-17,9224,926 files not shown
+211,717-158,8994,932 files

LLVM/project bf3a9d3llvm/lib/Target/AMDGPU AMDGPURewriteAGPRCopyMFMA.cpp, llvm/test/CodeGen/AMDGPU rewrite-vgpr-mfma-to-agpr-spill-discontiguous-interval.mir

[AMDGPU] Fix overlapping insert crash during rewrite-agpr-copy-mfma

Fixes https://github.com/llvm/llvm-project/issues/204224

Guard against a possibly wrong interference result for a discontiguous
stack slot interval by using the entire range.

A spilled stack slot can have a discontiguous live interval, e.g. a single
value live across several disjoint segments:

  [a, b)  [c, d)  ........gap........  [e, f)

with gaps where the slot is dead. The interference check previously only
considered the covered segments, so it could pick a PhysReg that is free
within them but busy inside a gap. Unspilling replaces the slot with a vreg
whose recomputed interval is continuous over [a, f) (it fills the gaps),
so assigning that PhysReg could overlap the value live in the gap and trip
the "Overlapping insert" assertion in LiveRegMatrix::assign. Checking
interference over the whole [a, f) hull avoids this.

    [2 lines not shown]
DeltaFile
+734-0llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-discontiguous-interval.mir
+14-1llvm/lib/Target/AMDGPU/AMDGPURewriteAGPRCopyMFMA.cpp
+748-12 files

LLVM/project 6062226llvm/test/tools/llubi byval.ll byval_padding.ll, llvm/tools/llubi/lib Interpreter.cpp

[llubi] Add support for byval pointer arguments (#201852)

This patch adds support for the byval attribute. The hidden copy is
implemented as memcpy with the allocation size of the specified type.
See https://github.com/llvm/llvm-project/pull/205576 for more
information.
DeltaFile
+56-1llvm/tools/llubi/lib/Interpreter.cpp
+56-0llvm/test/tools/llubi/byval.ll
+49-0llvm/test/tools/llubi/byval_padding.ll
+25-0llvm/test/tools/llubi/byval_lifetime.ll
+18-0llvm/test/tools/llubi/byval_oversize.ll
+18-0llvm/test/tools/llubi/byval_mismatch3.ll
+222-18 files not shown
+347-114 files

LLVM/project cf6d792clang/include/clang/Basic BuiltinsAMDGPU.td, clang/test/CodeGen amdgpu-builtin-processor-is.c amdgpu-builtin-is-invocable.c

[AMDGPU][GFX1250] Support asyncmark builtin (#205697)
DeltaFile
+4-3clang/test/CodeGenOpenCL/builtins-amdgcn-asyncmark-errs.cl
+3-3clang/include/clang/Basic/BuiltinsAMDGPU.td
+2-2clang/test/CodeGenCXX/dynamic-cast-address-space.cpp
+1-1clang/test/CodeGen/amdgpu-builtin-processor-is.c
+1-1clang/test/CodeGen/amdgpu-builtin-is-invocable.c
+1-0clang/test/CodeGenOpenCL/builtins-amdgcn-asyncmark.cl
+12-101 files not shown
+13-107 files

LLVM/project 3ddeaebcompiler-rt/lib/instrumentor-tools instrumentor_runtime.h README.md, compiler-rt/lib/instrumentor-tools/flop-counter flop_counter_runtime.cpp CMakeLists.txt

Revert "[Instrumentor] Add runtime examples: [1/N] A flop counter" (#205960)

This reverts commit 61cbfabb7ade682a64f516c871b2bacb1e3e324a.

Fails compiler-rt standalone builds, though, locally it works fine :(
DeltaFile
+0-293compiler-rt/lib/instrumentor-tools/instrumentor_runtime.h
+0-164compiler-rt/lib/instrumentor-tools/flop-counter/flop_counter_runtime.cpp
+0-82compiler-rt/lib/instrumentor-tools/flop-counter/CMakeLists.txt
+0-77compiler-rt/lib/instrumentor-tools/flop-counter/README.md
+0-75compiler-rt/test/instrumentor-tools/lit.cfg.py
+0-49compiler-rt/lib/instrumentor-tools/README.md
+0-74020 files not shown
+1-96626 files

LLVM/project bd53dfeflang/test/Semantics/CUDA cuf14.cuf cuf15.cuf

[flang][cuda][NFC] Fix some typos and misplaced comment (#205933)
DeltaFile
+2-2flang/test/Semantics/CUDA/cuf14.cuf
+2-2flang/test/Semantics/CUDA/cuf15.cuf
+1-1flang/test/Semantics/CUDA/cuf-proc-attr-error.cuf
+1-1flang/test/Semantics/CUDA/cuf09.cuf
+6-64 files

LLVM/project f0f5f77llvm/utils/gn/secondary/clang-tools-extra/unittests/clang-tidy BUILD.gn

[gn build] Port fcc105f40c8e (#205959)
DeltaFile
+1-0llvm/utils/gn/secondary/clang-tools-extra/unittests/clang-tidy/BUILD.gn
+1-01 files

LLVM/project df15df9llvm/utils/gn/secondary/llvm/unittests/IR BUILD.gn

[gn build] Port 2ce6fc677fdb (#205958)
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/unittests/IR/BUILD.gn
+1-01 files

LLVM/project a4404f2llvm/utils/gn/secondary/libcxx/include BUILD.gn, llvm/utils/gn/secondary/libcxx/src BUILD.gn

[gn] port 8a531c3608c7 (#205957)
DeltaFile
+1-0llvm/utils/gn/secondary/libcxx/include/BUILD.gn
+1-0llvm/utils/gn/secondary/libcxx/src/BUILD.gn
+2-02 files

LLVM/project 36b2048llvm/lib/Target/X86 X86FrameLowering.cpp, llvm/test/CodeGen/X86/apx push2-pop2.ll push2-pop2-cfi-seh.ll

[X86][APX] Implement push+push2+push pre-alignment strategy for PP2 (#205031)

Replace the dummy "push %rax" stack-alignment padding for APX push2/pop2
(PP2) with a push+push2+push strategy: when an even number of callee-saved
GPRs is involved, a single CSR push provides the 16-byte alignment instead
of a throwaway push %rax, and the remaining registers use push2/pop2. The
padForPush2Pop2 flag and its associated dummy push, SUB/LEA padding, and
SEH_StackAlloc emission in spill/restoreCalleeSavedRegisters are removed.

BuildStackAdjustment now uses NF (no-flags) variants of ADD/SUB, but
only as a smaller replacement for LEA, i.e. only when EFLAGS must be preserved
across the adjustment. When EFLAGS is dead the plain SUB/ADD is kept, which is
  shorter than the EVEX-encoded NF form. The NF opcodes are 64-bit
(SUB64ri32_NF/ADD64ri32_NF), so they are not used for the x32 ABI, and
they are recognized in mergeSPUpdates and the epilogue backward scan.

  Update LIT tests accordingly.

  Assisted-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
DeltaFile
+142-89llvm/test/CodeGen/X86/apx/push2-pop2.ll
+60-62llvm/test/CodeGen/X86/apx/push2-pop2-cfi-seh.ll
+40-40llvm/test/CodeGen/X86/apx/push2-pop2-cfi-seh-v3.ll
+65-0llvm/test/CodeGen/X86/apx/nf-stackadjust.ll
+32-27llvm/lib/Target/X86/X86FrameLowering.cpp
+18-18llvm/test/CodeGen/X86/apx/pp2-with-stack-clash-protection.ll
+357-2363 files not shown
+376-2639 files

LLVM/project c3652ballvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/VectorCombine/AArch64 icmp-vector-reduce.ll fold-reduce-add-cmp-zero.ll

[VectorCombine] Fold zero tests of or/umax reductions (#205622)

Recognize equality and inequality tests against zero on vector.reduce.or
and vector.reduce.umax. When profitable, replace the scalar reduction
and
compare with a lane-wise comparison followed by an i1 reduce.or or
reduce.and.

Run the existing zero-preserving reduction fold first to retain its more
specific canonicalization opportunities.

Proof: https://alive2.llvm.org/ce/z/pyoTwP
Fixed https://github.com/llvm/llvm-project/issues/205028
DeltaFile
+106-0llvm/test/Transforms/VectorCombine/X86/fold-reduction-zero-test.ll
+46-46llvm/test/Transforms/VectorCombine/RISCV/icmp-vector-reduce.ll
+82-0llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+40-40llvm/test/Transforms/VectorCombine/AArch64/icmp-vector-reduce.ll
+30-30llvm/test/Transforms/VectorCombine/X86/icmp-vector-reduce.ll
+20-20llvm/test/Transforms/VectorCombine/AArch64/fold-reduce-add-cmp-zero.ll
+324-1367 files not shown
+401-21613 files

LLVM/project cc91bbccompiler-rt/lib/instrumentor-tools instrumentor_runtime.h, compiler-rt/lib/instrumentor-tools/flop-counter flop_counter_runtime.cpp CMakeLists.txt

[Instrumentor] Add runtime examples: [1/N] A flop counter (#205698)

This adds a instrumentor-tools folder into compiler RT to showcase use
cases of the instrumentor. The initial example is a program that, via
instrumentation, counts the number of flops performed. Call and
intrinsic support will follow after #198042.

This is the second try with more CMake magic after
https://github.com/llvm/llvm-project/pull/205221 failed on some
platforms.

Partially developped by Claude (AI), tested and verified by me.
DeltaFile
+293-0compiler-rt/lib/instrumentor-tools/instrumentor_runtime.h
+164-0compiler-rt/lib/instrumentor-tools/flop-counter/flop_counter_runtime.cpp
+82-0compiler-rt/lib/instrumentor-tools/flop-counter/CMakeLists.txt
+77-0compiler-rt/lib/instrumentor-tools/flop-counter/README.md
+75-0compiler-rt/test/instrumentor-tools/lit.cfg.py
+49-0compiler-rt/test/instrumentor-tools/simple_flops.c
+740-020 files not shown
+966-126 files

LLVM/project a237019clang/unittests/Index CMakeLists.txt

[clang][index][USR] Fix build issue introduced in #205430 (#205954)

Add clangUnifiedSymbolResolution as dependency of clang index unit test.
DeltaFile
+1-0clang/unittests/Index/CMakeLists.txt
+1-01 files

LLVM/project e2ac42blldb/include/lldb/Utility FileSpec.h, lldb/source/Utility FileSpec.cpp

[lldb] Remove ConstString from FileSpec setters (#205944)
DeltaFile
+0-10lldb/source/Utility/FileSpec.cpp
+0-2lldb/include/lldb/Utility/FileSpec.h
+0-122 files

LLVM/project a9b50ffflang/lib/Lower OpenACC.cpp, flang/test/Lower/OpenACC acc-routine-bind-devtype-filter.f90 acc-routine-bind-clone-signature.f90

[flang][openacc] add acc.routine op for external names added in bind clauses. (#205591)

This adds acc.routine ops for the func.func ops that declare external
functions bound for device specific. This is needed to get the
ACCRoutineToGPUFunc pass to move the function declaration into the
correct region.

This is a follow-up from
[#203088](https://github.com/llvm/llvm-project/pull/203088) which
unblocked the original pass that was stalling bind clauses, but failed
further down the pipeline.
DeltaFile
+135-10flang/lib/Lower/OpenACC.cpp
+53-0flang/test/Lower/OpenACC/acc-routine-bind-devtype-filter.f90
+3-1flang/test/Lower/OpenACC/acc-routine-bind-clone-signature.f90
+2-1flang/test/Lower/OpenACC/acc-routine-bind-devtype-undeclared.f90
+2-1flang/test/Lower/OpenACC/acc-routine-bind-string-undeclared.f90
+2-1flang/test/Lower/OpenACC/acc-routine-bind-undeclared.f90
+197-146 files

LLVM/project d3ce9f0clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/Transforms/abi-lowering direct-flatten.cir coerce-record-to-record-via-memory.cir

[CIR] Implement Direct+canFlatten in CallConvLowering

ArgKind::Direct with a multi-field coerced struct and the canFlatten flag
means the coerced struct is passed as one scalar wire argument per field.
CallConvLowering was passing it as a single aggregate, ignoring canFlatten.

A new getFlattenedCoercedType helper recognizes the Direct+canFlatten arg
shape.  At the callee, insertArgCoercion replaces the single block argument
with N scalar block args, stores each into an alloca of the coerced struct
type, reloads it, and coerces back to the original argument type when the
coerced struct type differs from the original.  The Ignore-drop loop and
updateArgAttrs account for the N block-argument slots a flattened arg
occupies; updateArgAttrs also shapes them on the sret return path.

At the call site, when the operand type differs from the coerced struct
type the operand is coerced through a memory slot and each field is read
from that slot with cir.get_member + cir.load (via a new emitCoercionToMemory
helper that returns the coerce-slot pointer without loading the whole
aggregate); when the types already match each field is extracted directly

    [7 lines not shown]
DeltaFile
+259-0clang/test/CIR/Transforms/abi-lowering/direct-flatten.cir
+183-36clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+1-1clang/test/CIR/Transforms/abi-lowering/coerce-record-to-record-via-memory.cir
+443-373 files

LLVM/project 6a2bc78clang/unittests/Index CMakeLists.txt

[clang][index][USR] Fix build issue introduced in #205430

Add clangUnifiedSymbolResolution as dependency of clang index unit
test.
DeltaFile
+1-0clang/unittests/Index/CMakeLists.txt
+1-01 files

LLVM/project 6839533libcxx/include version, libcxx/include/__expected expected.h

Revert "[libc++]  P3798R1: The unexpected in std::expected (#204826)" (#205597)

Reverts 45a65bb48b5925707f43d08e30df2263a5e4e268.

Currently, there is no consensus among LWG and standard library
maintainers that P3798R1 should be applied as a Defect Report. So it is
better to revert the paper application for now and then reapply it as an
addition in C++29 when C++29 mode is ready.
DeltaFile
+0-42libcxx/test/std/utilities/expected/expected.void/observers/has_error.pass.cpp
+0-42libcxx/test/std/utilities/expected/expected.expected/observers/has_error.pass.cpp
+4-4libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
+4-4libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
+0-4libcxx/include/__expected/expected.h
+2-2libcxx/include/version
+10-985 files not shown
+13-10411 files

LLVM/project 5493585llvm/lib/Transforms/Scalar GVNSink.cpp

[llvm][GVNSink] Avoid non-determistic iteration order over NeededPHIs

The iteration order of DenseSet is not guaranteed, which affects the
output of code generated with GVNSink enabled. This can cause code to be
emitted in differing order, affect section ordering and in some cases
was reported to sometimes result in larger binaries due to increased
padding between sections.

This patch addresses this by using SetVector, which has a deterministic
iteration order.
DeltaFile
+3-4llvm/lib/Transforms/Scalar/GVNSink.cpp
+3-41 files

LLVM/project cd50ce0clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/Transforms/abi-lowering direct-flatten.cir coerce-record-to-record-via-memory.cir

[CIR] Implement Direct+canFlatten in CallConvLowering

ArgKind::Direct with a multi-field coerced struct and the canFlatten flag
means the coerced struct is passed as one scalar wire argument per field.
CallConvLowering was passing it as a single aggregate, ignoring canFlatten.

A new getFlattenedCoercedType helper recognizes the Direct+canFlatten arg
shape.  At the callee, insertArgCoercion replaces the single block argument
with N scalar block args, stores each into an alloca of the coerced struct
type, reloads it, and coerces back to the original argument type when the
coerced struct type differs from the original.  The Ignore-drop loop and
updateArgAttrs account for the N block-argument slots a flattened arg
occupies; updateArgAttrs also shapes them on the sret return path.

At the call site, when the operand type differs from the coerced struct
type the operand is coerced through a memory slot and each field is read
from that slot with cir.get_member + cir.load (via a new emitCoercionToMemory
helper that returns the coerce-slot pointer without loading the whole
aggregate); when the types already match each field is extracted directly

    [5 lines not shown]
DeltaFile
+183-36clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+211-0clang/test/CIR/Transforms/abi-lowering/direct-flatten.cir
+1-1clang/test/CIR/Transforms/abi-lowering/coerce-record-to-record-via-memory.cir
+395-373 files

LLVM/project f5d5ff9flang/docs OpenACC-extensions.md, flang/include/flang/Semantics semantics.h

[flang][semantics][OpenACC] Warn for DEFAULT(NONE) scalars by default (#205683)

Change OpenACC `DEFAULT(NONE)` scalar handling to use the
pre-OpenACC-3.2 scalar behavior by default while emitting a warning.
Scalars referenced in a `default(none)` compute region without an
explicit data clause now warn by default instead of erroring. Arrays and
other non-scalars still error under `default(none)`.

Users can opt into OpenACC 3.2 strict scalar behavior with:
`-fopenacc-default-none-scalars-strict` and the default scalar warning
can be suppressed with: `-Wno-openacc-default-none-scalars-strict`
DeltaFile
+13-17flang/docs/OpenACC-extensions.md
+28-0flang/unittests/Frontend/CompilerInstanceTest.cpp
+15-12flang/test/Semantics/OpenACC/acc-default-none-scalars-strict.f90
+12-12flang/test/Semantics/OpenACC/acc-default-none-scalars.f90
+9-0flang/include/flang/Semantics/semantics.h
+7-2flang/lib/Frontend/CompilerInvocation.cpp
+84-437 files not shown
+97-5013 files

LLVM/project c580406clang/lib/CIR/CodeGen CIRGenFunction.cpp CIRGenModule.cpp, clang/test/CIR/CodeGen goto-address-label-table.c label-values.c

[CIR] Wire const goto labels into indirect branch (#201644)

A computed goto through a constant dispatch table -- the GNU static
dispatch-table idiom `static const void *tbl[] = {&&L1, &&L2}; goto *tbl[i];`
-- reached `errorNYI("Indirect goto without a goto block")` in
`emitIndirectGotoStmt`. #203644 emits the label-address constant (the
value-like `#cir.block_addr_info`) into the table, but it takes a label's
address in a constant context without registering the label as address-taken,
so no indirect-goto block exists for the following `goto *tbl[i]` to branch to.
(#203644 landed the constant attribute, its lowering, and the GotoSolver label
retention; this is the remaining dispatch wiring.)

`VisitAddrLabelExpr` in the constant emitter now records each label via
`takeAddressOfConstantLabel`, which instantiates the indirect-goto block and
tracks the label; `finishIndirectBranch` then adds those labels as
`cir.indirect_br` successors alongside the existing op-form labels. A label
named more than once in a table is kept as a distinct successor each time, to
match classic codegen.


    [8 lines not shown]
DeltaFile
+104-0clang/test/CIR/CodeGen/goto-address-label-table.c
+23-29clang/lib/CIR/CodeGen/CIRGenFunction.cpp
+9-38clang/test/CIR/CodeGen/label-values.c
+0-23clang/lib/CIR/CodeGen/CIRGenModule.cpp
+12-4clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
+9-4clang/lib/CIR/CodeGen/CIRGenFunction.h
+157-983 files not shown
+162-1269 files

LLVM/project 7cb370dlldb/include/lldb/Breakpoint BreakpointName.h, lldb/source/Target Target.cpp

[lldb] Replace ConstString with std::string in BreakpointName (#205910)
DeltaFile
+9-10lldb/include/lldb/Breakpoint/BreakpointName.h
+3-2lldb/source/Target/Target.cpp
+12-122 files

LLVM/project 0c4cc9fclang/include/clang/Basic CodeGenOptions.def, clang/include/clang/Options Options.td

Revert "[Clang] Optionally use NewPM to run CodeGen Pipeline" (#205943)

Reverts llvm/llvm-project#205928

Is missing dependencies in a shared libraries build. Will investigate
offline.
DeltaFile
+17-77clang/lib/CodeGen/BackendUtil.cpp
+0-9clang/test/CodeGen/X86/newpm.c
+0-8clang/include/clang/Options/Options.td
+0-1clang/include/clang/Basic/CodeGenOptions.def
+17-954 files