275 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			275 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: opt < %s -gvn | llvm-dis
 | |
| 
 | |
| 	%"struct.Block::$_16" = type { i32 }
 | |
| 	%struct.Exp = type { %struct.Exp_*, i32, i32, i32, %struct.Exp*, %struct.Exp*, %"struct.Exp::$_10", %"struct.Block::$_16", %"struct.Exp::$_12" }
 | |
| 	%"struct.Exp::$_10" = type { %struct.Exp* }
 | |
| 	%"struct.Exp::$_12" = type { %struct.Exp** }
 | |
| 	%struct.Exp_ = type { i32, i32, i32, i32, %struct.Id* }
 | |
| 	%struct.Id = type { i8*, i32, i32, i32, %"struct.Id::$_13" }
 | |
| 	%"struct.Id::$_13" = type { double }
 | |
| 
 | |
| define i8* @_ZN3Exp8toStringEj(%struct.Exp* %this, i32 %nextpc) {
 | |
| entry:
 | |
| 	switch i32 0, label %bb970 [
 | |
| 		 i32 1, label %bb
 | |
| 		 i32 2, label %bb39
 | |
| 		 i32 3, label %bb195
 | |
| 		 i32 4, label %bb270
 | |
| 		 i32 5, label %bb418
 | |
| 		 i32 6, label %bb633
 | |
| 		 i32 7, label %bb810
 | |
| 		 i32 8, label %bb882
 | |
| 		 i32 9, label %bb925
 | |
| 	]
 | |
| 
 | |
| bb:		; preds = %entry
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| bb39:		; preds = %entry
 | |
| 	br i1 false, label %cond_true, label %cond_false132
 | |
| 
 | |
| cond_true:		; preds = %bb39
 | |
| 	br i1 false, label %cond_true73, label %cond_false
 | |
| 
 | |
| cond_true73:		; preds = %cond_true
 | |
| 	br i1 false, label %cond_true108, label %cond_next
 | |
| 
 | |
| cond_true108:		; preds = %cond_true73
 | |
| 	br label %cond_next
 | |
| 
 | |
| cond_next:		; preds = %cond_true108, %cond_true73
 | |
| 	br label %cond_next131
 | |
| 
 | |
| cond_false:		; preds = %cond_true
 | |
| 	br label %cond_next131
 | |
| 
 | |
| cond_next131:		; preds = %cond_false, %cond_next
 | |
| 	br label %cond_next141
 | |
| 
 | |
| cond_false132:		; preds = %bb39
 | |
| 	br label %cond_next141
 | |
| 
 | |
| cond_next141:		; preds = %cond_false132, %cond_next131
 | |
| 	br i1 false, label %cond_true169, label %cond_false175
 | |
| 
 | |
| cond_true169:		; preds = %cond_next141
 | |
| 	br label %cond_next181
 | |
| 
 | |
| cond_false175:		; preds = %cond_next141
 | |
| 	br label %cond_next181
 | |
| 
 | |
| cond_next181:		; preds = %cond_false175, %cond_true169
 | |
| 	br i1 false, label %cond_true189, label %cond_next191
 | |
| 
 | |
| cond_true189:		; preds = %cond_next181
 | |
| 	br label %cond_next191
 | |
| 
 | |
| cond_next191:		; preds = %cond_true189, %cond_next181
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| bb195:		; preds = %entry
 | |
| 	br i1 false, label %cond_true248, label %cond_false250
 | |
| 
 | |
| cond_true248:		; preds = %bb195
 | |
| 	br label %cond_next252
 | |
| 
 | |
| cond_false250:		; preds = %bb195
 | |
| 	br label %cond_next252
 | |
| 
 | |
| cond_next252:		; preds = %cond_false250, %cond_true248
 | |
| 	br i1 false, label %cond_true265, label %cond_next267
 | |
| 
 | |
| cond_true265:		; preds = %cond_next252
 | |
| 	br label %cond_next267
 | |
| 
 | |
| cond_next267:		; preds = %cond_true265, %cond_next252
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| bb270:		; preds = %entry
 | |
| 	br i1 false, label %cond_true338, label %cond_false340
 | |
| 
 | |
| cond_true338:		; preds = %bb270
 | |
| 	br label %cond_next342
 | |
| 
 | |
| cond_false340:		; preds = %bb270
 | |
| 	br label %cond_next342
 | |
| 
 | |
| cond_next342:		; preds = %cond_false340, %cond_true338
 | |
| 	br i1 false, label %cond_true362, label %cond_false364
 | |
| 
 | |
| cond_true362:		; preds = %cond_next342
 | |
| 	br label %cond_next366
 | |
| 
 | |
| cond_false364:		; preds = %cond_next342
 | |
| 	br label %cond_next366
 | |
| 
 | |
| cond_next366:		; preds = %cond_false364, %cond_true362
 | |
| 	br i1 false, label %cond_true393, label %cond_next395
 | |
| 
 | |
| cond_true393:		; preds = %cond_next366
 | |
| 	br label %cond_next395
 | |
| 
 | |
| cond_next395:		; preds = %cond_true393, %cond_next366
 | |
| 	br i1 false, label %cond_true406, label %cond_next408
 | |
| 
 | |
| cond_true406:		; preds = %cond_next395
 | |
| 	br label %cond_next408
 | |
| 
 | |
| cond_next408:		; preds = %cond_true406, %cond_next395
 | |
| 	br i1 false, label %cond_true413, label %cond_next415
 | |
| 
 | |
| cond_true413:		; preds = %cond_next408
 | |
| 	br label %cond_next415
 | |
| 
 | |
| cond_next415:		; preds = %cond_true413, %cond_next408
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| bb418:		; preds = %entry
 | |
| 	br i1 false, label %cond_true512, label %cond_false514
 | |
| 
 | |
| cond_true512:		; preds = %bb418
 | |
| 	br label %cond_next516
 | |
| 
 | |
| cond_false514:		; preds = %bb418
 | |
| 	br label %cond_next516
 | |
| 
 | |
| cond_next516:		; preds = %cond_false514, %cond_true512
 | |
| 	br i1 false, label %cond_true536, label %cond_false538
 | |
| 
 | |
| cond_true536:		; preds = %cond_next516
 | |
| 	br label %cond_next540
 | |
| 
 | |
| cond_false538:		; preds = %cond_next516
 | |
| 	br label %cond_next540
 | |
| 
 | |
| cond_next540:		; preds = %cond_false538, %cond_true536
 | |
| 	br i1 false, label %cond_true560, label %cond_false562
 | |
| 
 | |
| cond_true560:		; preds = %cond_next540
 | |
| 	br label %cond_next564
 | |
| 
 | |
| cond_false562:		; preds = %cond_next540
 | |
| 	br label %cond_next564
 | |
| 
 | |
| cond_next564:		; preds = %cond_false562, %cond_true560
 | |
| 	br i1 false, label %cond_true597, label %cond_next599
 | |
| 
 | |
| cond_true597:		; preds = %cond_next564
 | |
| 	br label %cond_next599
 | |
| 
 | |
| cond_next599:		; preds = %cond_true597, %cond_next564
 | |
| 	br i1 false, label %cond_true614, label %cond_next616
 | |
| 
 | |
| cond_true614:		; preds = %cond_next599
 | |
| 	br label %cond_next616
 | |
| 
 | |
| cond_next616:		; preds = %cond_true614, %cond_next599
 | |
| 	br i1 false, label %cond_true621, label %cond_next623
 | |
| 
 | |
| cond_true621:		; preds = %cond_next616
 | |
| 	br label %cond_next623
 | |
| 
 | |
| cond_next623:		; preds = %cond_true621, %cond_next616
 | |
| 	br i1 false, label %cond_true628, label %cond_next630
 | |
| 
 | |
| cond_true628:		; preds = %cond_next623
 | |
| 	br label %cond_next630
 | |
| 
 | |
| cond_next630:		; preds = %cond_true628, %cond_next623
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| bb633:		; preds = %entry
 | |
| 	br i1 false, label %cond_true667, label %cond_next669
 | |
| 
 | |
| cond_true667:		; preds = %bb633
 | |
| 	br label %cond_next669
 | |
| 
 | |
| cond_next669:		; preds = %cond_true667, %bb633
 | |
| 	br i1 false, label %cond_true678, label %cond_next791
 | |
| 
 | |
| cond_true678:		; preds = %cond_next669
 | |
| 	br label %bb735
 | |
| 
 | |
| bb679:		; preds = %bb735
 | |
| 	br i1 false, label %cond_true729, label %cond_next731
 | |
| 
 | |
| cond_true729:		; preds = %bb679
 | |
| 	br label %cond_next731
 | |
| 
 | |
| cond_next731:		; preds = %cond_true729, %bb679
 | |
| 	br label %bb735
 | |
| 
 | |
| bb735:		; preds = %cond_next731, %cond_true678
 | |
| 	br i1 false, label %bb679, label %bb743
 | |
| 
 | |
| bb743:		; preds = %bb735
 | |
| 	br i1 false, label %cond_true788, label %cond_next790
 | |
| 
 | |
| cond_true788:		; preds = %bb743
 | |
| 	br label %cond_next790
 | |
| 
 | |
| cond_next790:		; preds = %cond_true788, %bb743
 | |
| 	br label %cond_next791
 | |
| 
 | |
| cond_next791:		; preds = %cond_next790, %cond_next669
 | |
| 	br i1 false, label %cond_true805, label %cond_next807
 | |
| 
 | |
| cond_true805:		; preds = %cond_next791
 | |
| 	br label %cond_next807
 | |
| 
 | |
| cond_next807:		; preds = %cond_true805, %cond_next791
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| bb810:		; preds = %entry
 | |
| 	br i1 false, label %cond_true870, label %cond_next872
 | |
| 
 | |
| cond_true870:		; preds = %bb810
 | |
| 	br label %cond_next872
 | |
| 
 | |
| cond_next872:		; preds = %cond_true870, %bb810
 | |
| 	br i1 false, label %cond_true877, label %cond_next879
 | |
| 
 | |
| cond_true877:		; preds = %cond_next872
 | |
| 	br label %cond_next879
 | |
| 
 | |
| cond_next879:		; preds = %cond_true877, %cond_next872
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| bb882:		; preds = %entry
 | |
| 	br i1 false, label %cond_true920, label %cond_next922
 | |
| 
 | |
| cond_true920:		; preds = %bb882
 | |
| 	br label %cond_next922
 | |
| 
 | |
| cond_next922:		; preds = %cond_true920, %bb882
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| bb925:		; preds = %entry
 | |
| 	br i1 false, label %cond_true965, label %cond_next967
 | |
| 
 | |
| cond_true965:		; preds = %bb925
 | |
| 	br label %cond_next967
 | |
| 
 | |
| cond_next967:		; preds = %cond_true965, %bb925
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| bb970:		; preds = %entry
 | |
| 	unreachable
 | |
| 		; No predecessors!
 | |
| 	store i8* null, i8** null
 | |
| 	br label %return
 | |
| 
 | |
| return:		; preds = %0, %cond_next967, %cond_next922, %cond_next879, %cond_next807, %cond_next630, %cond_next415, %cond_next267, %cond_next191, %bb
 | |
| 	%retval980 = load i8*, i8** null		; <i8*> [#uses=1]
 | |
| 	ret i8* %retval980
 | |
| }
 |