LLVM/project 3210e20clang/lib/CIR/Dialect/Transforms LoweringPrepare.cpp, clang/test/CIR/CodeGen array.cpp struct.cpp

[CIR] Implement shouldCreateMemCpyFromGlobal in LoweringPrepare (#181276)

CIRGen emits cir.const + cir.store for aggregate initialization, keeping
closer to source-level semantics. LoweringPrepare transforms stores of
constant aggregates (arrays, records) into cir.global + cir.get_global +
cir.copy, matching OG codegen's shouldCreateMemCpyFromGlobal
optimization.

The transform only applies to stores targeting cir.alloca (local
variables inside cir.func). Stores in other contexts (e.g. OpenACC
reduction recipe init blocks, base class initialization) are left as
cir.const + cir.store.

Also fixes CopyOp lowering to use i64 for the memcpy length instead of
i32, matching OG codegen behavior.
DeltaFile
+79-1clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+27-20clang/test/CIR/CodeGen/array.cpp
+28-19clang/test/CIR/CodeGen/struct.cpp
+17-11clang/test/CIR/CodeGen/pointer-to-member-func.cpp
+12-11clang/test/CIR/CodeGen/no-odr-use.cpp
+11-5clang/test/CIR/Lowering/array.cpp
+174-6715 files not shown
+244-11221 files

LLVM/project 63db233llvm/utils git-llvm-push

[LLVM][Utils] Fix automerge in git-llvm-push (#181766)

Enabling automerge can only be done using the GraphQL API. Add in some
basic GraphQL infrastructure and update the enable_automerge method to
call the GraphQL API to enable automerge for a PR.

Tested locally on #181762.

Closes #181634.
DeltaFile
+28-13llvm/utils/git-llvm-push
+28-131 files

LLVM/project dfacf88llvm/lib/Target/AArch64 AArch64SystemOperands.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

[AArch64][llvm] Remove `+xs` gating for `tlbip *nxs` instructions

A recent specification update has removed FEAT_XS gating for `tlbip *nxs`
instructions. It remains gated on FEAT_XS for `tlbi *nxs` instructions.
DeltaFile
+6-16llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+8-9llvm/test/MC/AArch64/armv9a-tlbip.s
+0-8llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
+2-2llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s
+1-2llvm/lib/Target/AArch64/AArch64SystemOperands.td
+17-375 files

LLVM/project 229aed4llvm/lib/Target/AArch64 AArch64SystemOperands.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

fixup! Make the code simpler following Marian's suggestions
DeltaFile
+15-16llvm/lib/Target/AArch64/AArch64SystemOperands.td
+14-13llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+6-11llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+35-403 files

LLVM/project 3b2844cllvm/lib/Target/AArch64 AArch64SystemOperands.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

[AArch64][llvm] Gate some `tlbip` insns with +tlbid or +d128

Change the gating of `tlbip` instructions containing `*E1IS*`, `*E1OS*`,
`*E2IS*` or `*E2OS*` to be used with `+tlbid` or `+d128`. This is because
the 2025 Armv9.7-A MemSys specification says:

```
  All TLBIP *E1IS*, TLBIP*E1OS*, TLBIP*E2IS* and TLBIP*E2OS* instructions
  that are currently dependent on FEAT_D128 are updated to be dependent
  on FEAT_D128 or FEAT_TLBID
```
DeltaFile
+259-0llvm/test/MC/AArch64/tlbip-tlbid-or-d128.s
+66-66llvm/test/MC/AArch64/armv9a-tlbip.s
+14-7llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+20-0llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+11-2llvm/lib/Target/AArch64/AArch64SystemOperands.td
+370-755 files

LLVM/project e48ee1cllvm/test/MC/AArch64 armv9-mrrs.s armv9-msrr.s

fixup! Fix Marian's PR comments
DeltaFile
+0-2llvm/test/MC/AArch64/armv9-mrrs.s
+0-2llvm/test/MC/AArch64/armv9-msrr.s
+0-2llvm/test/MC/AArch64/directive-arch_extension.s
+0-1llvm/test/MC/AArch64/directive-arch_extension-negative.s
+0-74 files

LLVM/project 091296flldb/docs/use/tutorials custom-symbol-resolution.md, lldb/examples/python/templates scripted_symbol_locator.py

[lldb] Revert scripted symbol locator (#181945)

This revert #181334 and its follow-up PRs (including #181488, #181492,
#181493, #181494 and #181498) as well as Ismail's documentation changes
(#181594, #181717). The original commit causes a test failure in CI
(https://github.com/llvm/llvm-project/issues/181938) but the more I look
at the patch, the more I'm convinced it was not ready to land. It will
be easier to iterate on the feedback by re-landing this than by using
post-commit review.
DeltaFile
+0-220lldb/examples/python/templates/scripted_symbol_locator.py
+0-201lldb/source/Plugins/SymbolLocator/Scripted/SymbolLocatorScripted.cpp
+0-193lldb/test/API/functionalities/scripted_symbol_locator/TestScriptedSymbolLocator.py
+0-165lldb/docs/use/tutorials/custom-symbol-resolution.md
+0-130lldb/source/Commands/CommandObjectTarget.cpp
+0-120lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedSymbolLocatorPythonInterface.cpp
+0-1,02943 files not shown
+13-1,81449 files

LLVM/project 3fc48b7llvm/test/MC/RISCV/rvv xsfvcp-invalid.s

[RISCV] Check the error location in xsfvcp-invalid.s. NFC (#181929)

Check that the error location points to the destination operand.

I'm planning to rewrite the code that generates that error, and I want
to make sure I get the location right.
DeltaFile
+10-10llvm/test/MC/RISCV/rvv/xsfvcp-invalid.s
+10-101 files

LLVM/project 54f3b39llvm/utils/TableGen DAGISelMatcherGen.cpp DAGISelMatcherEmitter.cpp

[TableGen] Rename TheMatcher->TheMatcherList. NFC (#181942)

After 8d971c0360f91729cc5120ffd361f7b55e97f2ab, there is a linked list
container object called MatcherList. We no long hold a pointer directly
to the first Matcher in the list.

Rename the variables to make this clearer.
DeltaFile
+10-11llvm/utils/TableGen/DAGISelMatcherGen.cpp
+6-6llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
+3-3llvm/utils/TableGen/DAGISelMatcher.h
+2-2llvm/utils/TableGen/DAGISelEmitter.cpp
+21-224 files

LLVM/project 216f640llvm/lib/LTO LTO.cpp, llvm/tools/gold gold-plugin.cpp

Fix gold plugin support for non-default Triple
DeltaFile
+15-10llvm/tools/gold/gold-plugin.cpp
+9-1llvm/lib/LTO/LTO.cpp
+24-112 files

LLVM/project 30ff575llvm/include/llvm/IR ModuleSummaryIndex.h, llvm/lib/LTO LTO.cpp

[ThinLTO] Distinguish symbols that are promoted
DeltaFile
+27-0llvm/test/ThinLTO/X86/export2.ll
+21-1llvm/include/llvm/IR/ModuleSummaryIndex.h
+9-0llvm/test/ThinLTO/X86/Inputs/export2.ll
+3-2llvm/lib/LTO/LTO.cpp
+1-1llvm/tools/llvm-link/llvm-link.cpp
+1-1llvm/lib/Transforms/IPO/FunctionAttrs.cpp
+62-52 files not shown
+64-78 files

LLVM/project 601c784llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

Fix formatting

Created using spr 1.3.7
DeltaFile
+1-3llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-31 files

LLVM/project 0fc9b74clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Add verifier for CIR try op (#181419)

This adds a verifier to enforce the requirement that every catch handler
in a cir.try operation must begin with a cir.catch_param operation.
DeltaFile
+45-0clang/test/CIR/IR/invalid-try-catch.cir
+32-0clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+8-0clang/test/CIR/IR/try-catch.cir
+1-0clang/include/clang/CIR/Dialect/IR/CIROps.td
+86-04 files

LLVM/project 0300a5bllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 bool-mask.ll

Address comments

Created using spr 1.3.7
DeltaFile
+8-8llvm/test/Transforms/SLPVectorizer/X86/bool-mask.ll
+11-4llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+19-122 files

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

[CIR][NFC] Upstream support for FP environments and RAII options (#179121)

This adds support for FP environment descriptions and RAII options for
FP operations, i.e.,`CIRGenFPOptionsRAII`).
DeltaFile
+71-0clang/lib/CIR/CodeGen/CIRGenFunction.cpp
+42-0clang/lib/CIR/CodeGen/CIRGenBuilder.h
+15-0clang/lib/CIR/CodeGen/CIRGenFunction.h
+7-0clang/include/clang/CIR/MissingFeatures.h
+1-0clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
+136-05 files

LLVM/project 027977emlir/include/mlir/Dialect/OpenACC OpenACCCGOps.td, mlir/lib/Dialect/OpenACC/IR OpenACC.cpp

[OpenACC] add acc.reduction_combine operation (#181853)

To facilitate codegen decisions, we need to create an operation that can
abstract the final update of the original and partial sum from a
reduction. This is represented within the combiner recipes. Having an
operator allows future lowering to clearly identify how to handle the
final accumulation. This is currently an NFC.

The format of this operation is:

```
  acc.reduction_combine %srcMemref into %destMemref <reductionOperator> : type
```
DeltaFile
+42-0mlir/include/mlir/Dialect/OpenACC/OpenACCCGOps.td
+17-0mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+10-0mlir/test/Dialect/OpenACC/ops.mlir
+69-03 files

LLVM/project d620763llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

Format a comment

Created using spr 1.3.7
DeltaFile
+1-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-11 files

LLVM/project 9a31d7bllvm/lib/Transforms/Vectorize SLPVectorizer.cpp

Remove extra parens

Created using spr 1.3.7
DeltaFile
+2-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+2-21 files

LLVM/project cf74bffllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 bool-mask.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+140-5llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+16-16llvm/test/Transforms/SLPVectorizer/X86/bool-mask.ll
+156-212 files

LLVM/project 2ec3429llvm/lib/Transforms/Scalar LowerMatrixIntrinsics.cpp, llvm/test/Transforms/LowerMatrixIntrinsics select.ll

feedback

Created using spr 1.3.7
DeltaFile
+5-1llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+2-2llvm/test/Transforms/LowerMatrixIntrinsics/select.ll
+7-32 files

LLVM/project 05c046ellvm/lib/CodeGen MachineInstr.cpp

[NFC][CodeGen] Minor cleanup in MachineInstr operand printing (#181892)

- Rename `getTiedOperandIdx` to `GetTiedOperandIdx` per LLVM CS.
- Do not compute tied operand index for defs, since tied operands are
printed only on uses.
- Restructure the `if` in the later operand printing loop to not compute
tied operand index/type for subreg-index imm operands.
DeltaFile
+11-12llvm/lib/CodeGen/MachineInstr.cpp
+11-121 files

LLVM/project 90d1a55llvm/test/CodeGen/AMDGPU annotate-kernel-features-hsa-call.ll branch-folding-implicit-def-subreg.ll

[NFC][AMDGPU] Use `zeroinitializer` instead of `null` for `ptr addrspace(2/3/5)` in AMDGPU tests (#181710)

DeltaFile
+25-24llvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa-call.ll
+21-21llvm/test/CodeGen/AMDGPU/branch-folding-implicit-def-subreg.ll
+8-8llvm/test/CodeGen/AMDGPU/regalloc-spill-wmma-scale.ll
+6-6llvm/test/CodeGen/AMDGPU/frame-index-elimination.ll
+5-5llvm/test/CodeGen/AMDGPU/debug-independence-revertScheduling.ll
+5-5llvm/test/CodeGen/AMDGPU/unstructured-cfg-def-use-issue.ll
+70-6965 files not shown
+180-17971 files

LLVM/project 9532f3fmlir/lib/Dialect/GPU/TransformOps GPUTransformOps.cpp, mlir/lib/Dialect/Utils StaticValueUtils.cpp

[mlir][gpu] Harden verification constraints in `transform.gpu.map_nested_forall_to_threads` (#170282)

Harden `transform.gpu.map_nested_forall_to_threads` to reject
non-positive block/grid sizes and handle zero-iteration dimensions
gracefully, preventing assertion failures in `computeProduct`.

Fix `getConstantIntValues` to return `std::nullopt` if any element is
non-constant, avoiding invalid zero placeholders.

Fixes: https://github.com/llvm/llvm-project/issues/73562
DeltaFile
+30-0mlir/test/Dialect/GPU/transform-gpu-failing.mlir
+16-4mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
+6-7mlir/lib/Dialect/Utils/StaticValueUtils.cpp
+52-113 files

LLVM/project 9a0d65cllvm/include/llvm/CodeGen CallBrPrepare.h InlineAsmPrepare.h, llvm/lib/CodeGen InlineAsmPrepare.cpp CallBrPrepare.cpp

[NFC][CodeGen] Rename CallBrPrepare pass to InlineAsmPrepare (#181547)

This is an NFC change to make room for a more generalized "prepare" pass
for inline assembly beyond CallBrInsts. In particular, changing how we
generate code for inline assembly with "rm" constraints.
DeltaFile
+0-433llvm/test/CodeGen/AArch64/callbr-prepare.ll
+433-0llvm/test/CodeGen/AArch64/inline-asm-prepare.ll
+254-0llvm/lib/CodeGen/InlineAsmPrepare.cpp
+0-252llvm/lib/CodeGen/CallBrPrepare.cpp
+0-23llvm/include/llvm/CodeGen/CallBrPrepare.h
+23-0llvm/include/llvm/CodeGen/InlineAsmPrepare.h
+710-70825 files not shown
+747-74531 files

LLVM/project 92ac31clldb/source/Target StackFrameList.cpp

[lldb] cast char8_t* to char* to allow std::string construction under C++20 (#181928)

After 5d5301dc0c, lldb fails to compile under C++20 with:

```
llvm-project/lldb/source/Target/StackFrameList.cpp:975:12: error: no viable conversion from returned value of type 'const char8_t *' to function return type 'std::string' (aka 'basic_string<char>')
  975 |     return show_unicode_marker ? u8" * " : u8"* ";
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

This PR reinterpret casts the unicode characters returned by
`GetFrameMarker` to `const char*`.
DeltaFile
+5-5lldb/source/Target/StackFrameList.cpp
+5-51 files

LLVM/project 2cb342cllvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVISelDAGToDAG.cpp, llvm/test/CodeGen/RISCV rv32p.ll

[RISCV] Add combines to form WSUBAU on RV32 with P. (#181604)

DeltaFile
+53-6llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+37-0llvm/test/CodeGen/RISCV/rv32p.ll
+8-8llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+2-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+100-144 files

LLVM/project 8240831lld/wasm SyntheticSections.cpp

[lld][WebAssembly] Add comment regarding DataCount section. NFC (#181869)

I noticed this was lacking while reviewing #175800
DeltaFile
+7-0lld/wasm/SyntheticSections.cpp
+7-01 files

LLVM/project 4dc4cf2llvm/lib/Target/AArch64 AArch64InstrInfo.td AArch64SystemOperands.td, llvm/test/MC/AArch64 armv9a-sysp.s armv9-mrrs.s

[AArch64][llvm] Remove `+d128` gating on `sysp`, `msrr` and `mrrs` instructions

Remove `+d128` gating on `sysp`, `msrr` and `mrrs` instructions.

We removed gating for `sys`, `mrs` and `mrs` instructions previously,
on the basis that it doesn't add value, as it doesn't indicate that
any particular system registers or system instructions are available.

Therefore, remove `+d128` gating for these too.

(In an upcoming change, some `tlbip` instructions, which are `sysp` aliases
are allowed to be used with either `+d128` or `tlbid`. If we don't remove
this gating, then it would require some ugly work-arounds in the code to
support the relaxation mandated by the 2025 MemSys specification.

In this change, retain `+d128` gating for all `tlbip` instructions, which
will then be loosened to either `+d128` or `+tlbid` in a subsequent change)
DeltaFile
+122-196llvm/test/MC/AArch64/armv9a-sysp.s
+7-97llvm/test/MC/AArch64/armv9-mrrs.s
+42-46llvm/lib/Target/AArch64/AArch64InstrInfo.td
+7-53llvm/test/MC/AArch64/armv9-msrr.s
+4-2llvm/lib/Target/AArch64/AArch64SystemOperands.td
+2-3llvm/test/MC/AArch64/directive-arch_extension-negative.s
+184-3973 files not shown
+190-3989 files

LLVM/project 5af4f4cllvm/test/MC/AArch64 directive-arch_extension-negative.s

fixup!

Adjust directive-arch_extension-negative.s
DeltaFile
+0-2llvm/test/MC/AArch64/directive-arch_extension-negative.s
+0-21 files

LLVM/project f2d8e82llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp, llvm/test/MC/AArch64 armv9a-sysp.s armv9a-tlbip.s

fixup! Fix Marian's PR comments
DeltaFile
+5-747llvm/test/MC/AArch64/armv9a-sysp.s
+749-0llvm/test/MC/AArch64/armv9a-tlbip.s
+2-1llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+1-1llvm/test/MC/AArch64/armv9-msrr.s
+1-1llvm/test/MC/AArch64/armv9-mrrs.s
+1-1llvm/test/MC/AArch64/directive-arch_extension.s
+759-7516 files