xref: /llvm-project/llvm/test/Other/module-pass-printer.ll (revision 34c4fae4b296038bbfda5b37c4eb06d5a2c0650b)
1; Check pass name is only printed once.
2; Check only one function is printed
3; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=foo | FileCheck %s  -check-prefix=FOO
4; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=foo | FileCheck %s  -check-prefix=FOO
5
6; Check pass name is only printed once.
7; Check both functions are printed
8; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=foo,bar | FileCheck %s -check-prefix=BOTH
9; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=foo,bar | FileCheck %s -check-prefix=BOTH
10
11; Check pass name is not printed if a module/SCC doesn't include any function specified in -filter-print-funcs.
12; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=baz | FileCheck %s -allow-empty -check-prefix=EMPTY
13; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=baz | FileCheck %s -allow-empty -check-prefix=EMPTY
14; RUN: opt < %s 2>&1 -passes=no-op-cgscc -disable-output -print-after-all -filter-print-funcs=baz | FileCheck %s -allow-empty -check-prefix=EMPTY
15
16; Check whole module is printed with user-specified wildcast switch -filter-print-funcs=* or -print-module-scope
17; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all | FileCheck %s -check-prefix=ALL
18; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output  -print-after-all -filter-print-funcs=* | FileCheck %s -check-prefix=ALL
19; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=foo -print-module-scope | FileCheck %s -check-prefix=ALL
20; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all | FileCheck %s -check-prefix=ALL
21; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=* | FileCheck %s -check-prefix=ALL
22; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=foo -print-module-scope | FileCheck %s -check-prefix=ALL
23
24; FOO:      IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
25; FOO:      define void @foo
26; FOO-NOT:  define void @bar
27; FOO-NOT:  IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
28
29; BOTH:     IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
30; BOTH:     define void @foo
31; BOTH:     define void @bar
32; BOTH-NOT: IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
33; BOTH-NOT: ModuleID =
34
35; EMPTY-NOT: IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
36; EMPTY-NOT: IR Dump After NoOp
37
38; ALL:  IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
39; ALL:  ModuleID =
40; ALL:  define void @foo
41; ALL:  define void @bar
42; ALL-NOT: IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
43
44define void @foo() {
45  ret void
46}
47
48define void @bar() {
49  ret void
50}
51