[all-commits] [llvm/llvm-project] 778644: [mlir][LLVM] Make `SplitStores` pattern capable of...

Markus Böck via All-commits all-commits at lists.llvm.org
Mon Jul 10 06:28:35 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7786449334d8e6ccda1362fef7006bfab86333b7
      https://github.com/llvm/llvm-project/commit/7786449334d8e6ccda1362fef7006bfab86333b7
  Author: Markus Böck <markus.bock+llvm at nextsilicon.com>
  Date:   2023-07-10 (Mon, 10 Jul 2023)

  Changed paths:
    M mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp
    M mlir/test/Dialect/LLVMIR/type-consistency.mlir

  Log Message:
  -----------
  [mlir][LLVM] Make `SplitStores` pattern capable of writing to sub-aggregates

The pattern was previously only capable of storing into struct fields which are primitive types. If the struct contained a nested struct it immediately aborted the pattern rewrite.

This patch introduces the capability of recursively splitting stores into sub-structs as well. This is achieved by splitting an aggregate sized integer from the original store argument and letting repeated pattern applications further split it into field stores.

Additionally, the pattern is also capable of handling partial writes into aggregates, which is a pattern clang may generate as well. Special care had to be taken to make sure no stores are created that weren't in the original code.

Differential Revision: https://reviews.llvm.org/D154707




More information about the All-commits mailing list