31 lines
		
	
	
		
			692 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			692 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llvm-reduce --delta-passes=basic-blocks --test %python --test-arg %p/remove-bbs-sequence.py %s -o %t
 | |
| ; RUN: cat %t | FileCheck %s
 | |
| 
 | |
| ; The interestingness test is that the CFG contains a loop. Verify that the
 | |
| ; unnecessary bb2 and bb3 are removed while still maintaining a loop.
 | |
| 
 | |
| define void @main() {
 | |
|   bb0:
 | |
|     br label %bb1
 | |
|   bb1:
 | |
|     br label %bb2
 | |
|   bb2:
 | |
|     br label %bb3
 | |
|   bb3:
 | |
|     %phi = phi i32 [ undef, %bb2 ]
 | |
|     br label %bb4
 | |
|   bb4:
 | |
|     br label %bb1
 | |
| }
 | |
| 
 | |
| ; CHECK:define void @main() {
 | |
| ; CHECK-NEXT: bb0:
 | |
| ; CHECK-NEXT:   br label %bb1
 | |
| ; CHECK-EMPTY:
 | |
| ; CHECK-NEXT: bb1:
 | |
| ; CHECK-NEXT:   br label %bb4
 | |
| ; CHECK-EMPTY:
 | |
| ; CHECK-NEXT: bb4:
 | |
| ; CHECK-NEXT:   br label %bb1
 | |
| ; CHECK-NEXT:}
 |