[all-commits] [llvm/llvm-project] fa8eb2: [mlir][arith] Add wide integer emulation pass

Jakub Kuderski via All-commits all-commits at lists.llvm.org
Thu Sep 8 10:53:24 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fa8eb2708814a406261588fafe922047095b0db0
      https://github.com/llvm/llvm-project/commit/fa8eb2708814a406261588fafe922047095b0db0
  Author: Jakub Kuderski <kubak at google.com>
  Date:   2022-09-08 (Thu, 08 Sep 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/Arithmetic/Transforms/Passes.h
    M mlir/include/mlir/Dialect/Arithmetic/Transforms/Passes.td
    A mlir/include/mlir/Dialect/Arithmetic/Transforms/WideIntEmulationConverter.h
    M mlir/lib/Dialect/Arithmetic/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/Arithmetic/Transforms/EmulateWideInt.cpp
    A mlir/test/Dialect/Arithmetic/emulate-wide-int.mlir

  Log Message:
  -----------
  [mlir][arith] Add wide integer emulation pass

In this first patch in a series to add wide integer emulation:
*  Set up the initial pass structure
*  Add a custom type converter
*  Handle func ops

The initial implementation supports power-of-two integers types only. We
emulate wide integer operations by splitting original i2N integer types
into two iN halves

My immediate use case is to emulate i64 operations using i32 ones
on mobile GPUs that do not support i64.

Reviewed By: antiagainst, Mogball

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




More information about the All-commits mailing list