Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / Other / module-pass-printer.ll
blobb44fc4c26ee4375250ab5a31fa496a75462c2a6d
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
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
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
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
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}}
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 =
35 ; EMPTY-NOT: IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
36 ; EMPTY-NOT: IR Dump After NoOp
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}}
44 define void @foo() {
45   ret void
48 define void @bar() {
49   ret void