[all-commits] [llvm/llvm-project] 3bd85c: [mlir][llvm] Add memcpy support for mem2reg/sroa.

Théo Degioanni via All-commits all-commits at lists.llvm.org
Fri Jun 16 01:46:09 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3bd85cf7c208810c3370f2ea2a34ff7f32649577
      https://github.com/llvm/llvm-project/commit/3bd85cf7c208810c3370f2ea2a34ff7f32649577
  Author: Théo Degioanni <theo.degioanni at nextsilicon.com>
  Date:   2023-06-16 (Fri, 16 Jun 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
    M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
    M mlir/test/Dialect/LLVMIR/mem2reg-intrinsics.mlir
    M mlir/test/Dialect/LLVMIR/sroa-intrinsics.mlir

  Log Message:
  -----------
  [mlir][llvm] Add memcpy support for mem2reg/sroa.

This revision introduces SROA and mem2reg support for the family of
memcpy-like intrinsics (memcpy, memcpy.inline and memmove).

The mem2reg implementation transforms memcpys of full types into loads
and store. Memcpy between two promotable slots always disappear.

The SROA implementation transforms memcpys of *entire* aggregate types
into memcpys of all of their fields.

Reviewed By: gysit

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




More information about the All-commits mailing list