mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163739 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			330 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
			
		
		
	
	
			330 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
; RUN: opt -objc-arc -S < %s
 | 
						|
; rdar://12277446
 | 
						|
 | 
						|
; The total number of paths grows exponentially with the number of branches, and a
 | 
						|
; computation of this number can overflow any reasonable fixed-sized integer.
 | 
						|
 | 
						|
target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
 | 
						|
target triple = "thumbv7-apple-ios5.0.0"
 | 
						|
 | 
						|
%struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768 = type { i32*, i32, i8*, i32 }
 | 
						|
 | 
						|
@_unnamed_cfstring_591 = external constant %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768, section "__DATA,__cfstring"
 | 
						|
 | 
						|
declare i8* @objc_retain(i8*) nonlazybind
 | 
						|
 | 
						|
declare void @objc_release(i8*) nonlazybind
 | 
						|
 | 
						|
define hidden void @foo() {
 | 
						|
entry:
 | 
						|
  br i1 undef, label %msgSend.nullinit, label %msgSend.call
 | 
						|
 | 
						|
msgSend.call:                                     ; preds = %entry
 | 
						|
  br label %msgSend.cont
 | 
						|
 | 
						|
msgSend.nullinit:                                 ; preds = %entry
 | 
						|
  br label %msgSend.cont
 | 
						|
 | 
						|
msgSend.cont:                                     ; preds = %msgSend.nullinit, %msgSend.call
 | 
						|
  %0 = bitcast %struct.NSConstantString.11.33.55.77.99.121.143.332.1130.1340.2768* @_unnamed_cfstring_591 to i8*
 | 
						|
  %1 = call i8* @objc_retain(i8* %0) nounwind
 | 
						|
  br i1 undef, label %msgSend.nullinit33, label %msgSend.call32
 | 
						|
 | 
						|
msgSend.call32:                                   ; preds = %if.end10
 | 
						|
  br label %msgSend.cont34
 | 
						|
 | 
						|
msgSend.nullinit33:                               ; preds = %if.end10
 | 
						|
  br label %msgSend.cont34
 | 
						|
 | 
						|
msgSend.cont34:                                   ; preds = %msgSend.nullinit33, %msgSend.call32
 | 
						|
  br i1 undef, label %msgSend.nullinit38, label %msgSend.call37
 | 
						|
 | 
						|
msgSend.call37:                                   ; preds = %msgSend.cont34
 | 
						|
  br label %msgSend.cont39
 | 
						|
 | 
						|
msgSend.nullinit38:                               ; preds = %msgSend.cont34
 | 
						|
  br label %msgSend.cont39
 | 
						|
 | 
						|
msgSend.cont39:                                   ; preds = %msgSend.nullinit38, %msgSend.call37
 | 
						|
  br i1 undef, label %msgSend.nullinit49, label %msgSend.call48
 | 
						|
 | 
						|
msgSend.call48:                                   ; preds = %msgSend.cont39
 | 
						|
  br label %msgSend.cont50
 | 
						|
 | 
						|
msgSend.nullinit49:                               ; preds = %msgSend.cont39
 | 
						|
  br label %msgSend.cont50
 | 
						|
 | 
						|
msgSend.cont50:                                   ; preds = %msgSend.nullinit49, %msgSend.call48
 | 
						|
  br i1 undef, label %msgSend.nullinit61, label %msgSend.call60
 | 
						|
 | 
						|
msgSend.call60:                                   ; preds = %msgSend.cont50
 | 
						|
  br label %msgSend.cont62
 | 
						|
 | 
						|
msgSend.nullinit61:                               ; preds = %msgSend.cont50
 | 
						|
  br label %msgSend.cont62
 | 
						|
 | 
						|
msgSend.cont62:                                   ; preds = %msgSend.nullinit61, %msgSend.call60
 | 
						|
  br i1 undef, label %msgSend.nullinit67, label %msgSend.call66
 | 
						|
 | 
						|
msgSend.call66:                                   ; preds = %msgSend.cont62
 | 
						|
  br label %msgSend.cont68
 | 
						|
 | 
						|
msgSend.nullinit67:                               ; preds = %msgSend.cont62
 | 
						|
  br label %msgSend.cont68
 | 
						|
 | 
						|
msgSend.cont68:                                   ; preds = %msgSend.nullinit67, %msgSend.call66
 | 
						|
  br i1 undef, label %msgSend.nullinit84, label %msgSend.call83
 | 
						|
 | 
						|
msgSend.call83:                                   ; preds = %msgSend.cont68
 | 
						|
  br label %msgSend.cont85
 | 
						|
 | 
						|
msgSend.nullinit84:                               ; preds = %msgSend.cont68
 | 
						|
  br label %msgSend.cont85
 | 
						|
 | 
						|
msgSend.cont85:                                   ; preds = %msgSend.nullinit84, %msgSend.call83
 | 
						|
  br i1 undef, label %msgSend.nullinit90, label %msgSend.call89
 | 
						|
 | 
						|
msgSend.call89:                                   ; preds = %msgSend.cont85
 | 
						|
  br label %msgSend.cont91
 | 
						|
 | 
						|
msgSend.nullinit90:                               ; preds = %msgSend.cont85
 | 
						|
  br label %msgSend.cont91
 | 
						|
 | 
						|
msgSend.cont91:                                   ; preds = %msgSend.nullinit90, %msgSend.call89
 | 
						|
  br i1 undef, label %msgSend.nullinit104, label %msgSend.call103
 | 
						|
 | 
						|
msgSend.call103:                                  ; preds = %msgSend.cont91
 | 
						|
  br label %msgSend.cont105
 | 
						|
 | 
						|
msgSend.nullinit104:                              ; preds = %msgSend.cont91
 | 
						|
  br label %msgSend.cont105
 | 
						|
 | 
						|
msgSend.cont105:                                  ; preds = %msgSend.nullinit104, %msgSend.call103
 | 
						|
  br i1 undef, label %land.lhs.true, label %if.end123
 | 
						|
 | 
						|
land.lhs.true:                                    ; preds = %msgSend.cont105
 | 
						|
  br i1 undef, label %if.then117, label %if.end123
 | 
						|
 | 
						|
if.then117:                                       ; preds = %land.lhs.true
 | 
						|
  br label %if.end123
 | 
						|
 | 
						|
if.end123:                                        ; preds = %if.then117, %land.lhs.true, %msgSend.cont105
 | 
						|
  br i1 undef, label %msgSend.nullinit132, label %msgSend.call131
 | 
						|
 | 
						|
msgSend.call131:                                  ; preds = %if.end123
 | 
						|
  br label %msgSend.cont133
 | 
						|
 | 
						|
msgSend.nullinit132:                              ; preds = %if.end123
 | 
						|
  br label %msgSend.cont133
 | 
						|
 | 
						|
msgSend.cont133:                                  ; preds = %msgSend.nullinit132, %msgSend.call131
 | 
						|
  br i1 undef, label %msgSend.nullinit139, label %msgSend.call138
 | 
						|
 | 
						|
msgSend.call138:                                  ; preds = %msgSend.cont133
 | 
						|
  br label %msgSend.cont140
 | 
						|
 | 
						|
msgSend.nullinit139:                              ; preds = %msgSend.cont133
 | 
						|
  br label %msgSend.cont140
 | 
						|
 | 
						|
msgSend.cont140:                                  ; preds = %msgSend.nullinit139, %msgSend.call138
 | 
						|
  br i1 undef, label %if.then151, label %if.end157
 | 
						|
 | 
						|
if.then151:                                       ; preds = %msgSend.cont140
 | 
						|
  br label %if.end157
 | 
						|
 | 
						|
if.end157:                                        ; preds = %if.then151, %msgSend.cont140
 | 
						|
  br i1 undef, label %msgSend.nullinit164, label %msgSend.call163
 | 
						|
 | 
						|
msgSend.call163:                                  ; preds = %if.end157
 | 
						|
  br label %msgSend.cont165
 | 
						|
 | 
						|
msgSend.nullinit164:                              ; preds = %if.end157
 | 
						|
  br label %msgSend.cont165
 | 
						|
 | 
						|
msgSend.cont165:                                  ; preds = %msgSend.nullinit164, %msgSend.call163
 | 
						|
  br i1 undef, label %msgSend.nullinit176, label %msgSend.call175
 | 
						|
 | 
						|
msgSend.call175:                                  ; preds = %msgSend.cont165
 | 
						|
  br label %msgSend.cont177
 | 
						|
 | 
						|
msgSend.nullinit176:                              ; preds = %msgSend.cont165
 | 
						|
  br label %msgSend.cont177
 | 
						|
 | 
						|
msgSend.cont177:                                  ; preds = %msgSend.nullinit176, %msgSend.call175
 | 
						|
  br i1 undef, label %land.lhs.true181, label %if.end202
 | 
						|
 | 
						|
land.lhs.true181:                                 ; preds = %msgSend.cont177
 | 
						|
  br i1 undef, label %if.then187, label %if.end202
 | 
						|
 | 
						|
if.then187:                                       ; preds = %land.lhs.true181
 | 
						|
  br i1 undef, label %msgSend.nullinit199, label %msgSend.call198
 | 
						|
 | 
						|
msgSend.call198:                                  ; preds = %if.then187
 | 
						|
  br label %msgSend.cont200
 | 
						|
 | 
						|
msgSend.nullinit199:                              ; preds = %if.then187
 | 
						|
  br label %msgSend.cont200
 | 
						|
 | 
						|
msgSend.cont200:                                  ; preds = %msgSend.nullinit199, %msgSend.call198
 | 
						|
  br label %if.end202
 | 
						|
 | 
						|
if.end202:                                        ; preds = %msgSend.cont200, %land.lhs.true181, %msgSend.cont177
 | 
						|
  br i1 undef, label %msgSend.nullinit236, label %msgSend.call235
 | 
						|
 | 
						|
msgSend.call235:                                  ; preds = %if.end202
 | 
						|
  br label %msgSend.cont237
 | 
						|
 | 
						|
msgSend.nullinit236:                              ; preds = %if.end202
 | 
						|
  br label %msgSend.cont237
 | 
						|
 | 
						|
msgSend.cont237:                                  ; preds = %msgSend.nullinit236, %msgSend.call235
 | 
						|
  br i1 undef, label %msgSend.nullinit254, label %msgSend.call253
 | 
						|
 | 
						|
msgSend.call253:                                  ; preds = %msgSend.cont237
 | 
						|
  br label %msgSend.cont255
 | 
						|
 | 
						|
msgSend.nullinit254:                              ; preds = %msgSend.cont237
 | 
						|
  br label %msgSend.cont255
 | 
						|
 | 
						|
msgSend.cont255:                                  ; preds = %msgSend.nullinit254, %msgSend.call253
 | 
						|
  br i1 undef, label %msgSend.nullinit269, label %msgSend.call268
 | 
						|
 | 
						|
msgSend.call268:                                  ; preds = %msgSend.cont255
 | 
						|
  br label %msgSend.cont270
 | 
						|
 | 
						|
msgSend.nullinit269:                              ; preds = %msgSend.cont255
 | 
						|
  br label %msgSend.cont270
 | 
						|
 | 
						|
msgSend.cont270:                                  ; preds = %msgSend.nullinit269, %msgSend.call268
 | 
						|
  br i1 undef, label %msgSend.nullinit281, label %msgSend.call280
 | 
						|
 | 
						|
msgSend.call280:                                  ; preds = %msgSend.cont270
 | 
						|
  br label %msgSend.cont282
 | 
						|
 | 
						|
msgSend.nullinit281:                              ; preds = %msgSend.cont270
 | 
						|
  br label %msgSend.cont282
 | 
						|
 | 
						|
msgSend.cont282:                                  ; preds = %msgSend.nullinit281, %msgSend.call280
 | 
						|
  br i1 undef, label %msgSend.nullinit287, label %msgSend.call286
 | 
						|
 | 
						|
msgSend.call286:                                  ; preds = %msgSend.cont282
 | 
						|
  br label %msgSend.cont288
 | 
						|
 | 
						|
msgSend.nullinit287:                              ; preds = %msgSend.cont282
 | 
						|
  br label %msgSend.cont288
 | 
						|
 | 
						|
msgSend.cont288:                                  ; preds = %msgSend.nullinit287, %msgSend.call286
 | 
						|
  br i1 undef, label %msgSend.nullinit303, label %msgSend.call302
 | 
						|
 | 
						|
msgSend.call302:                                  ; preds = %msgSend.cont288
 | 
						|
  br label %msgSend.cont304
 | 
						|
 | 
						|
msgSend.nullinit303:                              ; preds = %msgSend.cont288
 | 
						|
  br label %msgSend.cont304
 | 
						|
 | 
						|
msgSend.cont304:                                  ; preds = %msgSend.nullinit303, %msgSend.call302
 | 
						|
  br i1 undef, label %msgSend.nullinit344, label %msgSend.call343
 | 
						|
 | 
						|
msgSend.call343:                                  ; preds = %msgSend.cont304
 | 
						|
  br label %msgSend.cont345
 | 
						|
 | 
						|
msgSend.nullinit344:                              ; preds = %msgSend.cont304
 | 
						|
  br label %msgSend.cont345
 | 
						|
 | 
						|
msgSend.cont345:                                  ; preds = %msgSend.nullinit344, %msgSend.call343
 | 
						|
  br i1 undef, label %msgSend.nullinit350, label %msgSend.call349
 | 
						|
 | 
						|
msgSend.call349:                                  ; preds = %msgSend.cont345
 | 
						|
  br label %msgSend.cont351
 | 
						|
 | 
						|
msgSend.nullinit350:                              ; preds = %msgSend.cont345
 | 
						|
  br label %msgSend.cont351
 | 
						|
 | 
						|
msgSend.cont351:                                  ; preds = %msgSend.nullinit350, %msgSend.call349
 | 
						|
  br i1 undef, label %msgSend.nullinit366, label %msgSend.call365
 | 
						|
 | 
						|
msgSend.call365:                                  ; preds = %msgSend.cont351
 | 
						|
  br label %msgSend.cont367
 | 
						|
 | 
						|
msgSend.nullinit366:                              ; preds = %msgSend.cont351
 | 
						|
  br label %msgSend.cont367
 | 
						|
 | 
						|
msgSend.cont367:                                  ; preds = %msgSend.nullinit366, %msgSend.call365
 | 
						|
  br i1 undef, label %msgSend.nullinit376, label %msgSend.call375
 | 
						|
 | 
						|
msgSend.call375:                                  ; preds = %msgSend.cont367
 | 
						|
  br label %msgSend.cont377
 | 
						|
 | 
						|
msgSend.nullinit376:                              ; preds = %msgSend.cont367
 | 
						|
  br label %msgSend.cont377
 | 
						|
 | 
						|
msgSend.cont377:                                  ; preds = %msgSend.nullinit376, %msgSend.call375
 | 
						|
  br i1 undef, label %if.then384, label %if.else401
 | 
						|
 | 
						|
if.then384:                                       ; preds = %msgSend.cont377
 | 
						|
  br i1 undef, label %msgSend.nullinit392, label %msgSend.call391
 | 
						|
 | 
						|
msgSend.call391:                                  ; preds = %if.then384
 | 
						|
  br label %msgSend.cont393
 | 
						|
 | 
						|
msgSend.nullinit392:                              ; preds = %if.then384
 | 
						|
  br label %msgSend.cont393
 | 
						|
 | 
						|
msgSend.cont393:                                  ; preds = %msgSend.nullinit392, %msgSend.call391
 | 
						|
  br label %if.end418
 | 
						|
 | 
						|
if.else401:                                       ; preds = %msgSend.cont377
 | 
						|
  br i1 undef, label %msgSend.nullinit409, label %msgSend.call408
 | 
						|
 | 
						|
msgSend.call408:                                  ; preds = %if.else401
 | 
						|
  br label %msgSend.cont410
 | 
						|
 | 
						|
msgSend.nullinit409:                              ; preds = %if.else401
 | 
						|
  br label %msgSend.cont410
 | 
						|
 | 
						|
msgSend.cont410:                                  ; preds = %msgSend.nullinit409, %msgSend.call408
 | 
						|
  br label %if.end418
 | 
						|
 | 
						|
if.end418:                                        ; preds = %msgSend.cont410, %msgSend.cont393
 | 
						|
  br i1 undef, label %msgSend.nullinit470, label %msgSend.call469
 | 
						|
 | 
						|
msgSend.call469:                                  ; preds = %if.end418
 | 
						|
  br label %msgSend.cont471
 | 
						|
 | 
						|
msgSend.nullinit470:                              ; preds = %if.end418
 | 
						|
  br label %msgSend.cont471
 | 
						|
 | 
						|
msgSend.cont471:                                  ; preds = %msgSend.nullinit470, %msgSend.call469
 | 
						|
  br i1 undef, label %msgSend.nullinit484, label %msgSend.call483
 | 
						|
 | 
						|
msgSend.call483:                                  ; preds = %msgSend.cont471
 | 
						|
  br label %msgSend.cont485
 | 
						|
 | 
						|
msgSend.nullinit484:                              ; preds = %msgSend.cont471
 | 
						|
  br label %msgSend.cont485
 | 
						|
 | 
						|
msgSend.cont485:                                  ; preds = %msgSend.nullinit484, %msgSend.call483
 | 
						|
  br i1 undef, label %msgSend.nullinit500, label %msgSend.call499
 | 
						|
 | 
						|
msgSend.call499:                                  ; preds = %msgSend.cont485
 | 
						|
  br label %msgSend.cont501
 | 
						|
 | 
						|
msgSend.nullinit500:                              ; preds = %msgSend.cont485
 | 
						|
  br label %msgSend.cont501
 | 
						|
 | 
						|
msgSend.cont501:                                  ; preds = %msgSend.nullinit500, %msgSend.call499
 | 
						|
  br i1 undef, label %msgSend.nullinit506, label %msgSend.call505
 | 
						|
 | 
						|
msgSend.call505:                                  ; preds = %msgSend.cont501
 | 
						|
  br label %msgSend.cont507
 | 
						|
 | 
						|
msgSend.nullinit506:                              ; preds = %msgSend.cont501
 | 
						|
  br label %msgSend.cont507
 | 
						|
 | 
						|
msgSend.cont507:                                  ; preds = %msgSend.nullinit506, %msgSend.call505
 | 
						|
  call void @objc_release(i8* %0) nounwind, !clang.imprecise_release !0
 | 
						|
  ret void
 | 
						|
}
 | 
						|
 | 
						|
!0 = metadata !{}
 |