File: greedy-pattern-rewriter-driver.mlir

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (35 lines) | stat: -rw-r--r-- 1,271 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// RUN: mlir-opt %s -test-patterns="max-iterations=1" \
// RUN:     -allow-unregistered-dialect --split-input-file | FileCheck %s

// CHECK-LABEL: func @add_to_worklist_after_inplace_update()
func.func @add_to_worklist_after_inplace_update() {
  // The following op is updated in-place and should be added back to the
  // worklist of the GreedyPatternRewriteDriver (regardless of the value of
  // config.max_iterations).

  // CHECK: "test.any_attr_of_i32_str"() <{attr = 3 : i32}> : () -> ()
  "test.any_attr_of_i32_str"() {attr = 0 : i32} : () -> ()
  return
}

// -----

// CHECK-LABEL: func @add_ancestors_to_worklist()
func.func @add_ancestors_to_worklist() {
       // CHECK: "foo.maybe_eligible_op"() {eligible} : () -> index
  // CHECK-NEXT: "test.one_region_op"()
  "test.one_region_op"() ({
    %0 = "foo.maybe_eligible_op" () : () -> (index)
    "foo.yield"(%0) : (index) -> ()
  }) {hoist_eligible_ops}: () -> ()
  return
}

// -----

// There are no patterns in this test that apply to "test.symbol". This test is
// to ensure that symbols are not getting removed due to being "trivially dead"
// as part of a greedy rewrite. Symbols are never trivially dead.

// CHECK: "test.symbol"() <{sym_name = "foo"}>
"test.symbol"() <{sym_name = "foo"}> : () -> ()