Added support for out edges.
[libfirm] / testprograms / ref-results / OO_PROGRAM_EXAMPLE_main-pure-wtypes.vcg
1 graph: { title: "ir graph of OO_PROGRAM_EXAMPLE_main"
2 display_edge_labels: no
3 layoutalgorithm: mindepth
4 manhattan_edges: yes
5 port_sharing: no
6 orientation: bottom_to_top
7 classname 1:  "intrablock Data"
8 classname 16: "interblock Data"
9 classname 2:  "Block"
10 classname 13: "Control Flow"
11 classname 18: "Exception Control Flow for Interval Analysis"
12 classname 14: "intrablock Memory"
13 classname 17: "interblock Memory"
14 classname 15: "Dominators"
15 classname 3:  "Entity type"
16 classname 4:  "Entity owner"
17 classname 5:  "Method Param"
18 classname 6:  "Method Res"
19 classname 7:  "Super"
20 classname 8:  "Union"
21 classname 9:  "Points-to"
22 classname 10: "Array Element Type"
23 classname 11: "Overwrites"
24 classname 12: "Member"
25 infoname 1: "Attribute"
26 infoname 2: "Verification errors"
27 colorentry 100:    0   0    0
28 colorentry 101:   20   0    0
29 colorentry 102:   40   0    0
30 colorentry 103:   60   0    0
31 colorentry 104:   80   0    0
32 colorentry 105:  100   0    0
33 colorentry 106:  120   0    0
34 colorentry 107:  140   0    0
35 colorentry 108:  150   0    0
36 colorentry 109:  180   0    0
37 colorentry 110:  200   0    0
38 colorentry 111:  220   0    0
39 colorentry 112:  240   0    0
40 colorentry 113:  255   0    0
41 colorentry 113:  255  20   20
42 colorentry 114:  255  40   40
43 colorentry 115:  255  60   60
44 colorentry 116:  255  80   80
45 colorentry 117:  255 100  100
46 colorentry 118:  255 120  120
47 colorentry 119:  255 140  140
48 colorentry 120:  255 150  150
49 colorentry 121:  255 180  180
50 colorentry 122:  255 200  200
51 colorentry 123:  255 220  220
52 colorentry 124:  255 240  240
53 colorentry 125:  255 250  250
54
55 node: {title: "n30" label: "Block  30"  info1: "Block 30
56   mode:    BB
57   visited: 20
58   irg:     OO_PROGRAM_EXAMPLE_main
59   arity:   1
60   pred nodes:
61      0:    Proj 34
62   Private Attributes:
63   backedges:
64   block visited: 0
65   dominator info: output not implemented
66 "
67 color: lightyellow}
68 edge: {sourcename: "n30" targetname: "n34" label: "0" class:13 priority:60 color:red}
69 node: {title: "n31" label: "Start  31"  info1: "Start 31
70   mode:    T
71   visited: 20
72   irg:     OO_PROGRAM_EXAMPLE_main
73   arity:   0
74   pred nodes:
75     -1:    Block 30
76   Private Attributes:
77   start of method of type OO_PROGRAM_EXAMPLE_main
78 "
79 color: blue}
80 edge: { sourcename: "n31" targetname: "n30" class:2  priority:50 linestyle:dotted}
81 node: {title: "n34" label: "ProjX 0 34"  info1: "Proj 34
82   mode:    X
83   visited: 20
84   irg:     OO_PROGRAM_EXAMPLE_main
85   arity:   1
86   pred nodes:
87     -1:    Block 30
88      0:    Start 31
89   Private Attributes:
90 "
91 color: yellow}
92 edge: {sourcename: "n34" targetname: "n31" label: "0" class:13 priority:60 color:red}
93 edge: { sourcename: "n34" targetname: "n30" class:2  priority:50 linestyle:dotted}
94 node: {title: "n40" label: "Block  40"  info1: "Block 40
95   mode:    BB
96   visited: 20
97   irg:     OO_PROGRAM_EXAMPLE_main
98   arity:   1
99   pred nodes:
100      0:    Proj 34
101   Private Attributes:
102   backedges:
103   block visited: 0
104   dominator info: output not implemented
105 "
106 color: lightyellow}
107 edge: {sourcename: "n40" targetname: "n34" label: "0" class:13 priority:60 color:red}
108 node: {title: "n37" label: "ProjM 1 37"  info1: "Proj 37
109   mode:    M
110   visited: 20
111   irg:     OO_PROGRAM_EXAMPLE_main
112   arity:   1
113   pred nodes:
114     -1:    Block 30
115      0:    Start 31
116   Private Attributes:
117 "
118 color: yellow}
119 edge: {sourcename: "n37" targetname: "n31" label: "0" class:17 priority:10 color:blue}
120 edge: { sourcename: "n37" targetname: "n30" class:2  priority:50 linestyle:dotted}
121 node: {title: "n45" label: "Alloc  45"  info1: "Alloc 45
122   mode:    T
123   visited: 20
124   irg:     OO_PROGRAM_EXAMPLE_main
125   arity:   2
126   pred nodes:
127     -1:    Block 40
128      0:    Proj 37
129      1:    SymC PRIMA size 43
130   Private Attributes:
131   pinned state: op_pin_state_pinned
132   allocating entity of type: PRIMA
133   allocating on: the heap
134 "
135 }
136 node: {title: "n45n43" label: "SymC PRIMA size  43"  info1: "SymC PRIMA size 43
137   mode:    Iu
138   visited: 20
139   irg:     OO_PROGRAM_EXAMPLE_main
140   arity:   0
141   pred nodes:
142     -1:    Block 30
143   Private Attributes:
144   kind: size
145   type: class type PRIMA (15)
146   type of value: type_unknown
147 "
148 }
149 edge: {sourcename: "n45" targetname: "n37" label: "0" class:17 priority:10 color:blue}
150 edge: {sourcename: "n45" targetname: "n45n43" label: "1" class:16 priority:10}
151 edge: { sourcename: "n45" targetname: "n40" class:2  priority:50 linestyle:dotted}
152 node: {title: "n48" label: "ProjP 2 48"  info1: "Proj 48
153   mode:    P
154   visited: 20
155   irg:     OO_PROGRAM_EXAMPLE_main
156   arity:   1
157   pred nodes:
158     -1:    Block 40
159      0:    Alloc 45
160   Private Attributes:
161 "
162 color: yellow}
163 edge: {sourcename: "n48" targetname: "n45" label: "0" class:1  priority:50}
164 edge: { sourcename: "n48" targetname: "n40" class:2  priority:50 linestyle:dotted}
165 node: {title: "n47" label: "ProjM 0 47"  info1: "Proj 47
166   mode:    M
167   visited: 20
168   irg:     OO_PROGRAM_EXAMPLE_main
169   arity:   1
170   pred nodes:
171     -1:    Block 40
172      0:    Alloc 45
173   Private Attributes:
174 "
175 color: yellow}
176 edge: {sourcename: "n47" targetname: "n45" label: "0" class:17 priority:10 color:blue}
177 edge: { sourcename: "n47" targetname: "n40" class:2  priority:50 linestyle:dotted}
178 node: {title: "n49" label: "Sel PRIMA_set_a 49"  info1: "Sel 49
179   mode:    P
180   visited: 20
181   irg:     OO_PROGRAM_EXAMPLE_main
182   arity:   2
183   pred nodes:
184     -1:    Block 40
185      0:    Proj 47
186      1:    Proj 48
187   Private Attributes:
188   Selecting entity of type set_a
189     from entity of type PRIMA
190 "
191 }
192 edge: {sourcename: "n49" targetname: "n47" label: "0" class:14 priority:50 color:blue}
193 edge: {sourcename: "n49" targetname: "n48" label: "1" class:1  priority:50}
194 edge: { sourcename: "n49" targetname: "n40" class:2  priority:50 linestyle:dotted}
195 node: {title: "n50" label: "Call  50"  info1: "Call 50
196   mode:    T
197   visited: 20
198   irg:     OO_PROGRAM_EXAMPLE_main
199   arity:   4
200   pred nodes:
201     -1:    Block 40
202      0:    Proj 47
203      1:    Sel 49
204      2:    Proj 48
205      3:    0x2 41
206   Private Attributes:
207   pinned state: op_pin_state_pinned
208   calling method of type set_a
209     param 0 type: class_prima_ptr
210     param 1 type: int
211 "
212 }
213 node: {title: "n50n41" label: "0x2Is  41"  info1: "0x2 41
214   mode:    Is
215   visited: 20
216   irg:     OO_PROGRAM_EXAMPLE_main
217   arity:   0
218   pred nodes:
219     -1:    Block 30
220   Private Attributes:
221   Const of type type_unknown
222 "
223 color: yellow}
224 edge: {sourcename: "n50" targetname: "n47" label: "0" class:14 priority:50 color:blue}
225 edge: {sourcename: "n50" targetname: "n49" label: "1" class:1  priority:50}
226 edge: {sourcename: "n50" targetname: "n48" label: "2" class:1  priority:50}
227 edge: {sourcename: "n50" targetname: "n50n41" label: "3" class:16 priority:10}
228 edge: { sourcename: "n50" targetname: "n40" class:2  priority:50 linestyle:dotted}
229 node: {title: "n52" label: "ProjM 0 52"  info1: "Proj 52
230   mode:    M
231   visited: 20
232   irg:     OO_PROGRAM_EXAMPLE_main
233   arity:   1
234   pred nodes:
235     -1:    Block 40
236      0:    Call 50
237   Private Attributes:
238 "
239 color: yellow}
240 edge: {sourcename: "n52" targetname: "n50" label: "0" class:17 priority:10 color:blue}
241 edge: { sourcename: "n52" targetname: "n40" class:2  priority:50 linestyle:dotted}
242 node: {title: "n53" label: "Sel PRIMA_c 53"  info1: "Sel 53
243   mode:    P
244   visited: 20
245   irg:     OO_PROGRAM_EXAMPLE_main
246   arity:   2
247   pred nodes:
248     -1:    Block 40
249      0:    Proj 52
250      1:    Proj 48
251   Private Attributes:
252   Selecting entity of type c
253     from entity of type PRIMA
254 "
255 }
256 edge: {sourcename: "n53" targetname: "n52" label: "0" class:14 priority:50 color:blue}
257 edge: {sourcename: "n53" targetname: "n48" label: "1" class:1  priority:50}
258 edge: { sourcename: "n53" targetname: "n40" class:2  priority:50 linestyle:dotted}
259 node: {title: "n54" label: "Call  54"  info1: "Call 54
260   mode:    T
261   visited: 20
262   irg:     OO_PROGRAM_EXAMPLE_main
263   arity:   4
264   pred nodes:
265     -1:    Block 40
266      0:    Proj 52
267      1:    Sel 53
268      2:    Proj 48
269      3:    0x5 42
270   Private Attributes:
271   pinned state: op_pin_state_pinned
272   calling method of type c
273     param 0 type: class_prima_ptr
274     param 1 type: int
275     resul 0 type: int
276 "
277 }
278 node: {title: "n54n42" label: "0x5Is  42"  info1: "0x5 42
279   mode:    Is
280   visited: 20
281   irg:     OO_PROGRAM_EXAMPLE_main
282   arity:   0
283   pred nodes:
284     -1:    Block 30
285   Private Attributes:
286   Const of type type_unknown
287 "
288 color: yellow}
289 edge: {sourcename: "n54" targetname: "n52" label: "0" class:14 priority:50 color:blue}
290 edge: {sourcename: "n54" targetname: "n53" label: "1" class:1  priority:50}
291 edge: {sourcename: "n54" targetname: "n48" label: "2" class:1  priority:50}
292 edge: {sourcename: "n54" targetname: "n54n42" label: "3" class:16 priority:10}
293 edge: { sourcename: "n54" targetname: "n40" class:2  priority:50 linestyle:dotted}
294 node: {title: "n57" label: "ProjT 2 57"  info1: "Proj 57
295   mode:    T
296   visited: 20
297   irg:     OO_PROGRAM_EXAMPLE_main
298   arity:   1
299   pred nodes:
300     -1:    Block 40
301      0:    Call 54
302   Private Attributes:
303 "
304 color: yellow}
305 edge: {sourcename: "n57" targetname: "n54" label: "0" class:1  priority:50}
306 edge: { sourcename: "n57" targetname: "n40" class:2  priority:50 linestyle:dotted}
307 node: {title: "n58" label: "ProjIs 0 58"  info1: "Proj 58
308   mode:    Is
309   visited: 20
310   irg:     OO_PROGRAM_EXAMPLE_main
311   arity:   1
312   pred nodes:
313     -1:    Block 40
314      0:    Proj 57
315   Private Attributes:
316 "
317 color: yellow}
318 edge: {sourcename: "n58" targetname: "n57" label: "0" class:1  priority:50}
319 edge: { sourcename: "n58" targetname: "n40" class:2  priority:50 linestyle:dotted}
320 node: {title: "n56" label: "ProjM 0 56"  info1: "Proj 56
321   mode:    M
322   visited: 20
323   irg:     OO_PROGRAM_EXAMPLE_main
324   arity:   1
325   pred nodes:
326     -1:    Block 40
327      0:    Call 54
328   Private Attributes:
329 "
330 color: yellow}
331 edge: {sourcename: "n56" targetname: "n54" label: "0" class:17 priority:10 color:blue}
332 edge: { sourcename: "n56" targetname: "n40" class:2  priority:50 linestyle:dotted}
333 node: {title: "n59" label: "Return  59"  info1: "Return 59
334   mode:    X
335   visited: 20
336   irg:     OO_PROGRAM_EXAMPLE_main
337   arity:   2
338   pred nodes:
339     -1:    Block 40
340      0:    Proj 56
341      1:    Proj 58
342   Private Attributes:
343   return in method of type OO_PROGRAM_EXAMPLE_main
344     res 0 type: int
345 "
346 }
347 edge: {sourcename: "n59" targetname: "n56" label: "0" class:14 priority:50 color:blue}
348 edge: {sourcename: "n59" targetname: "n58" label: "1" class:1  priority:50}
349 edge: { sourcename: "n59" targetname: "n40" class:2  priority:50 linestyle:dotted}
350 node: {title: "n28" label: "Block  28"  info1: "Block 28
351   mode:    BB
352   visited: 20
353   irg:     OO_PROGRAM_EXAMPLE_main
354   arity:   1
355   pred nodes:
356      0:    Return 59
357   Private Attributes:
358   backedges:
359   block visited: 0
360   dominator info: output not implemented
361 "
362 color: lightyellow}
363 edge: {sourcename: "n28" targetname: "n59" label: "0" class:13 priority:60 color:red}
364 node: {title: "n109" label: "End  109"  info1: "End 109
365   mode:    X
366   visited: 20
367   irg:     OO_PROGRAM_EXAMPLE_main
368   arity:   0
369   pred nodes:
370     -1:    Block 28
371   Private Attributes:
372 "
373 color: blue}
374 edge: { sourcename: "n109" targetname: "n28" class:2  priority:50 linestyle:dotted}
375 node: {title: "t21" label: "method c" info1: "state: layout_fixed,
376 mode: P,
377 size: 32b,
378 variadicity: variadicity_non_variadic
379 params: 2
380 results: 1
381 "}
382 edge: { sourcename: "t21" targetname: "t16"class: 5 label: "param 0" color: green}
383 edge: { sourcename: "t21" targetname: "t14"class: 5 label: "param 1" color: green}
384 edge: { sourcename: "t21" targetname: "t14"class: 6 label: "res 0" color: green}
385 node: {title: "t16" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
386 mode: P,
387 size: 32b,
388 "}
389 edge: { sourcename: "t16" targetname: "t15"class: 9 label: "points to" color:green}
390 node: {title: "t15" label: "class PRIMA" info1: "state: layout_undefined
391 size: -1b,
392 peculiarity: peculiarity_existent
393 " color: green}
394 edge: { sourcename: "t15" targetname: "e17"class: 12 label: "member" color:blue}
395 edge: { sourcename: "t15" targetname: "e20"class: 12 label: "member" color:blue}
396 edge: { sourcename: "t15" targetname: "e23"class: 12 label: "member" color:blue}
397 node: {title: "e17" label: "ent a" color: yellow
398  info1: "entity a (17)
399   type:  int (14)
400   owner: PRIMA (15)
401   Does not overwrite other entities.
402   Is not overwritten by other entities.
403   allocation:  allocation_automatic
404   visibility:  visibility_local
405   variability: variability_uninitialized
406   volatility:  volatility_non_volatile
407   peculiarity: peculiarity_existent
408   ld_name: no yet set
409   offset:  -1
410
411 "
412 }
413 edge: { sourcename: "e17" targetname: "t14"class: 3 label: "type" color: red}
414 node: {title: "t14" label: "primitive int" info1: "state: layout_fixed,
415 mode: Is,
416 size: 32b,
417 "}
418 node: {title: "e20" label: "ent PRIMA_set_a" color: yellow
419  info1: "entity set_a (20)
420   type:  set_a (18)
421   owner: PRIMA (15)
422   Does not overwrite other entities.
423   Is not overwritten by other entities.
424   allocation:  allocation_static
425   visibility:  visibility_local
426   variability: variability_constant
427   atomic value: SymC &set_a
428   volatility:  volatility_non_volatile
429   peculiarity: peculiarity_existent
430   ld_name: PRIMA_set_a
431   offset:  -1
432   irg = 73
433
434 "
435 }
436 edge: { sourcename: "e20" targetname: "t18"class: 3 label: "type" color: red}
437 edge: { sourcename: "e20" targetname: "n19"label: "value 0"}
438 node: {title: "n19" label: "SymC &set_a  19"  info1: "SymC &set_a 19
439   mode:    P
440   visited: 1
441   arity:   0
442   pred nodes:
443     -1:    Block 3
444   Private Attributes:
445   kind:   addr_ent
446   entity: entity PRIMA.set_a (20)
447
448   type of value: type_unknown
449 "
450 }
451 node: {title: "t18" label: "method set_a" info1: "state: layout_fixed,
452 mode: P,
453 size: 32b,
454 variadicity: variadicity_non_variadic
455 params: 2
456 results: 0
457 "}
458 edge: { sourcename: "t18" targetname: "t16"class: 5 label: "param 0" color: green}
459 edge: { sourcename: "t18" targetname: "t14"class: 5 label: "param 1" color: green}
460 node: {title: "e23" label: "ent PRIMA_c" color: yellow
461  info1: "entity c (23)
462   type:  c (21)
463   owner: PRIMA (15)
464   Does not overwrite other entities.
465   Is not overwritten by other entities.
466   allocation:  allocation_static
467   visibility:  visibility_local
468   variability: variability_constant
469   atomic value: SymC &c
470   volatility:  volatility_non_volatile
471   peculiarity: peculiarity_existent
472   ld_name: PRIMA_c
473   offset:  -1
474   irg = 96
475
476 "
477 }
478 edge: { sourcename: "e23" targetname: "t21"class: 3 label: "type" color: red}
479 edge: { sourcename: "e23" targetname: "n22"label: "value 0"}
480 node: {title: "n22" label: "SymC &c  22"  info1: "SymC &c 22
481   mode:    P
482   visited: 1
483   arity:   0
484   pred nodes:
485     -1:    Block 3
486   Private Attributes:
487   kind:   addr_ent
488   entity: entity PRIMA.c (23)
489
490   type of value: type_unknown
491 "
492 }
493 node: {title: "e26" label: "ent OO_PROGRAM_EXAMPLE_main" color: yellow
494  info1: "entity OO_PROGRAM_EXAMPLE_main (26)
495   type:  OO_PROGRAM_EXAMPLE_main (24)
496   owner: GlobalType (0)
497   Does not overwrite other entities.
498   Is not overwritten by other entities.
499   allocation:  allocation_static
500   visibility:  visibility_local
501   variability: variability_constant
502   atomic value: SymC &OO_PROGRAM_EXAMPLE_main
503   volatility:  volatility_non_volatile
504   peculiarity: peculiarity_existent
505   ld_name: no yet set
506   offset:  -1
507   irg = 39
508
509 "
510 }
511 edge: { sourcename: "e26" targetname: "t24"class: 3 label: "type" color: red}
512 edge: { sourcename: "e26" targetname: "n25"label: "value 0"}
513 node: {title: "n25" label: "SymC &OO_PROGRAM_EXAMPLE_main  25"  info1: "SymC &OO_PROGRAM_EXAMPLE_main 25
514   mode:    P
515   visited: 1
516   arity:   0
517   pred nodes:
518     -1:    Block 3
519   Private Attributes:
520   kind:   addr_ent
521   entity: entity GlobalType.OO_PROGRAM_EXAMPLE_main (26)
522
523   type of value: type_unknown
524 "
525 }
526 node: {title: "t0" label: "class GlobalType" info1: "state: layout_undefined
527 size: -1b,
528 peculiarity: peculiarity_existent
529 " color: green}
530 edge: { sourcename: "t0" targetname: "e26"class: 12 label: "member" color:blue}
531 node: {title: "t24" label: "method OO_PROGRAM_EXAMPLE_main" info1: "state: layout_fixed,
532 mode: P,
533 size: 32b,
534 variadicity: variadicity_non_variadic
535 params: 0
536 results: 1
537 "}
538 edge: { sourcename: "t24" targetname: "t14"class: 6 label: "res 0" color: green}
539 node: {title: "t27" label: "class OO_PROGRAM_EXAMPLE_mainframe_tp" info1: "state: layout_undefined
540 size: -1b,
541 peculiarity: peculiarity_existent
542 " color: green}
543 edge: { sourcename: "n54" targetname: "t21"class:2 priority:2 linestyle:dotted}
544 edge: { sourcename: "n45" targetname: "t15"class:2 priority:2 linestyle:dotted}
545 edge: { sourcename: "n43" targetname: "t15"class:2 priority:2 linestyle:dotted}
546 edge: { sourcename: "n53" targetname: "e23"class:2 priority:2 linestyle:dotted}
547 edge: { sourcename: "n50" targetname: "t18"class:2 priority:2 linestyle:dotted}
548 edge: { sourcename: "n49" targetname: "e20"class:2 priority:2 linestyle:dotted}
549 }