brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · ef6dc15 Raw
70 lines · plain
1; This test checks -print-after/before on loop passes2; Besides of the loop itself it should be dumping loop pre-header and exits.3;4; RUN: opt < %s 2>&1 -disable-output \5; RUN: 	   -passes='loop(loop-deletion)' -print-before=loop-deletion \6; RUN:	   | FileCheck %s -check-prefix=DEL7; RUN: opt < %s 2>&1 -disable-output \8; RUN: 	   -passes='require<opt-remark-emit>,loop(loop-unroll-full)' -print-after=loop-unroll-full -filter-print-funcs=bar \9; RUN:	   | FileCheck %s -check-prefix=BAR10; RUN: opt < %s 2>&1 -disable-output \11; RUN: 	   -passes='require<opt-remark-emit>,loop(loop-unroll-full)' -print-after=loop-unroll-full -filter-print-funcs=foo -print-module-scope \12; RUN:	   | FileCheck %s -check-prefix=FOO-MODULE13 14; DEL:	    IR Dump Before {{Delete dead loops|LoopDeletionPass}}15; DEL: 	    ; Preheader:16; DEL-NEXT:  %idx = alloca i32, align 417; DEL:      ; Loop:18; DEL-NEXT:  loop:19; DEL:	     cont:20; DEL:	    ; Exit blocks21; DEL:	     done:22; DEL:	    IR Dump Before {{Delete dead loops|LoopDeletionPass}}23; DEL: 	    ; Preheader:24; DEL-NEXT:  br label %loop25; DEL:      ; Loop:26; DEL-NEXT:  loop:27; DEL:	    ; Exit blocks28; DEL:	     end:29 30; BAR:	    IR Dump After {{Unroll|LoopFullUnrollPass}}31; BAR: 	    ; Preheader:32; BAR-NEXT:  br label %loop33; BAR:      ; Loop:34; BAR-NEXT:  loop:35; BAR:	    ; Exit blocks36; BAR:	     end:37 38; FOO-MODULE: IR Dump After {{Unroll|LoopFullUnrollPass}} {{.*}}loop39; FOO-MODULE-NEXT: ModuleID =40; FOO-MODULE: define void @foo41; FOO-MODULE: define void @bar42 43define void @foo(){44  %idx = alloca i32, align 445  store i32 0, ptr %idx, align 446  br label %loop47 48loop:49  %1 = load i32, ptr %idx, align 450  %2 = icmp slt i32 %1, 1051  br i1 %2, label %cont, label %done52 53cont:54  %3 = load i32, ptr %idx, align 455  %4 = add nsw i32 %3, 156  store i32 %4, ptr %idx, align 457  br label %loop58 59done:60  ret void61}62 63define void @bar(){64  br label %loop65loop:66  br i1 1, label %loop, label %end67end:68  ret void69}70