60 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: opt < %s -disable-output -instcombine -instcombine -licm -time-passes 2>&1 | FileCheck %s --check-prefix=TIME --check-prefix=TIME-LEGACY
 | |
| ; RUN: opt < %s -disable-output -instcombine -instcombine -licm -licm -time-passes 2>&1 | FileCheck %s --check-prefix=TIME --check-prefix=TIME-LEGACY --check-prefix=TIME-DOUBLE-LICM-LEGACY
 | |
| ; RUN: opt < %s -disable-output -passes='instcombine,instcombine,loop(licm)' -time-passes 2>&1 | FileCheck %s --check-prefix=TIME --check-prefix=TIME-NEW
 | |
| ; RUN: opt < %s -disable-output -passes='instcombine,loop(licm),instcombine,loop(licm)' -time-passes 2>&1 | FileCheck %s --check-prefix=TIME --check-prefix=TIME-NEW -check-prefix=TIME-DOUBLE-LICM-NEW
 | |
| ; RUN: opt < %s -disable-output -passes='default<O2>' -time-passes 2>&1 | FileCheck %s --check-prefix=TIME
 | |
| ;
 | |
| ; TIME: Pass execution timing report
 | |
| ; TIME: Total Execution Time:
 | |
| ; TIME: Name
 | |
| ; TIME-LEGACY-DAG:   Combine redundant instructions{{$}}
 | |
| ; TIME-LEGACY-DAG:   Combine redundant instructions #2
 | |
| ; TIME-LEGACY-DAG:   Loop Invariant Code Motion{{$}}
 | |
| ; TIME-DOUBLE-LICM-LEGACY-DAG: Loop Invariant Code Motion #2
 | |
| ; TIME-LEGACY-DAG:   Scalar Evolution Analysis
 | |
| ; TIME-LEGACY-DAG:   Loop-Closed SSA Form Pass
 | |
| ; TIME-LEGACY-DAG:   LCSSA Verifier
 | |
| ; TIME-LEGACY-DAG:   Canonicalize natural loops
 | |
| ; TIME-LEGACY-DAG:   Natural Loop Information
 | |
| ; TIME-LEGACY-DAG:   Dominator Tree Construction
 | |
| ; TIME-LEGACY-DAG:   Module Verifier
 | |
| ; TIME-LEGACY-DAG:   Target Library Information
 | |
| ; TIME-NEW-DAG:      InstCombinePass #1
 | |
| ; TIME-NEW-DAG:      InstCombinePass #2
 | |
| ; TIME-NEW-DAG:      InstCombinePass #3
 | |
| ; TIME-NEW-DAG:      InstCombinePass #4
 | |
| ; TIME-NEW-DAG:      LICMPass #1
 | |
| ; TIME-NEW-DAG:      LICMPass #2
 | |
| ; TIME-NEW-DAG:      LICMPass #3
 | |
| ; TIME-DOUBLE-LICM-NEW-DAG:      LICMPass #4
 | |
| ; TIME-DOUBLE-LICM-NEW-DAG:      LICMPass #5
 | |
| ; TIME-DOUBLE-LICM-NEW-DAG:      LICMPass #6
 | |
| ; TIME-NEW-DAG:      LCSSAPass
 | |
| ; TIME-NEW-DAG:      LoopSimplifyPass
 | |
| ; TIME-NEW-DAG:      ScalarEvolutionAnalysis
 | |
| ; TIME-NEW-DAG:      LoopAnalysis
 | |
| ; TIME-NEW-DAG:      VerifierPass
 | |
| ; TIME-NEW-DAG:      DominatorTreeAnalysis
 | |
| ; TIME-NEW-DAG:      TargetLibraryAnalysis
 | |
| ; TIME: Total{{$}}
 | |
| 
 | |
| define i32 @foo() {
 | |
|   %res = add i32 5, 4
 | |
|   br label %loop1
 | |
| loop1:
 | |
|   br i1 false, label %loop1, label %end
 | |
| end:
 | |
|   ret i32 %res
 | |
| }
 | |
| 
 | |
| define void @bar_with_loops() {
 | |
|   br label %loop1
 | |
| loop1:
 | |
|   br i1 false, label %loop1, label %loop2
 | |
| loop2:
 | |
|   br i1 true, label %loop2, label %end
 | |
| end:
 | |
|   ret void
 | |
| 
 | |
| }
 |