[all-commits] [llvm/llvm-project] ae33ee: [MLIR] Add a switch operation to the standard dialect

Geoffrey Martin-Noble via All-commits all-commits at lists.llvm.org
Mon Apr 12 18:46:20 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ae33eef5055ef1f55df0df3be0b8851aaf9f4efd
      https://github.com/llvm/llvm-project/commit/ae33eef5055ef1f55df0df3be0b8851aaf9f4efd
  Author: Geoffrey Martin-Noble <gcmn at google.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    M mlir/include/mlir/IR/OpBase.td
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    M mlir/test/Dialect/Standard/canonicalize-cf.mlir
    M mlir/test/Dialect/Standard/ops.mlir
    A mlir/test/Dialect/Standard/parser.mlir

  Log Message:
  -----------
  [MLIR] Add a switch operation to the standard dialect

This is similar to the definition of llvm.switch, providing
unstructured branch-based control flow. It differs from the LLVM
operation in that it accepts any signless integer (not only an i32),
takes no branch weights (the same as the Branch and CondBranch ops),
and has a slightly different syntax for the default case that includes
it in the list of cases with an explicit `default` keyword.

Also included are several canonicalizers.

See https://llvm.discourse.group/t/rfc-add-std-switch-and-scf-switch/3090

Reviewed By: rriddle, bondhugula

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




More information about the All-commits mailing list