[all-commits] [llvm/llvm-project] 68d3c2: [CIR] Widen memory effects for ABI argument memory...

Adam Smith via All-commits all-commits at lists.llvm.org
Wed Sep 23 07:44:37 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 68d3c25ee618d057ef16cea97b34dc2b85d46118
      https://github.com/llvm/llvm-project/commit/68d3c25ee618d057ef16cea97b34dc2b85d46118
  Author: Adam Smith <adams at nvidia.com>
  Date:   2026-09-23 (Wed, 23 Sep 2026)

  Changed paths:
    M clang/include/clang/CIR/Interfaces/CIROpInterfaces.td
    M clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
    M clang/test/CIR/CodeGen/side-effect.cpp
    A clang/test/CIR/Transforms/abi-lowering/memory-effects-argmem-indirect.cir
    A clang/test/CIR/Transforms/abi-lowering/memory-effects-argmem.cir

  Log Message:
  -----------
  [CIR] Widen memory effects for ABI argument memory (#221067)

A const or pure callee that the ABI rewrites to take an sret slot or a
byval pointer reaches argument memory whatever the source declared, and
a variadic callee does too since its declared parameters do not cover
every argument. CallConvLowering was leaving memory_effects untouched,
so LowerToLLVM emitted memory(none) or memory(read) for functions that
do touch that memory.

CallConvLowering now sets arg_mem to readwrite on #cir.memory_effects
once it knows the signature, and does the same at a call site when the
call passes a slot.

Assisted-by: Cursor / claude-opus-5



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list