LLVM/project f500911llvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp AMDGPUHWEvents.cpp

[AMDGPU][SIInsertWaitCnts] Remove VMemTypes (#206440)

This can be considered a RFC. I'd personally like to get rid of
VMEMTypes but I don't know if anyone feels strongly that they should be kept.

My motivation for removing VMemTypes is simple: They are just a repeat
of VMEM events, just under a different name, and messier (defined as a
basic enum but actually stored as a bitmask later). It's just confusing.

This patch eliminates the need for them by:

- Adding a new entrypoint in AMDGPUHWEvents to get the basic set of
VMEM events issued by a VMEM Instruction.
- Set BVH/SAMPLER events irrespective of whether the HW can track them.
These events exist anyway, it should be up to InsertWaitCnt to deal with
them
properly (which is easy, only `counterOutOfOrder` needed work).
- Tracking an additional set of per-VGPR "PendingEvents" which is
set using the "basic set of VMEM events" and cleared as needed.

    [3 lines not shown]
DeltaFile
+37-54llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+7-6llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
+11-0llvm/lib/Target/AMDGPU/AMDGPUHWEvents.h
+55-603 files

LLVM/project 400e4bellvm/lib/ExecutionEngine/JITLink x86_64.cpp, llvm/test/ExecutionEngine/JITLink/x86-64 ELF_gotpcrelx_no_relax.s ELF_got_plt_optimizations.s

[JITLink][x86-64] Fix GOTPCRELX call/jmp relaxation to use PC-relative fixup (#190179)

The GOTPCRELX optimization in `optimizeGOTAndStubAccesses()` relaxes
`call *foo at GOTPCREL(%rip)` → `addr32 call foo` and `jmp
*foo at GOTPCREL(%rip)` → `jmp foo; nop`,
but sets the edge kind to `Pointer32` (absolute). Since `e8`/`e9` are
PC-relative instructions,
`applyFixup` writes the absolute address instead of the displacement —
producing a garbage target
and SIGSEGV when JIT code is far from the callee (e.g., non-PIE
executable with an arena allocator).

**Fix:**
- Guard: `TargetInRangeForImmU32` → `DisplacementInRangeForImmS32`
(displacement must fit in signed 32-bit, not absolute address in
unsigned 32-bit)
- Edge kind: `Pointer32` → `BranchPCRel32` (so `applyFixup` writes
`Target - (Fixup + 4) + Addend`)


    [14 lines not shown]
DeltaFile
+37-0llvm/test/ExecutionEngine/JITLink/x86-64/ELF_gotpcrelx_no_relax.s
+4-2llvm/test/ExecutionEngine/JITLink/x86-64/ELF_got_plt_optimizations.s
+2-2llvm/lib/ExecutionEngine/JITLink/x86_64.cpp
+43-43 files

LLVM/project 075beb2llvm/lib/Target/AArch64 AArch64InstrFormats.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

[AArch64][llvm] Add support for FEAT_HINTE for Armv9.6 onwards

Add support for `FEAT_HINTE`, as defined in the Arm ARM M.c edition[1]

This defines the Extended Hint instruction space. `FEAT_HINTE` is
optional from Armv9.0, and mandatory from Armv9.6.

Add MC coverage for assembly, disassembly, diagnostics, generic sysreg
fallback behavior, Clang driver handling, and target parser extension
mapping.

[1] https://developer.arm.com/documentation/ddi0487/latest
DeltaFile
+52-0llvm/test/MC/AArch64/hinte.s
+27-0llvm/lib/Target/AArch64/AArch64InstrFormats.td
+25-1llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+19-0llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
+17-0llvm/test/MC/AArch64/hinte-diagnostics.s
+6-1llvm/unittests/TargetParser/TargetParserTest.cpp
+146-27 files not shown
+176-413 files

LLVM/project 7f73dd4cross-project-tests/debuginfo-tests/dexter/dex/dextIR StepIR.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging then_at_frame.cpp

[Dexter] Add at_frame_idx to check values in frames above current (#203505)

This patch adds a new attribute for !and nodes, `at_frame_idx`, which
matches against frames above its parent node; for example, in the
script:

```
!where {function: foo}:
  !where {function: bar}:
    !and {at_frame_idx: 1}:
      !value x: 0
```

The `!value x` node checks the value of 'x' in 'foo' while the debugger
is inside 'bar'. Use of this attribute comes with some restrictions: a
!where node can never be nested under a !and{at_frame_idx} node, and
neither can another !and{at_frame_idx} node.
DeltaFile
+61-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_at_frame_expected.cpp
+60-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_at_frame.cpp
+49-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_at_frame.cpp
+46-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_at_frame.cpp
+26-13cross-project-tests/debuginfo-tests/dexter/dex/dextIR/StepIR.py
+33-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/reject-bad-at_frame_idx.test
+275-1312 files not shown
+366-5218 files

LLVM/project 9f7dc77llvm/lib/Target/Sparc SparcAsmPrinter.cpp, llvm/test/CodeGen/SPARC tn0011.ll

[Sparc] Apply the GRLIB-TN-0011 errata workaround to ldstub (#205781)

Add ldstub to the list of atomic instruction that needs to be aligned.
DeltaFile
+8-0llvm/test/CodeGen/SPARC/tn0011.ll
+3-0llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
+11-02 files

LLVM/project 7e31f2cclang/docs ReleaseNotes.md, clang/include/clang/AST SubobjectVisitor.h

[clang][SYCL] Diagnose reference kernel parameters (#192957)

Per SYCL 2020 spec: Reference types are not trivially copyable, so they
may not be passed as kernel parameters.
This PR adds infrastructure for kernel object visiting and implements
diagnostics for reference kernel parameters.
The infrastructure will be also used for other kernel parameter
restrictions and functional code transformations that will be done in
separate PRs.

Assisted by: claude in unit test preparation

---------

Co-authored-by: Tom Honermann <tom at honermann.net>
DeltaFile
+215-0clang/test/SemaSYCL/sycl-kernel-param-restrictions.cpp
+132-0clang/unittests/AST/SubobjectVisitorTest.cpp
+128-0clang/include/clang/AST/SubobjectVisitor.h
+106-0clang/lib/Sema/SemaSYCL.cpp
+6-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+2-0clang/docs/ReleaseNotes.md
+589-01 files not shown
+590-07 files

LLVM/project abe984cllvm/include/llvm/CodeGen BasicTTIImpl.h, llvm/lib/Target/ARM ARMFeatures.td ARMTargetTransformInfo.h

[ARM] Specify inlining behavior in TableGen (#205763)

Move the ARM inlining feature whitelist into the SubtargetFeature
definitions. For this purpose, add a new InlineMustMatch inlining
behavior, for features where no differences between caller/callee are
allowed.

Additionally, mark all the tuning features as InlineIgnore and fix some
cases that were incorrectly omitted from the feature whitelist.

Fixes https://github.com/llvm/llvm-project/issues/65152.
DeltaFile
+108-55llvm/lib/Target/ARM/ARMFeatures.td
+0-134llvm/lib/Target/ARM/ARMTargetTransformInfo.h
+0-67llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
+13-0llvm/test/Transforms/Inline/ARM/inline-target-attr.ll
+7-0llvm/include/llvm/CodeGen/BasicTTIImpl.h
+5-1llvm/lib/Target/ARM/ARMArchitectures.td
+133-2574 files not shown
+145-25710 files

LLVM/project aa47e59clang/lib/CodeGen/Targets X86.cpp, llvm/lib/Target/X86 X86ISelLoweringCall.cpp

[X86][Windows] Return `fp128` on the stack (#204887)

Subsumes https://github.com/llvm/llvm-project/pull/194214

For x86-64 Windows targets, LLVM currently returns `fp128` in xmm0. This
does match `i128` (both Clang and GCC return `__int128` in xmm0) but
disagrees with GCC's behavior of returning `__float128` on the stack.

https://gcc.godbolt.org/z/xnWeGqcbW

Microsoft does not specify a `__float128` ABI so any decision is purely
an extension. The Windows x64 calling convention [1] does say that user-
defined types that do not fit in a register should be returned
indirectly, so the GCC behavior seems like a reasonable interpretation
of this rule.

Thus, change `fp128` to return on the stack for Windows targets. This is
done for both MinGW and MSVC targets; if official guidelines are ever
published, this can be revisited.

    [9 lines not shown]
DeltaFile
+341-110llvm/test/CodeGen/X86/fp128-libcalls-strict.ll
+179-72llvm/test/CodeGen/X86/fp128-libcalls.ll
+221-0llvm/test/CodeGen/X86/fp128-return-calling-conv.ll
+80-52llvm/test/CodeGen/X86/i128-fp128-abi.ll
+31-14clang/lib/CodeGen/Targets/X86.cpp
+37-0llvm/lib/Target/X86/X86ISelLoweringCall.cpp
+889-2483 files not shown
+909-2519 files

LLVM/project 09d944ebolt/lib/Passes IdenticalCodeFolding.cpp, bolt/test/X86 icf-safe-icp.test icf-safe-test1.test

[BOLT] Make ICF bucket iteration order deterministic for single-threaded mode (#200706)

`CongruentBuckets` is an unordered_map, so iterating it directly
produces non-deterministic folding order across different build
environments. Sort buckets by the binary address of the representative
function before iterating to guarantee a stable debug output order.

That order isn't matter for the output binary, but it cause randomly
different debug output across different build environments, which makes
it hard to write stable tests for ICF.

Also the debug output of multi-threaded ICF is already non-deterministic
even we sort that by address, so we only try to stabilize the
single-threaded ICF output.

Update the icf-safe tests to reflect the new deterministic ordering.

Assisted-by: Sonnet 4.6
DeltaFile
+22-12bolt/lib/Passes/IdenticalCodeFolding.cpp
+1-1bolt/test/X86/icf-safe-icp.test
+1-1bolt/test/X86/icf-safe-test1.test
+1-1bolt/test/X86/icf-safe-test2GlobalConstPtrNoPic.test
+25-154 files

LLVM/project f92c1fellvm/docs NVPTXUsage.rst, llvm/lib/Target/NVPTX NVPTXIntrinsics.td NVPTXISelLowering.cpp

[NVPTX] Add asynchronous store intrinsics (#200768)

Adds the following intrinsics for asynchronous store operations:
- `st.async`
- `st.async.sys`
- `st.async.gpu`
- `st.async.mmio.sys`

Tests verified through `ptxas-13.3`.
DeltaFile
+192-0llvm/test/CodeGen/NVPTX/st_async_release.ll
+129-0llvm/test/CodeGen/NVPTX/st_async_release_multimem.ll
+120-0llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
+96-3llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+97-0llvm/docs/NVPTXUsage.rst
+59-0llvm/test/CodeGen/NVPTX/st_async_mbarrier.ll
+693-35 files not shown
+764-411 files

LLVM/project fce96falibcxx/test/std/strings/basic.string/string.modifiers/string_assign pointer_size_size.pass.cpp

Update libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size_size.pass.cpp

Co-authored-by: A. Jiang <de34 at live.cn>
DeltaFile
+1-1libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size_size.pass.cpp
+1-11 files

LLVM/project 429afacllvm/lib/CodeGen/SelectionDAG SelectionDAGBuilder.cpp, llvm/lib/Target/AArch64 AArch64InstrInfo.cpp AArch64ISelLowering.cpp

[aarch64] Mix the frame pointer with the stack cookie when protecting the stack (#197346)

For MSVC-compatible targets on AArch64, mix the stack cookie with the
frame pointer (FP) to create a position-dependent guard value. This
strengthens protection against attacks where the attacker knows or can
predict the cookie value, as they would also need to know the exact
frame pointer location.

Implementation details:
- Uses SUB (FP - Cookie) instead of XOR like X86 because:
  * SUB maintains the existing AArch64 instruction selection patterns
  * SUB provides equivalent security properties (bijective mixing)
  * The result is still unpredictable without knowing both inputs
- The same SUB operation is performed in both prologue (to store the
  mixed value) and epilogue (to unmix and verify the cookie)
- Forces frame pointer usage for functions with stack guards on MSVCRT
  to ensure consistent addressing with dynamic stack allocation

This matches the MSVC behavior and strengthens stack protection on

    [2 lines not shown]
DeltaFile
+75-36llvm/test/CodeGen/AArch64/mingw-refptr.ll
+37-11llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+24-1llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+14-9llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll
+16-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+7-6llvm/test/CodeGen/AArch64/arm64ec-indirect-call.ll
+173-639 files not shown
+207-8015 files

LLVM/project 9e0aa61llvm/include/llvm/Analysis ScalarEvolution.h, llvm/lib/Analysis ScalarEvolution.cpp

[SCEV] Prove implied conditions via matching SCEV differences (#201839)

Add isImpliedCondOperandsViaMatchingDiff to fold equality comparisons
when getMinusSCEV(LHS, RHS) == getMinusSCEV(FoundLHS, FoundRHS).
This handles correlated IV comparisons in loops with multiple pointer
IVs sharing the same stride.
DeltaFile
+357-0llvm/test/Transforms/IndVarSimplify/X86/fold-correlated-iv-comparisons.ll
+0-76llvm/test/Transforms/LoopStrengthReduce/X86/lsr-icmpzero-no-inttoptr.ll
+47-0llvm/lib/Analysis/ScalarEvolution.cpp
+10-0llvm/include/llvm/Analysis/ScalarEvolution.h
+414-764 files

LLVM/project d1bd8d3llvm/lib/Target/Sparc Sparc.td

[Sparc] Enable CASA for the leon3 CPU target (#205810)

This matches the leon3 CPU target in GCC.
DeltaFile
+1-1llvm/lib/Target/Sparc/Sparc.td
+1-11 files

LLVM/project 5820350libc/include string.h.def link.h.def, libc/include/sys ucontext.h.def ucontext.yaml

[libc] Migrate header .def files to public_includes (#206727)

Now that public_includes is supported in header yaml files, we don't
need custom .h.def templates just to include another header.

This patch removes link.h.def, string.h.def, and ucontext.h.def and
moves their inclusions directly into
their yaml definitions:
- link.yaml: add elf.h
- string.yaml: add strings.h
- sys/ucontext.yaml: add ucontext.h

Assisted by Gemini.
DeltaFile
+0-21libc/include/string.h.def
+0-19libc/include/link.h.def
+0-16libc/include/sys/ucontext.h.def
+3-1libc/include/string.yaml
+2-1libc/include/link.yaml
+2-1libc/include/sys/ucontext.yaml
+7-596 files

LLVM/project 2b07bbflibcxx/docs/Status Cxx26Issues.csv, libcxx/include/__expected expected.h

[libc++] Resolve LWG4366: Heterogeneous comparison of `expected` may be ill-formed  (#185342)

Resolves #171362
- Implement proposed resolution
- Refactor `operator==` code to be more in line with the standard as the
current way was making an explicit `bool()` conversion in the `x.meow()
== y.meow()` cases
- Add test cases
- Update issues paper

---------

Co-authored-by: A. Jiang <de34 at live.cn>
DeltaFile
+20-0libcxx/test/std/utilities/expected/expected.expected/equality/equality.unexpected.pass.cpp
+17-0libcxx/test/support/test_comparisons.h
+12-0libcxx/test/std/utilities/expected/expected.expected/equality/equality.T2.pass.cpp
+8-4libcxx/include/__expected/expected.h
+1-1libcxx/docs/Status/Cxx26Issues.csv
+58-55 files

LLVM/project 4c27981compiler-rt/cmake/Modules CompilerRTUtils.cmake

[compiler-rt] Support triples that start with thumb*- (#206848)

thumb*- can be used as an alias for arm*- (implying -mthumb).
DeltaFile
+5-0compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+5-01 files

LLVM/project 3ad796aorc-rt/unittests ErrorExceptionInteropTest.cpp

[orc-rt] Fix unused function warning in testcase. (#206894)

Fixes -Wunused-function warning on peekAtErrorMessage by only defining
that function when ORC_RT_ENABLE_EXCEPTIONS has been turned on.
DeltaFile
+2-0orc-rt/unittests/ErrorExceptionInteropTest.cpp
+2-01 files

LLVM/project ac493bbclang/lib/Basic/Targets AArch64.cpp, clang/lib/Driver ToolChain.cpp

[TargetParser][AArch64][NFC] Reference ArchInfo via index (#206699)

This removes all relocations from CpuInfos so that the 3-4 kiB structure
can be stored in .rodata. Additionally, the ArchInfos pointer array is
replaced by an ArchInfos value array and the architecture names are
replaced by constexpr references.
DeltaFile
+18-15llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp
+9-8llvm/unittests/TargetParser/TargetParserTest.cpp
+8-8llvm/lib/TargetParser/AArch64TargetParser.cpp
+3-3clang/lib/Basic/Targets/AArch64.cpp
+2-2clang/lib/Driver/ToolChain.cpp
+1-1llvm/include/llvm/TargetParser/AArch64TargetParser.h
+41-376 files

LLVM/project 030e141orc-rt/unittests CallableTraitsHelperTest.cpp

[orc-rt] Silence an unneeded-internal-decl warning in testcase. (#206892)

Add an ODR-use of freeVoidVoidNoexcept to silence clang's
-Wunneeded-internal-declaration warning.
DeltaFile
+1-0orc-rt/unittests/CallableTraitsHelperTest.cpp
+1-01 files

LLVM/project 25d46e4llvm/lib/Transforms/IPO MergeFunctions.cpp, llvm/test/Transforms/MergeFunc merge-functions-entry-count-no-alias.ll merge-functions-entry-count-alias.ll

[MergeFunctions] Fix build failure in PR #202218 (#206651)

Address the build issue that caused the original change to be reverted
and reapply the fix.
DeltaFile
+157-0llvm/test/Transforms/MergeFunc/merge-functions-entry-count-no-alias.ll
+51-0llvm/test/Transforms/MergeFunc/merge-functions-entry-count-alias.ll
+23-0llvm/lib/Transforms/IPO/MergeFunctions.cpp
+231-03 files

LLVM/project 0b413b7llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp, llvm/lib/Target/ARM/AsmParser ARMAsmParser.cpp

[MC][TableGen] Make MCRegisterClasses relocation-free (#206753)

MCRegisterClasses currently store pointers to the register list and the
bit set. Store these three types together in one data structure and use
relative offsets to avoid these relocations and move the large
MCRegisterClasses array from .data.rel.ro into .data. This reduces the
amount of data that needs to be relocated by 86 KB.

This has two side effects: first, MCRegisterClass is not copyable and
the few uses that did copy were changed. Second, the MCRegisterClasses
array is no longer easily accessible as a global (well, it *technically*
is, but that requires the type of the entire storage struct, which I
don't want to expose). Therefore, these accesses need to go through a
function; which shouldn't be too costly and be inlined in an LTO build.
DeltaFile
+98-97llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+95-58llvm/utils/TableGen/RegisterInfoEmitter.cpp
+51-50llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+52-49llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+30-30llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+26-26llvm/test/TableGen/RegClassByHwModeCompressPat.td
+352-31025 files not shown
+482-42431 files

LLVM/project 8461c3borc-rt/include/orc-rt CallableTraitsHelper.h Error.h, orc-rt/unittests CallableTraitsHelperTest.cpp

[orc-rt] CallableTraitsHelper - record operator()'s noexcept-specifier (#206891)

Adds a `bool IsNoexcept` template parameter to CallableTraitsHelper's
impl-class template argument (after the existing IsConst from
4bab60f2c63). It records the noexcept-specification on the callable's
function type.

Specializations are added for noexcept-qualified forms. Existing
specializations propagate `IsNoexcept = false`. CallableArgInfoImpl
exposes the captured bool as `static constexpr bool is_noexcept`.

Existing pass-through adapters (ErrorHandlerTraitsImplAdapter,
ErrorWrapImplAdapter, WFHandlerTraitsImplAdapter) are updated to accept
and discard the additional argument.
DeltaFile
+68-14orc-rt/include/orc-rt/CallableTraitsHelper.h
+73-0orc-rt/unittests/CallableTraitsHelperTest.cpp
+3-2orc-rt/include/orc-rt/Error.h
+1-1orc-rt/include/orc-rt/WrapperFunction.h
+145-174 files

LLVM/project 33b81e3llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/MC/AMDGPU gfx11_asm_vopc.s

rebase

Created using spr 1.3.8-wip
DeltaFile
+19,967-19,033llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+13,779-6,871llvm/test/tools/llvm-mca/AArch64/Cortex/C1Ultra-sve-instructions.s
+10,260-9,388llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
+6,927-5,721llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+5,374-4,577llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+6,359-3,161llvm/test/tools/llvm-mca/AArch64/Cortex/C1Ultra-neon-instructions.s
+62,666-48,7512,347 files not shown
+262,318-138,9092,353 files

LLVM/project 3d8fafbllvm/lib/Target/X86 X86InsertX87Wait.cpp, llvm/test/CodeGen/X86 x87-insert-wait.mir

[X86] Insert WAIT before fnstenv/fnsave and skip meta-instructions (#204108)

fnstenv/fnsave (FSTENVm/FSAVEm) are non-waiting, so they don't
synchronize a pending FP exception; the WAIT pass shouldn't skip the
WAIT before them.

Also skip meta-instructions when finding the next op so WAIT placement
doesn't depend on -g.

Added a new X87ControlKind enum class to classify x87 control
instructions in the pass, replacing the existing ad-hoc switches.

Found via @jlebar's X86 LLVM bug-hunt / FuzzX effort:

https://github.com/SemiAnalysisAI/FuzzX/blob/master/x86/bugs/047-x87-insertwait-too-eager-skip

cc @jlebar
DeltaFile
+72-0llvm/test/CodeGen/X86/x87-insert-wait.mir
+25-27llvm/lib/Target/X86/X86InsertX87Wait.cpp
+97-272 files

LLVM/project 1ec43aeflang/lib/Lower/OpenMP OpenMP.cpp, mlir/lib/Dialect/OpenMP/IR OpenMPDialect.cpp

[flang][OpenMP] Lower target in_reduction for host fallback

Enable host-fallback lowering for target in_reduction in Flang and MLIR OpenMP translation.

Model target in_reduction through the matching map entry, force address-preserving implicit mapping for Flang in_reduction list items, and emit the host-side task-reduction lookup with __kmpc_task_reduction_get_th_data. The runtime entry point takes and returns a generic, default-address-space pointer, so normalize a non-default-address-space captured pointer to the generic address space before the call and cast the returned private pointer back to the map block argument's address space, mirroring the in_reduction handling on omp.taskloop. Unsupported device/offload-entry and richer reduction forms remain diagnosed.

Add Flang lowering, MLIR verifier/translation, and LLVM IR tests for the supported host-fallback path, including a non-default-address-space case, and the remaining unsupported cases.
DeltaFile
+131-14mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+95-21mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+110-3mlir/test/Target/LLVMIR/openmp-todo.mlir
+107-0mlir/test/Target/LLVMIR/openmp-target-in-reduction.mlir
+88-15flang/lib/Lower/OpenMP/OpenMP.cpp
+77-0mlir/test/Target/LLVMIR/openmp-target-in-reduction-multi.mlir
+608-5314 files not shown
+977-8020 files

LLVM/project 67f027cclang/lib/Driver ToolChain.cpp, clang/lib/Driver/ToolChains Clang.cpp

[TargetParser][AArch64][NFC] Use StringTable (#206698)

Store strings in a StringTable instead of referencing them via pointers.
This permits some data structures to be stored in .rodata instead of
.data.rel.ro, as they no longer require relocations. In particular this
affects the 16 kiB AArch64::Extensions.
DeltaFile
+35-32llvm/lib/TargetParser/AArch64TargetParser.cpp
+40-18llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp
+27-20llvm/include/llvm/TargetParser/AArch64TargetParser.h
+20-20llvm/unittests/TargetParser/TargetParserTest.cpp
+8-8clang/lib/Driver/ToolChain.cpp
+2-1clang/lib/Driver/ToolChains/Clang.cpp
+132-991 files not shown
+133-1007 files

LLVM/project 4bab60forc-rt/include/orc-rt CallableTraitsHelper.h Error.h, orc-rt/unittests CallableTraitsHelperTest.cpp

[orc-rt] CallableTraitsHelper - record call operator's const-qualifier (#206889)

Adds a leading `bool IsConst` template parameter to
CallableTraitsHelper's impl-class template argument to record the
const-qualifier on the callable's function type.

Existing specializations are updated to report their const qualifiers,
and a new specialization handles `RetT(ArgTs...) const`.

CallableArgInfo is updated to expose the captured bool as `static
constexpr bool is_const`.

Existing impls that do not consume the new parameter are adapted via
pass-through wrappers (ErrorHandlerTraitsImplAdapter,
ErrorWrapImplAdapter, WFHandlerTraitsImplAdapter) that discard the
leading bool.
DeltaFile
+63-0orc-rt/unittests/CallableTraitsHelperTest.cpp
+28-19orc-rt/include/orc-rt/CallableTraitsHelper.h
+8-2orc-rt/include/orc-rt/Error.h
+4-1orc-rt/include/orc-rt/WrapperFunction.h
+103-224 files

LLVM/project bae9ddcclang/lib/Format WhitespaceManager.cpp, clang/unittests/Format FormatTestComments.cpp

[clang-format] Fix a bug in recognizing trailing comments (#206393)

Test cases are borrowed/adapted from #196760.

Fixes #196663
DeltaFile
+36-0clang/unittests/Format/FormatTestComments.cpp
+2-0clang/lib/Format/WhitespaceManager.cpp
+38-02 files

LLVM/project 2301475flang/lib/Lower OpenACC.cpp, flang/test/Lower/OpenACC acc-declare-managed-no-global-ctor.f90

Revert "[flang][openacc] Skip implicit global declare constructor in managed mode" (#206884)

Reverts llvm/llvm-project#206610 as this might not be the right approach
DeltaFile
+0-30flang/test/Lower/OpenACC/acc-declare-managed-no-global-ctor.f90
+4-19flang/lib/Lower/OpenACC.cpp
+4-492 files