66 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
# RUN: llc -mtriple=armv7-apple-ios -o - %s -run-pass if-converter | FileCheck %s
 | 
						|
---
 | 
						|
name:            f1
 | 
						|
body:             |
 | 
						|
  bb.0:
 | 
						|
    successors: %bb.1
 | 
						|
 | 
						|
    B %bb.1
 | 
						|
 | 
						|
  bb.1:
 | 
						|
    successors: %bb.2, %bb.4
 | 
						|
 | 
						|
    Bcc %bb.4, 1, $cpsr
 | 
						|
 | 
						|
  bb.2:
 | 
						|
    successors: %bb.3, %bb.5
 | 
						|
 | 
						|
    Bcc %bb.5, 1, $cpsr
 | 
						|
 | 
						|
  bb.3:
 | 
						|
    successors: %bb.5
 | 
						|
 | 
						|
    B %bb.5
 | 
						|
 | 
						|
  bb.4:
 | 
						|
    successors:
 | 
						|
 | 
						|
  bb.5:
 | 
						|
    successors: %bb.1, %bb.6
 | 
						|
 | 
						|
    Bcc %bb.1, 1, $cpsr
 | 
						|
 | 
						|
  bb.6:
 | 
						|
    BX_RET 14, _  
 | 
						|
 | 
						|
...
 | 
						|
 | 
						|
# IfConversion.cpp/canFallThroughTo thought there was a fallthrough from
 | 
						|
# bb.4 to bb5 even if the successor list was empty.
 | 
						|
# bb.4 is empty, so it surely looks like it can fallthrough, but this is what
 | 
						|
# happens for a bb just containing an "unreachable".
 | 
						|
 | 
						|
#CHECK: body:             |
 | 
						|
#CHECK:   bb.0:
 | 
						|
#CHECK:     successors: %bb.1
 | 
						|
 | 
						|
#CHECK:   bb.1:
 | 
						|
#CHECK:     successors: %bb.3({{.*}}), %bb.2
 | 
						|
 | 
						|
# The original brr_cond from bb.1, jumping to the empty bb
 | 
						|
#CHECK:     Bcc %bb.2
 | 
						|
#CHECK:     B %bb.3
 | 
						|
 | 
						|
# Empty bb.2, originally containing "unreachable" and thus has no successors
 | 
						|
# and we cannot guess them: we should print an empty list of successors.
 | 
						|
#CHECK:   bb.2:
 | 
						|
#CHECK: successors:{{ *$}}
 | 
						|
 | 
						|
#CHECK:   bb.3:
 | 
						|
#CHECK:     successors: %bb.1
 | 
						|
 | 
						|
# Conditional BX_RET and then loop back to bb.1
 | 
						|
#CHECK:     BX_RET 0
 | 
						|
#CHECK:     B %bb.1
 | 
						|
 |