[all-commits] [llvm/llvm-project] 7c221a: [mlir][Symbol] Change Symbol from a Trait into an ...

River Riddle via All-commits all-commits at lists.llvm.org
Mon Apr 27 13:06:26 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 7c221a7d4fbce512656d9df202972230eb088f37
      https://github.com/llvm/llvm-project/commit/7c221a7d4fbce512656d9df202972230eb088f37
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-27 (Mon, 27 Apr 2020)

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M mlir/include/mlir/Dialect/GPU/GPUOps.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    M mlir/include/mlir/Dialect/SPIRV/SPIRVStructureOps.td
    M mlir/include/mlir/IR/CMakeLists.txt
    M mlir/include/mlir/IR/Function.h
    M mlir/include/mlir/IR/Module.h
    M mlir/include/mlir/IR/OpBase.td
    M mlir/include/mlir/IR/OpDefinition.h
    A mlir/include/mlir/IR/SymbolInterfaces.td
    M mlir/include/mlir/IR/SymbolTable.h
    M mlir/include/mlir/TableGen/OpInterfaces.h
    M mlir/lib/IR/CMakeLists.txt
    M mlir/lib/IR/SymbolTable.cpp
    M mlir/lib/TableGen/OpInterfaces.cpp
    M mlir/lib/Transforms/Inliner.cpp
    M mlir/lib/Transforms/SymbolDCE.cpp
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/lib/IR/TestSymbolUses.cpp
    M mlir/tools/mlir-tblgen/OpInterfacesGen.cpp

  Log Message:
  -----------
  [mlir][Symbol] Change Symbol from a Trait into an OpInterface.

This provides a much cleaner interface into Symbols, and allows for users to start injecting op-specific information. For example, derived op can now inject when a symbol can be discarded if use_empty. This would let us drop unused external functions, which generally have public visibility.

This revision also adds a new `extraTraitClassDeclaration` field to ODS OpInterface to allow for injecting declarations into the trait class that gets attached to the operations.

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


  Commit: a90151d67e23c8a2c8362c95b44340e19f955a51
      https://github.com/llvm/llvm-project/commit/a90151d67e23c8a2c8362c95b44340e19f955a51
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-27 (Mon, 27 Apr 2020)

  Changed paths:
    M mlir/include/mlir/IR/SymbolTable.h
    M mlir/include/mlir/Interfaces/CallInterfaces.td
    M mlir/lib/IR/SymbolTable.cpp
    M mlir/lib/Transforms/Inliner.cpp
    M mlir/lib/Transforms/SCCP.cpp
    A mlir/test/Transforms/sccp-callgraph.mlir
    M mlir/test/lib/Dialect/Test/TestOps.td

  Log Message:
  -----------
  [mlir][SCCP] Add support for propagating across symbol based calls

This revision adds support for propagating constants across symbol-based callgraph edges. It uses the existing Call/CallableOpInterfaces to detect the dataflow edges, and propagates constants through arguments and out of returns.

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


Compare: https://github.com/llvm/llvm-project/compare/21acc0612a24...a90151d67e23


More information about the All-commits mailing list