[all-commits] [llvm/llvm-project] 5d2bbe: [mlir][Func] Extract datalayout string attribute s...

Nicolas Vasilache via All-commits all-commits at lists.llvm.org
Mon Sep 4 08:04:48 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5d2bbe9c920275e9b2f6439b8a048bf278224b64
  Author: Nicolas Vasilache <nicolasvasilache at users.noreply.github.com>
  Date:   2023-09-04 (Mon, 04 Sep 2023)

  Changed paths:
    M mlir/include/mlir/Conversion/FuncToLLVM/ConvertFuncToLLVMPass.h
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
    M mlir/test/Conversion/FuncToLLVM/convert-data-layout.mlir

  Log Message:
  [mlir][Func] Extract datalayout string attribute setting as a separate module pass

FuncToLLVM uses the data layout string attribute in 3 different ways:
1. LowerToLLVMOptions options(&getContext(), getAnalysis<DataLayoutAnalysis>().getAtOrAbove(m));
2. options.dataLayout = llvm::DataLayout(this->dataLayout);
3. m->setAttr(..., this->dataLayout));

The 3rd way is unrelated to the other 2 and occurs after conversion, making it confusing.
This revision separates this post-hoc module annotation functionality into its own pass.
The convert-func-to-llvm pass loses its `data-layout` option and instead recovers it from
the `llvm.data_layout` attribute attached to the module, when present.

In the future, `LowerToLLVMOptions options(&getContext(), getAnalysis<DataLayoutAnalysis>().getAtOrAbove(m))` and
`options.dataLayout = llvm::DataLayout(dataLayout);` should be unified.

Reviewed By: ftynse, mehdi_amini

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

More information about the All-commits mailing list