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