mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	The RegionInfo pass detects single entry single exit regions in a function, where a region is defined as any subgraph that is connected to the remaining graph at only two spots. Furthermore an hierarchical region tree is built. Use it by calling "opt -regions analyze" or "opt -view-regions". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109089 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
; RUN: opt -regions -analyze < %s | FileCheck %s
 | 
						|
; RUN: opt -regions -stats < %s |& FileCheck -check-prefix=STAT %s
 | 
						|
; RUN: opt -regions -print-region-style=bb  -analyze < %s |& FileCheck -check-prefix=BBIT %s
 | 
						|
; RUN: opt -regions -print-region-style=rn  -analyze < %s |& FileCheck -check-prefix=RNIT %s
 | 
						|
 | 
						|
define internal fastcc zeroext i8 @handle_compress() nounwind {
 | 
						|
end165:
 | 
						|
  br i1 1, label %false239, label %true181
 | 
						|
 | 
						|
true181:
 | 
						|
  br i1 1, label %then187, label %else232
 | 
						|
 | 
						|
then187:
 | 
						|
  br label %end265
 | 
						|
 | 
						|
else232:
 | 
						|
  br i1 1, label %false239, label %then245
 | 
						|
 | 
						|
false239:
 | 
						|
  br i1 1, label %then245, label %else259
 | 
						|
 | 
						|
then245:
 | 
						|
  br i1 1, label %then251, label %end253
 | 
						|
 | 
						|
then251:
 | 
						|
  br label %end253
 | 
						|
 | 
						|
end253:
 | 
						|
  br label %end265
 | 
						|
 | 
						|
else259:
 | 
						|
  br label %end265
 | 
						|
 | 
						|
end265:
 | 
						|
  br i1 1, label %then291, label %end298
 | 
						|
 | 
						|
then291:
 | 
						|
  br label %end298
 | 
						|
 | 
						|
end298:
 | 
						|
  ret i8 1
 | 
						|
}
 | 
						|
 | 
						|
; CHECK-NOT: =>
 | 
						|
; CHECK: [0] end165 => <Function Return>
 | 
						|
; CHECK-NEXT: [1] end165 => end265
 | 
						|
; CHECK-NEXT: [2] then245 => end253
 | 
						|
; CHECK-NEXT: [1] end265 => end298
 | 
						|
 | 
						|
; STAT: 4 region - The # of regions
 | 
						|
 | 
						|
; BBIT: end165, false239, then245, then251, end253, end265, then291, end298, else259, true181, then187, else232,
 | 
						|
; BBIT: end165, false239, then245, then251, end253, else259, true181, then187, else232,
 | 
						|
; BBIT: then245, then251,
 | 
						|
; BBIT: end265, then291,
 | 
						|
 | 
						|
; RNIT: end165 => end265, end265 => end298, end298,
 | 
						|
; RNIT: end165, false239, then245 => end253, end253, else259, true181, then187, else232,
 | 
						|
; RNIT: then245, then251,
 | 
						|
; RNIT: end265, then291,
 |