LLVM/project 32bb12b — llvm/lib/CodeGen ShadowStackGCLowering.cpp, llvm/lib/Target/DirectX DXILMemIntrinsics.cpp

[LLVM] Use CreatePtrAddFrom(Signed|Unsigned)Offset helpers more (#239153)

Both to simplify code and make sure that the correct offset type
is always used (some places were hardcoding 64 or 32 bits, which
may not match the pointer index type).
DeltaFile
+11-16llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+6-6llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+6-6llvm/lib/CodeGen/ShadowStackGCLowering.cpp
+4-7llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+5-5llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+4-3llvm/lib/Target/DirectX/DXILMemIntrinsics.cpp
+36-439 files not shown
+53-6415 files

LLVM/project 1c62b66 — llvm/test/CodeGen/NVPTX atomic-load-store-128-ptx83.ll load-store-128.ll

[NVPTX] Support native 128-bit atomic load + store (#236423)

Lower i128 atomic loads and stores to ld/st.b128 on SM 70 and newer with
PTX 8.3, instead of emulating them with compare-and-swap or exchange.

Split values into pairs of i64 operands and preserve the memory ordering
and scope so instruction selection inserts the required fences.

Add coverage for i128 and fp128 loads and stores, including memory
ordering, address spaces, volatile accesses, and unsupported targets.

Update scalar and elementwise atomic CAS loop checks to use 128-bit
loads.

Assisted by: Codex

---------

Co-authored-by: Akshay Deodhar <adeodhar at nvidia.com>
DeltaFile
+447-1,183llvm/test/CodeGen/NVPTX/atomicrmw-elementwise-sm90.ll
+384-672llvm/test/CodeGen/NVPTX/store-sm90.ll
+288-672llvm/test/CodeGen/NVPTX/load-sm90.ll
+484-0llvm/test/CodeGen/NVPTX/atomic-load-store-128.ll
+332-0llvm/test/CodeGen/NVPTX/load-store-128.ll
+131-0llvm/test/CodeGen/NVPTX/atomic-load-store-128-ptx83.ll
+2,066-2,52712 files not shown
+2,529-2,59618 files

LLVM/project 3a2f0ae — flang/lib/Semantics check-omp-structure.cpp, flang/test/Semantics/OpenMP reduction-array-singleton.f90

[flang][OpenMP] Avoid duplicate array section diagnostics (#238889)

Follow up to
https://github.com/llvm/llvm-project/pull/235855#pullrequestreview-5756315151

Assisted-by: AI
DeltaFile
+14-0flang/test/Semantics/OpenMP/reduction-array-singleton.f90
+3-1flang/lib/Semantics/check-omp-structure.cpp
+17-12 files

LLVM/project d5d7694 — llvm/test/tools/llvm-readobj/wasm stackmap.test unwind.test, llvm/tools/llvm-readobj WasmDumper.cpp

[llvm-readobj] Avoid crashes for unsupported WebAssembly options (#237555)

Fix crashes when using --unwind, --stackmap, or --all on valid
WebAssembly object files. Before that WasmDumper used llvm_unreachable
for unwind information and stack maps, while they could be reached with
valid command line options. The fix replaces handlers with empty
functions to avoid crashing

AI assisted with understanding the issue, producing tests, and reviewing
implementation. I also ran the focused tests locally

Fixes #226398
DeltaFile
+19-0llvm/test/tools/llvm-readobj/wasm/all.test
+11-0llvm/test/tools/llvm-readobj/wasm/stackmap.test
+11-0llvm/test/tools/llvm-readobj/wasm/unwind.test
+2-2llvm/tools/llvm-readobj/WasmDumper.cpp
+43-24 files

LLVM/project e556de4 — clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/Transforms/abi-lowering amdgpu-byref.cir indirect-byval.cir

[CIR][AMDGPU] Look through address_space views when forwarding indirect args
DeltaFile
+29-20clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+47-0clang/test/CIR/Transforms/abi-lowering/indirect-non-byval-forward-param.cir
+0-45clang/test/CIR/Transforms/abi-lowering/indirect-non-byval-nyi.cir
+9-11clang/test/CIR/Transforms/abi-lowering/indirect-byval.cir
+16-0clang/test/CIR/Transforms/abi-lowering/amdgpu-byref.cir
+101-765 files

LLVM/project 59edc10 — clang/lib/StaticAnalyzer/Checkers StdLibraryFunctionsChecker.cpp, clang/test/Analysis std-c-library-functions-restrict.cpp std-c-library-functions-restrict.c

[analyzer] Match standard libraries regardless `restrict` qualifier

Remove the `restrict` sensitivity from StdLibraryFunctionsChecker to
simplify the code and remove the risk of a failure to match.

c5dd283d2f2409dfca13628e15bbf0e526dfc3f0 demonstrates that UCRT does not
specify the `restrict` qualifiers leading to non-matches in
StdLibraryFunctionsChecker. There might be other non-standard-compliant
libc implementations that share this drawback.

The `restrict` sensitivity does not seem to improve analyzer precision
in any practical case, yet it increases code complexity and adds a risk
of FNs as happened with UCRT.

--

CPP-9480
DeltaFile
+66-154clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
+8-15clang/test/Analysis/std-c-library-functions-restrict-msvc.c
+2-9clang/test/Analysis/std-c-library-functions-restrict.c
+2-5clang/test/Analysis/std-c-library-functions-restrict.cpp
+78-1834 files

LLVM/project 1843ebb — llvm/lib/CodeGen/GlobalISel CombinerHelper.cpp, llvm/test/CodeGen/AArch64 combine-sdiv.ll

[GlobalISel] Expand sdiv/srem by constant when G_SMULH splits into legal pieces (#235860)

`matchSDivOrSRemByConst` required `G_SMULH` to be legal for the exact
type, so wide vectors were scalarized into one `sdiv` per lane. This
also accepts types that the legalizer splits (`FewerElements`) into
legal pieces. Types where `G_SMULH` would be lowered instead, such as
`<2 x i64>`, are still rejected, as the expansion would be more
expensive than the scalar divisions there.

On AArch64  for `sdiv` by `<7, 6, 7, 6, ...>`:

| type | before | after | SelectionDAG |
|---|---|---|---|
| `<8 x i32>` | 26 (8 × `sdiv`) | 19 | 19 |
| `<16 x i16>` | 16 × `sdiv` | 14 | 13 |
| `<32 x i8>` | 32 × `sdiv` | 17 | 17 |
| `<2 x i64>` | 8 (2 × `sdiv`) | 8 | 15 |
DeltaFile
+61-239llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
+53-244llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
+171-0llvm/test/CodeGen/AArch64/combine-sdiv.ll
+20-64llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i32.ll
+11-43llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i32.ll
+1-1llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
+317-5916 files

LLVM/project 102778b — llvm/docs AMDGPUUsage.md, llvm/lib/Target/AMDGPU SIInstrInfo.h SIMemoryLegalizer.cpp

[AMDGPU][SIMemoryLegalizer] Consider scratch operations as NV=1 if GAS is disabled

- Clarify that `thread-private` MMO flag is still useful.
- If GAS is not enabled (which is the default as of last patch), consider an op as `NV=1` if it's a `scratch_` opcode, or if the MMO is in the private AS.
- Add tests for the new cases.
- Update AMDGPUUsage GFX12.5 memory model
DeltaFile
+181-0llvm/test/CodeGen/AMDGPU/memory-legalizer-non-volatile.mir
+75-36llvm/test/CodeGen/AMDGPU/memory-legalizer-non-volatile.ll
+15-4llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
+6-6llvm/test/CodeGen/AMDGPU/memory-legalizer-cfs-policy.ll
+3-1llvm/lib/Target/AMDGPU/SIInstrInfo.h
+2-0llvm/docs/AMDGPUUsage.md
+282-476 files

LLVM/project 3b61474 — lldb/source/Plugins/Process/Utility RegisterContextDarwin_riscv32.cpp RegisterContextDarwin_arm.cpp, lldb/source/Plugins/Register/Darwin RegisterContextDarwin_riscv32.cpp RegisterContextDarwin_arm.cpp

Merge branch 'main' into users/zero9178/remove-redundant-generated-includes
DeltaFile
+0-1,738lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp
+1,738-0lldb/source/Plugins/Register/Darwin/RegisterContextDarwin_arm.cpp
+847-847llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-joint-dom-mir.mir
+773-773llvm/test/CodeGen/AMDGPU/NextUseAnalysis/acyclic-770bb.mir
+0-1,313lldb/source/Plugins/Process/Utility/RegisterContextDarwin_riscv32.cpp
+1,313-0lldb/source/Plugins/Register/Darwin/RegisterContextDarwin_riscv32.cpp
+4,671-4,6712,391 files not shown
+46,915-29,9912,397 files

LLVM/project f1e06f4 — llvm/lib/Remarks YAMLRemarkParser.cpp, llvm/lib/Support YAMLTraits.cpp

[Remarks][Support] Make YAML remark arguments round-trip

The remark serializer writes an argument value with more than one
newline as a literal block scalar. A block scalar has no escapes, so a
value that also held a control character was written with the raw byte,
which strict YAML readers reject. Output::blockScalarString now falls
back to a double-quoted scalar when a literal block cannot hold the
value: a non-printable character (C1 controls, and NEL, LS and PS,
which YAML 1.1 readers take as line breaks), a carriage return, or a
first line that starts with a space. Input accepts either form.

The remark parser took the raw scalar text and stripped only single
quotes, so double-quoted values came back with their quotes and
escapes. Decode scalars with ScalarNode::getValue and report escape
errors. Reject values that decode to a NUL, since the bitstream string
table stores NUL-terminated strings.

Output::blockScalarString always wrote "|", which keeps exactly one
trailing newline. Write "|-" or "|+" when needed. MIR output does not

    [3 lines not shown]
DeltaFile
+63-0llvm/unittests/Remarks/YAMLRemarksSerializerTest.cpp
+48-7llvm/unittests/Support/YAMLIOTest.cpp
+51-0llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp
+44-0llvm/lib/Support/YAMLTraits.cpp
+17-17llvm/lib/Remarks/YAMLRemarkParser.cpp
+18-0llvm/test/tools/llvm-remarkutil/yaml2bitstream-control.test
+241-242 files not shown
+255-268 files

LLVM/project 208aff9 — llvm/test/CodeGen/AMDGPU memory-legalizer-private-wavefront.ll memory-legalizer-private-singlethread.ll

[AMDGPU] Make globally-addressable-scratch opt-in

This feature is meant to be opt-in for more advanced users, not default-enabled.
It may reduce performance otherwise as we can't assume private AS is thread-local
when it is enabled.

Make it controllable via a `-amdgpu-globally-addressable-scratch` CL option and disable it by default.
DeltaFile
+7,447-6,566llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
+6,937-6,910llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
+8,148-4,195llvm/test/CodeGen/AMDGPU/memory-legalizer-private-cluster.ll
+8,159-4,158llvm/test/CodeGen/AMDGPU/memory-legalizer-private-workgroup.ll
+8,007-4,006llvm/test/CodeGen/AMDGPU/memory-legalizer-private-wavefront.ll
+8,007-4,006llvm/test/CodeGen/AMDGPU/memory-legalizer-private-singlethread.ll
+46,705-29,84115 files not shown
+46,934-29,94421 files

LLVM/project ea0fe45 — llvm/lib/Target/AArch64 AArch64InstrInfo.td AArch64InstrFormats.td, llvm/test/CodeGen/AArch64 arm64-vabs.ll arm64-neon-mul-div-cte.ll

[AArch64] Only fold single-use shifts into SSRA/USRA (#238937)

In the signed division by constant sequence, GlobalISel folded the wrong
shift into the accumulate, so the arithmetic shift was computed twice:

    sshr v0.8b, v1.8b, #2
    ushr v0.8b, v0.8b, #7
    ssra v0.8b, v1.8b, #2

This only folds a shift into SSRA/USRA when the shift has one use, so
GlobalISel now picks USRA, like SelectionDAG:

    sshr v0.8b, v0.8b, #2
    usra v0.8b, v0.8b, #7

Also adds a GlobalISel run line and two tests for this to
`shift-accumulate.ll`.
DeltaFile
+196-70llvm/test/CodeGen/AArch64/shift-accumulate.ll
+98-158llvm/test/CodeGen/AArch64/rem-by-const.ll
+15-28llvm/test/CodeGen/AArch64/arm64-neon-mul-div-cte.ll
+10-0llvm/lib/Target/AArch64/AArch64InstrFormats.td
+4-4llvm/test/CodeGen/AArch64/arm64-vabs.ll
+2-2llvm/lib/Target/AArch64/AArch64InstrInfo.td
+325-2626 files

LLVM/project f17edbc — mlir/lib/Dialect/Linalg/IR LinalgOps.cpp, mlir/lib/Dialect/Vector/IR VectorOps.cpp

[mlir][vector] Disallow pure reduction dims in vector.contract (#237709)

Require every reduction dimension in `vector.contract` to appear in both
LHS and RHS. This disallows one-sided ("pure") reduction dimensions and
aligns the restriction with `linalg.contract`.

For example, the following contraction has two reduction dimensions:
`r2` appears in both inputs, while `r1` appears only in LHS. This PR
makes such contractions fail verification:

```mlir
%res = vector.contract {
  indexing_maps = [
    affine_map<(r1, p, r2) -> (r1, r2)>,
    affine_map<(r1, p, r2) -> (p, r2)>,
    affine_map<(r1, p, r2) -> (p)>
  ],
  iterator_types = ["reduction", "parallel", "reduction"],
  kind = #vector.kind<add>

    [17 lines not shown]
DeltaFile
+28-7mlir/test/Dialect/Vector/invalid.mlir
+0-28mlir/test/Dialect/Vector/vector-contract-to-dot-transforms.mlir
+24-0mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+0-18mlir/test/Conversion/VectorToXeGPU/contract-to-xegpu.mlir
+3-13mlir/lib/Dialect/Vector/Transforms/LowerVectorContract.cpp
+3-6mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
+58-722 files not shown
+59-748 files

LLVM/project 30c60e6 — llvm/test/CodeGen/AArch64 fixed-length-masked-stores.ll fixed_masked_interleaved_stores.ll, llvm/test/Transforms/ScalarizeMaskedMemIntrin/AArch64 expand-masked-store.ll expand-masked-load.ll

Reland "[AArch64] Make all fixed-width masked loads/stores legal on SVE targets" (#238786)

Relands #232757, which was reverted in #238371. I mistakenly thought my
PR was the cause of this buildbot failure:

https://lab.llvm.org/buildbot/#/builders/4/builds/13777

but it turned out to be introduced by #197391.
DeltaFile
+508-437llvm/test/CodeGen/AArch64/fixed_masked_deinterleaved_loads.ll
+96-812llvm/test/CodeGen/AArch64/fixed-length-masked-loads.ll
+472-429llvm/test/CodeGen/AArch64/fixed_masked_interleaved_stores.ll
+98-723llvm/test/CodeGen/AArch64/fixed-length-masked-stores.ll
+393-3llvm/test/Transforms/ScalarizeMaskedMemIntrin/AArch64/expand-masked-load.ll
+357-1llvm/test/Transforms/ScalarizeMaskedMemIntrin/AArch64/expand-masked-store.ll
+1,924-2,4051 files not shown
+1,924-2,4117 files

LLVM/project b842217 — llvm/include/llvm/ADT ImmutableSet.h FoldingSet.h

Revert "[ADT] Add LLVM_ATTRIBUTE_WARN_UNUSED to five ADT classes" (#239152)

Reverts llvm/llvm-project#237802

GCC 12 cannot handle:

class [[nodiscard]] __attribute__((warn_unused)) APInt { ... };
DeltaFile
+1-3llvm/include/llvm/ADT/DenseSet.h
+1-2llvm/include/llvm/ADT/ImmutableMap.h
+1-1llvm/include/llvm/ADT/ImmutableSet.h
+1-1llvm/include/llvm/ADT/FoldingSet.h
+1-1llvm/include/llvm/ADT/APInt.h
+5-85 files

LLVM/project 8726a1c — clang/lib/CIR/Dialect/Transforms CIRSimplify.cpp, clang/test/CIR/Transforms simplify-load-in-ternary.cir

[CIR] Run SimplifyConstantLoad in the same driver as the other patterns (#238767)

CIRSimplify ran SimplifyConstantLoad in a second greedy driver because
the pattern cached a DominanceInfo that the ternary and switch rewrites
could leave stale. That split needed a second op list, pruned of the
loads the first driver erased (llvm/llvm-project#238505 fused the two
collection walks but kept the split and the pruning), and it missed
simplifications: a load inside a ternary branch only folded in the
second driver, after the ternary pattern had already rejected that
branch as non-trivial.

This change shares one DominanceInfo between the pass and the pattern
and keeps it coherent with a listener that drops a region's cached tree
whenever its block list changes, so all patterns run in one driver over
one worklist.

Assisted-by: Claude Code (claude-fable-5-1).
DeltaFile
+40-53clang/lib/CIR/Dialect/Transforms/CIRSimplify.cpp
+27-0clang/test/CIR/Transforms/simplify-load-in-ternary.cir
+67-532 files

LLVM/project 9af1113 — llvm/include/llvm/CodeGen RegisterBankInfo.h, llvm/lib/CodeGen RegisterBankInfo.cpp

[GlobalISel] Remove obsolete RegisterBankInfo::getSizeInBits (NFC) (#238744)

With the getMinimalPhysRegClass cache obsolete (#238351) this helper is
equivalent to TargetRegisterInfo::getRegSizeInBits.

Assisted-by: codex
DeltaFile
+40-40llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
+8-22llvm/lib/CodeGen/RegisterBankInfo.cpp
+9-9llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+8-8llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
+0-9llvm/include/llvm/CodeGen/RegisterBankInfo.h
+4-4llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+69-924 files not shown
+77-10010 files

LLVM/project ffcf434 — llvm/lib/Target/AMDGPU AMDGPUSearchableTables.td, llvm/test/Analysis/UniformityAnalysis/AMDGPU intrinsics.ll

[AMDGPU] Mark exclusive scan intrinsics as sources of divergence (#237268)
DeltaFile
+91-0llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
+42-42llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exclusive.scan.ll
+13-0llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
+146-423 files

LLVM/project a7b411e — llvm/test/CodeGen/LoongArch/lasx vselect.ll, llvm/test/CodeGen/LoongArch/lsx vselect.ll

update after rebase
DeltaFile
+23-19llvm/test/CodeGen/LoongArch/lsx/vselect.ll
+4-8llvm/test/CodeGen/LoongArch/lasx/vselect.ll
+27-272 files

LLVM/project 05aa4de — clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp, clang/test/CIR/Transforms/abi-lowering amdgpu-sret-nontrivial.cir

[CIR][AMDGPU] Look through address_space views of __retval in insertSRetStores
DeltaFile
+54-0clang/test/CIR/Transforms/abi-lowering/amdgpu-sret-nontrivial.cir
+28-4clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+82-42 files

LLVM/project c522a1e — llvm/lib/Target/LoongArch LoongArchISelLowering.cpp

fix typo
DeltaFile
+1-1llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+1-11 files

LLVM/project 63b4537 — llvm/lib/Target/LoongArch LoongArchISelLowering.h LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch/lasx vselect.ll

[LoongArch] Custom legalize vselect to vector_shuffle for most constant condition cases
DeltaFile
+48-36llvm/test/CodeGen/LoongArch/lasx/vselect.ll
+44-34llvm/test/CodeGen/LoongArch/lsx/vselect.ll
+49-2llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+1-0llvm/lib/Target/LoongArch/LoongArchISelLowering.h
+142-724 files

LLVM/project cb20a8e — llvm/include/llvm/ADT ImmutableSet.h FoldingSet.h

[ADT] Add LLVM_ATTRIBUTE_WARN_UNUSED to five ADT classes (#237802)

This patch adds LLVM_ATTRIBUTE_WARN_UNUSED to the following classes so
that compilers can diagnose unused variables of these types even though
they have non-trivial constructors and destructors:

- APInt
- DenseSet
- FoldingSetNodeID
- ImmutableMap
- ImmutableSet

Other ADT classes are left alone for now because adding the attribute
to them would trigger warnings in existing code.

Assisted-by: Antigravity
DeltaFile
+3-1llvm/include/llvm/ADT/DenseSet.h
+2-1llvm/include/llvm/ADT/ImmutableMap.h
+1-1llvm/include/llvm/ADT/ImmutableSet.h
+1-1llvm/include/llvm/ADT/FoldingSet.h
+1-1llvm/include/llvm/ADT/APInt.h
+8-55 files

LLVM/project 7a3ca9d — llvm/docs AMDGPUDMAOperations.md

eliminate "grouped together" semantics; add section on false sharing
DeltaFile
+37-26llvm/docs/AMDGPUDMAOperations.md
+37-261 files

LLVM/project 0585569 — llvm/docs AMDGPUUsage.md

[Doc][AMDGPU] Document the waitcnts required before SCOPE_SYS stores on GFX12 (#238733)

This case was undocumented until now.
Reboot of #156424
DeltaFile
+42-5llvm/docs/AMDGPUUsage.md
+42-51 files

LLVM/project e219200 — llvm/lib/Target/LoongArch LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch/lasx shuffle-as-bswap.ll bitreverse.ll

[LoongArch] Custom legalize vector_shuffle to bswap
DeltaFile
+37-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+2-3llvm/test/CodeGen/LoongArch/lsx/shuffle-as-bswap.ll
+2-3llvm/test/CodeGen/LoongArch/lsx/bitreverse.ll
+2-3llvm/test/CodeGen/LoongArch/lasx/shuffle-as-bswap.ll
+2-3llvm/test/CodeGen/LoongArch/lasx/bitreverse.ll
+45-125 files

LLVM/project 0dc35e1 — flang/lib/Optimizer/Dialect FIRType.cpp, flang/lib/Optimizer/HLFIR/IR HLFIRDialect.cpp

put back some headers that were removed despite handwritten code using it
DeltaFile
+2-0mlir/lib/Dialect/UB/IR/UBOps.cpp
+2-0mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+2-0mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
+2-0flang/lib/Optimizer/HLFIR/IR/HLFIRDialect.cpp
+2-0flang/lib/Optimizer/Dialect/FIRType.cpp
+1-0mlir/test/lib/Dialect/Test/TestAttributes.cpp
+11-025 files not shown
+36-031 files

LLVM/project 4754186 — mlir/include/mlir/Dialect/LLVMIR LLVMAttrDefs.td, mlir/lib/Target/LLVMIR/Dialect/LLVMIR LLVMToLLVMIRTranslation.cpp LLVMIRToLLVMTranslation.cpp

[mlir][llvm] Add MemProf metadata attributes and translation (#238988)

The LLVM dialect understands neither `!memprof` nor `!callsite`: both
are dropped on import and unrepresentable on export. Add
`#llvm.memprof_mib` (one MemInfoBlock: call stack, allocation-type tag,
optional context sizes) plus `#llvm.memprof_context_size`, with
`llvm.memprof`/`llvm.callsite` discardable attributes and import/export
translation.

Known limitation: the MLIR inliner carries both attributes over
unchanged, so contexts go stale across an MLIR-side inline (a
hint-quality issue, not a miscompile). The LLVM's own inliner rewrites
them.
DeltaFile
+94-0mlir/test/Target/LLVMIR/memprof-metadata.mlir
+84-0mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMIRToLLVMTranslation.cpp
+82-0mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+78-0mlir/test/Target/LLVMIR/Import/metadata-memprof.ll
+65-0mlir/test/Target/LLVMIR/llvmir-invalid.mlir
+54-0mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
+457-05 files not shown
+515-011 files

LLVM/project f354d54 — clang/lib/CIR/CodeGen CIRGenModule.cpp CIRGenExpr.cpp, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Take function addresses in the program address space (#233755)
DeltaFile
+10-1clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+9-0clang/test/CIR/CodeGenHIP/spirv-constant-addrspace.hip
+7-0clang/test/CIR/CodeGen/no-proto-then-def.c
+4-2clang/lib/CIR/CodeGen/CIRGenExpr.cpp
+3-1clang/lib/CIR/CodeGen/CIRGenModule.cpp
+33-45 files

LLVM/project b732656 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU store.ll load.ll

[AMDGPU] Price misaligned flat and LDS accesses with the LDS misaligned bug

In WGP mode on subtargets with the LDS misaligned bug, a flat access is
split into pieces no wider than its alignment and no narrower than 4
bytes, and an LDS access aligned below 4 bytes uses 8-byte pieces as one
aligned to 4 does.
DeltaFile
+121-60llvm/test/Analysis/CostModel/AMDGPU/store.ll
+121-60llvm/test/Analysis/CostModel/AMDGPU/load.ll
+4-1llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+246-1213 files