mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-03 14:21:30 +00:00 
			
		
		
		
	git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			31 lines
		
	
	
		
			638 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			638 B
		
	
	
	
		
			LLVM
		
	
	
	
	
	
implementation
 | 
						|
 | 
						|
;; This is a simple nested loop to test interval construction
 | 
						|
 | 
						|
int "loop test"(int %i, int %j)
 | 
						|
begin
 | 
						|
Start:
 | 
						|
	%j1 = add int 0, 0
 | 
						|
	br label %L1Header
 | 
						|
 | 
						|
L1Header:
 | 
						|
	%j2 = phi int [%j1, %Start], [%j3, %L2Done]
 | 
						|
 | 
						|
	%i1 = add int 0, 0             ; %i1 = 0
 | 
						|
	br label %L2Body
 | 
						|
L2Body:
 | 
						|
	%wl = phi int [%j, %L1Header], [%wl, %L2Body]    ;; Useless PHI
 | 
						|
	%i2 = phi int [%i1, %L1Header], [%i3, %L2Body]
 | 
						|
	%i3 = add int %i2, 1
 | 
						|
	%L2Done = seteq int %i3, 10
 | 
						|
	br bool %L2Done, label %L2Done, label %L2Body
 | 
						|
L2Done:
 | 
						|
	%j3 = add int %j2, %i3
 | 
						|
	%L1Done = seteq int %j3, 100
 | 
						|
	br bool %L1Done, label %L1Done, label %L1Header
 | 
						|
 | 
						|
L1Done:
 | 
						|
	ret int %j3
 | 
						|
end
 | 
						|
 |