73 lines · plain
1; RUN: rm -rf %t/logs2 3; Basic dump before and after a single module pass4 5; RUN: opt %s -disable-output -passes='no-op-module' -ir-dump-directory %t/logs -print-after=no-op-module -print-before=no-op-module6; RUN: ls %t/logs | FileCheck %s --check-prefix=SINGLE-PASS7; RUN: ls %t/logs | count 28; SINGLE-PASS-DAG: 1-[[MODULE_NAME_HASH:[a-z0-9]+]]-module-NoOpModulePass-after.ll9; SINGLE-PASS-DAG: 1-[[MODULE_NAME_HASH]]-module-NoOpModulePass-before.ll10; RUN: cat %t/logs/*after.ll | FileCheck %s --check-prefix=SINGLE-PASS-CONTENTS11 12; SINGLE-PASS-CONTENTS: ; *** IR Dump After NoOpModulePass on [module] ***13; SINGLE-PASS-CONTENTS: define void @foo() {14; SINGLE-PASS-CONTENTS: ret void15; SINGLE-PASS-CONTENTS: }16; SINGLE-PASS-CONTENTS: define void @bar() {17; SINGLE-PASS-CONTENTS: entry:18; SINGLE-PASS-CONTENTS: br label %my-loop19; SINGLE-PASS-CONTENTS: my-loop: ; preds = %my-loop, %entry20; SINGLE-PASS-CONTENTS: br label %my-loop21; SINGLE-PASS-CONTENTS: }22 23; RUN: rm -rf %t/logs24 25; Dump before and after multiple runs of the same module pass26; The integers preceeding log files represent relative pass execution order,27; but they are not necessarily continuous. That is passes which are run28; but not printed, still increment the count -- leading to gaps in the printed29; integers.30 31; RUN: opt %s -disable-output -passes='no-op-module,no-op-module,no-op-module' -ir-dump-directory %t/logs -print-after=no-op-module -print-before=no-op-module32; RUN: ls %t/logs | FileCheck %s --check-prefix=MULTIPLE-PASSES33; RUN: ls %t/logs | count 634; MULTIPLE-PASSES-DAG: 1-[[MODULE_NAME_HASH:[a-z0-9]+]]-module-NoOpModulePass-after.ll35; MULTIPLE-PASSES-DAG: 1-[[MODULE_NAME_HASH]]-module-NoOpModulePass-before.ll36; MULTIPLE-PASSES-DAG: 2-[[MODULE_NAME_HASH]]-module-NoOpModulePass-after.ll37; MULTIPLE-PASSES-DAG: 2-[[MODULE_NAME_HASH]]-module-NoOpModulePass-before.ll38; MULTIPLE-PASSES-DAG: 3-[[MODULE_NAME_HASH]]-module-NoOpModulePass-after.ll39; MULTIPLE-PASSES-DAG: 3-[[MODULE_NAME_HASH]]-module-NoOpModulePass-before.ll40; RUN: rm -rf %t/logs41 42; Dump before and after multiple passes, of various levels of granularity43 44; RUN: opt %s -disable-output -passes='no-op-module,cgscc(no-op-cgscc),function(no-op-function),function(loop(no-op-loop)),no-op-module' -ir-dump-directory %t/logs -print-after=no-op-module,no-op-cgscc,no-op-function,no-op-loop -print-before=no-op-module,no-op-cgscc,no-op-function,no-op-loop45; RUN: ls %t/logs | FileCheck %s --check-prefix=MULTIPLE-GRANULAR-PASSES46; RUN: ls %t/logs | count 1447; MULTIPLE-GRANULAR-PASSES-DAG: 1-[[MODULE_NAME_HASH:[a-z0-9]+]]-module-NoOpModulePass-after.ll48; MULTIPLE-GRANULAR-PASSES-DAG: 1-[[MODULE_NAME_HASH]]-module-NoOpModulePass-before.ll49; MULTIPLE-GRANULAR-PASSES-DAG: 2-[[MODULE_NAME_HASH]]-scc-[[SCC_FOO_HASH:[a-z0-9]+]]-NoOpCGSCCPass-after.ll50; MULTIPLE-GRANULAR-PASSES-DAG: 2-[[MODULE_NAME_HASH]]-scc-[[SCC_FOO_HASH]]-NoOpCGSCCPass-before.ll51; MULTIPLE-GRANULAR-PASSES-DAG: 3-[[MODULE_NAME_HASH]]-scc-[[SCC_BAR_HASH:[a-z0-9]+]]-NoOpCGSCCPass-after.ll52; MULTIPLE-GRANULAR-PASSES-DAG: 3-[[MODULE_NAME_HASH]]-scc-[[SCC_BAR_HASH]]-NoOpCGSCCPass-before.ll53; MULTIPLE-GRANULAR-PASSES-DAG: 4-[[MODULE_NAME_HASH]]-function-[[FUNCTION_FOO_HASH:[a-z0-9]+]]-NoOpFunctionPass-after.ll54; MULTIPLE-GRANULAR-PASSES-DAG: 4-[[MODULE_NAME_HASH]]-function-[[FUNCTION_FOO_HASH]]-NoOpFunctionPass-before.ll55; MULTIPLE-GRANULAR-PASSES-DAG: 5-[[MODULE_NAME_HASH]]-function-[[FUNCTION_BAR_HASH:[a-z0-9]+]]-NoOpFunctionPass-after.ll56; MULTIPLE-GRANULAR-PASSES-DAG: 5-[[MODULE_NAME_HASH]]-function-[[FUNCTION_BAR_HASH]]-NoOpFunctionPass-before.ll57; MULTIPLE-GRANULAR-PASSES-DAG: 10-[[MODULE_NAME_HASH]]-loop-[[LOOP_NAME_HASH:[a-z0-9]+]]-NoOpLoopPass-after.ll58; MULTIPLE-GRANULAR-PASSES-DAG: 10-[[MODULE_NAME_HASH]]-loop-[[LOOP_NAME_HASH]]-NoOpLoopPass-before.ll59; MULTIPLE-GRANULAR-PASSES-DAG: 11-[[MODULE_NAME_HASH]]-module-NoOpModulePass-after.ll60; MULTIPLE-GRANULAR-PASSES-DAG: 11-[[MODULE_NAME_HASH]]-module-NoOpModulePass-before.ll61; RUN: rm -rf %t/logs62 63define void @foo() {64 ret void65}66 67define void @bar() {68entry:69 br label %my-loop70my-loop:71 br label %my-loop72}73