1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
; RUN: llc < %s -mtriple=arm-apple-darwin
%struct.Connection = type { i32, [10 x i8], i32 }
%struct.IntChunk = type { %struct.cppobjtype, i32, i32*, i32 }
%struct.Point = type { i8*, %struct.cppobjtype, i16 (%struct.Point*) *, i16 (%struct.Point*) *, double (%struct.Point*)*, double (%struct.Point*)* }
%struct.RefPoint = type { %struct.Point*, %struct.cppobjtype }
%struct.ShortArray = type { %struct.cppobjtype, i32, i16* }
%struct.TestObj = type { i8*, %struct.cppobjtype, i8, [32 x i8], i8*, i8**, i16, i16, i32, i32, i32, i32, float, double, %struct.cppobjtype, i32, i16*, i16**, i8**, i32, %struct.XyPoint, [3 x %struct.Connection], %struct.Point*, %struct.XyPoint*, i32, i8*, i8*, i16*, %struct.ShortArray, %struct.IntChunk, %struct.cppobjtype, %struct.cppobjtype, %struct.RefPoint, i32, %struct.cppobjtype, %struct.cppobjtype }
%struct.XyPoint = type { i16, i16 }
%struct.cppobjtype = type { i32, i16, i16 }
@Msg = external global [256 x i8] ; <[256 x i8]*> [#uses=1]
@.str53615 = external constant [48 x i8] ; <[48 x i8]*> [#uses=1]
@FirstTime.4637.b = external global i1 ; <i1*> [#uses=1]
define fastcc void @Draw7(i32 %Option, i32* %Status) {
entry:
%tmp115.b = load i1* @FirstTime.4637.b ; <i1> [#uses=1]
br i1 %tmp115.b, label %cond_next239, label %cond_next.i
cond_next.i: ; preds = %entry
ret void
cond_next239: ; preds = %entry
%tmp242 = icmp eq i32 0, 0 ; <i1> [#uses=1]
br i1 %tmp242, label %cond_next253, label %cond_next296
cond_next253: ; preds = %cond_next239
switch i32 %Option, label %bb1326 [
i32 3, label %cond_true258
i32 4, label %cond_true268
i32 2, label %cond_true279
i32 1, label %cond_next315
]
cond_true258: ; preds = %cond_next253
ret void
cond_true268: ; preds = %cond_next253
ret void
cond_true279: ; preds = %cond_next253
ret void
cond_next296: ; preds = %cond_next239
ret void
cond_next315: ; preds = %cond_next253
%tmp1140 = icmp eq i32 0, 0 ; <i1> [#uses=1]
br i1 %tmp1140, label %cond_true1143, label %bb1326
cond_true1143: ; preds = %cond_next315
%tmp1148 = icmp eq i32 0, 0 ; <i1> [#uses=4]
br i1 %tmp1148, label %cond_next1153, label %cond_true1151
cond_true1151: ; preds = %cond_true1143
ret void
cond_next1153: ; preds = %cond_true1143
%tmp8.i.i185 = icmp eq i32 0, 0 ; <i1> [#uses=1]
br i1 %tmp8.i.i185, label %TestObj_new1.exit, label %cond_true.i.i187
cond_true.i.i187: ; preds = %cond_next1153
ret void
TestObj_new1.exit: ; preds = %cond_next1153
%tmp1167 = icmp eq i16 0, 0 ; <i1> [#uses=1]
%tmp1178 = icmp eq i32 0, 0 ; <i1> [#uses=1]
%bothcond = and i1 %tmp1167, %tmp1178 ; <i1> [#uses=1]
br i1 %bothcond, label %bb1199, label %bb1181
bb1181: ; preds = %TestObj_new1.exit
ret void
bb1199: ; preds = %TestObj_new1.exit
br i1 %tmp1148, label %cond_next1235, label %Object_Dump.exit302
Object_Dump.exit302: ; preds = %bb1199
ret void
cond_next1235: ; preds = %bb1199
%bothcond10485 = or i1 false, %tmp1148 ; <i1> [#uses=1]
br i1 %bothcond10485, label %cond_next1267, label %cond_true1248
cond_true1248: ; preds = %cond_next1235
ret void
cond_next1267: ; preds = %cond_next1235
br i1 %tmp1148, label %cond_next1275, label %cond_true1272
cond_true1272: ; preds = %cond_next1267
%tmp1273 = load %struct.TestObj** null ; <%struct.TestObj*> [#uses=2]
%tmp2930.i = ptrtoint %struct.TestObj* %tmp1273 to i32 ; <i32> [#uses=1]
%tmp42.i348 = sub i32 0, %tmp2930.i ; <i32> [#uses=1]
%tmp45.i = getelementptr %struct.TestObj* %tmp1273, i32 0, i32 0 ; <i8**> [#uses=2]
%tmp48.i = load i8** %tmp45.i ; <i8*> [#uses=1]
%tmp50.i350 = call i32 (i8*, i8*, ...)* @sprintf( i8* getelementptr ([256 x i8]* @Msg, i32 0, i32 0), i8* getelementptr ([48 x i8]* @.str53615, i32 0, i32 0), i8* null, i8** %tmp45.i, i8* %tmp48.i ) ; <i32> [#uses=0]
br i1 false, label %cond_true.i632.i, label %Ut_TraceMsg.exit648.i
cond_true.i632.i: ; preds = %cond_true1272
ret void
Ut_TraceMsg.exit648.i: ; preds = %cond_true1272
%tmp57.i = getelementptr i8* null, i32 %tmp42.i348 ; <i8*> [#uses=0]
ret void
cond_next1275: ; preds = %cond_next1267
ret void
bb1326: ; preds = %cond_next315, %cond_next253
ret void
}
declare i32 @sprintf(i8*, i8*, ...)
|