[all-commits] [llvm/llvm-project] b8d4cb: [mlir][Transforms][NFC] Turn op/block arg replacem...

Matthias Springer via All-commits all-commits at lists.llvm.org
Fri Feb 16 07:20:09 PST 2024


  Branch: refs/heads/users/matthias-springer/op_replacements
  Home:   https://github.com/llvm/llvm-project
  Commit: b8d4cbd5e237dfc9fa6b7420b85a8e5de94f0725
      https://github.com/llvm/llvm-project/commit/b8d4cbd5e237dfc9fa6b7420b85a8e5de94f0725
  Author: Matthias Springer <springerm at google.com>
  Date:   2024-02-16 (Fri, 16 Feb 2024)

  Changed paths:
    M mlir/lib/Transforms/Utils/DialectConversion.cpp

  Log Message:
  -----------
  [mlir][Transforms][NFC] Turn op/block arg replacements into `IRRewrite`s

This commit is a refactoring of the dialect conversion. The dialect conversion maintains a list of "IR rewrites" that can be commited (upon success) or rolled back (upon failure).

Until now, op replacements and block argument replacements were kept track in separate data structures inside the dialect conversion. This commit turns them into `IRRewrite`s, so that they can be committed or rolled back just like any other rewrite. This simplifies the internal state of the dialect conversion.

Overview of changes:
* Add two new rewrite classes: `ReplaceBlockArgRewrite` and `ReplaceOperationRewrite`. Remove the `OpReplacement` helper class; it is now part of `ReplaceOperationRewrite`.
* Simplify `RewriterState`: `numReplacements` and `numArgReplacements` are no longer needed. (Now being kept track of by `numRewrites`.)
* Add `IRRewrite::cleanup`. Operations should not be erased in `commit` because they may still be referenced in other internal state of the dialect conversion (`mapping`). Detaching operations is fine.



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