[all-commits] [llvm/llvm-project] 738577: [mlir] [liveness] Conservatively mark operands of ...

Nhat Nguyen via All-commits all-commits at lists.llvm.org
Tue May 20 18:36:47 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7385772fdbc6d97c5e05caf3e61546ad1de5b556
      https://github.com/llvm/llvm-project/commit/7385772fdbc6d97c5e05caf3e61546ad1de5b556
  Author: Nhat Nguyen <hoangnhat2911 at gmail.com>
  Date:   2025-05-20 (Tue, 20 May 2025)

  Changed paths:
    M mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
    M mlir/test/Transforms/remove-dead-values.mlir

  Log Message:
  -----------
  [mlir] [liveness] Conservatively mark operands of return-like op inside non-callable and non-regionbranch op as live (#140793)

Currently the liveness analysis always marks operands yielded in regions
that aren't classified as `RegionBranchOpInterface` or
`CallableOpInterface` as non-live. Examples for these ops include
linalg.generic (with `linalg.yield` as terminator) or gpu ops (with
`gpu.yield` as terminator).

This in turn makes the `remove-dead-values` pass always incorrectly
remove the bodies of these ops, leading to invalid IR. Because these ops
define their own semantics, I have conservatively marked all operands of
these yield ops to be live.



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