First implementation of lowering for calls with compound return values
[libfirm] / testprograms / ref-results / PRIMA_INLINE_set_a-wtypes.vcg
index 4057a6c..eac9677 100644 (file)
@@ -4,190 +4,486 @@ layoutalgorithm: mindepth
 manhattan_edges: yes
 port_sharing: no
 orientation: bottom_to_top
-classname 1: "Data"
-classname 2: "Block"
-classname 13:"Control Flow"
-classname 14:"Memory"
-classname 15:"Dominators"
-classname 3: "Entity type"
-classname 4: "Entity owner"
-classname 5: "Method Param"
-classname 6: "Method Res"
-classname 7: "Super"
-classname 8: "Union"
-classname 9: "Points-to"
+classname 1:  "intrablock Data"
+classname 2:  "Block"
+classname 3:  "Entity type"
+classname 4:  "Entity owner"
+classname 5:  "Method Param"
+classname 6:  "Method Res"
+classname 7:  "Super"
+classname 8:  "Union"
+classname 9:  "Points-to"
 classname 10: "Array Element Type"
 classname 11: "Overwrites"
 classname 12: "Member"
+classname 13: "Control Flow"
+classname 14: "intrablock Memory"
+classname 15: "Dominators"
+classname 16: "interblock Data"
+classname 17: "interblock Memory"
+classname 18: "Exception Control Flow for Interval Analysis"
+classname 19: "Postdominators"
 infoname 1: "Attribute"
 infoname 2: "Verification errors"
+infoname 3: "Debug info"
+colorentry 100:    0   0    0
+colorentry 101:   20   0    0
+colorentry 102:   40   0    0
+colorentry 103:   60   0    0
+colorentry 104:   80   0    0
+colorentry 105:  100   0    0
+colorentry 106:  120   0    0
+colorentry 107:  140   0    0
+colorentry 108:  150   0    0
+colorentry 109:  180   0    0
+colorentry 110:  200   0    0
+colorentry 111:  220   0    0
+colorentry 112:  240   0    0
+colorentry 113:  255   0    0
+colorentry 113:  255  20   20
+colorentry 114:  255  40   40
+colorentry 115:  255  60   60
+colorentry 116:  255  80   80
+colorentry 117:  255 100  100
+colorentry 118:  255 120  120
+colorentry 119:  255 140  140
+colorentry 120:  255 150  150
+colorentry 121:  255 180  180
+colorentry 122:  255 200  200
+colorentry 123:  255 220  220
+colorentry 124:  255 240  240
+colorentry 125:  255 250  250
+
+graph: { title: "g73" label: "PRIMA_INLINE_set_a" status:clustered color:white
+info1: "entity set_a (20)
+  type:  set_a (18)
+  owner: PRIMA_INLINE (15)
+  Does not overwrite other entities.
+  Is not overwritten by other entities.
+  allocation:  allocation_static
+  visibility:  visibility_local
+  variability: variability_constant
+  calling convention: cdecl
+  atomic value: SymC &set_a
+  volatility:  volatility_non_volatile
+  peculiarity: peculiarity_existent
+  ld_name: PRIMA_INLINE_set_a
+  offset:  -1 bits, -1 bytes
+  irg = 73
+
+"
+graph: { title: "n62"  label: "Block 62" status:clustered color:yellow
+ info1: "Block 62
+  mode:    BB
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+     0:    Return 82
+  Private Attributes:
+  backedges:
+  block visited: 0
+  Execution freqency statistics:
+"
+edge: {sourcename: "n62" targetname: "n82" label: "0" class:13 priority:60 color:red}
+node: {title: "n228" label: "End 228"  info1: "End 228
+  mode:    X
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   0
+  pred nodes:
+    -1:    Block 62
+  Private Attributes:
+"
+color:blue}
+}
+
+graph: { title: "n74"  label: "Block 74" status:clustered color:yellow
+ info1: "Block 74
+  mode:    BB
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+     0:    Proj 68
+  Private Attributes:
+  backedges:
+  block visited: 0
+  Execution freqency statistics:
+"
+edge: {sourcename: "n74" targetname: "n68" label: "0" class:13 priority:60 color:red}
+node: {title: "n82" label: "Return 82"  info1: "Return 82
+  mode:    X
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+    -1:    Block 74
+     0:    Proj 81
+  Private Attributes:
+  return in method of type set_a
+"
+}
+edge: {sourcename: "n82" targetname: "n81" label: "0" class:14 priority:50 color:blue}
+node: {title: "n81" label: "ProjM M 81"  info1: "Proj 81
+  mode:    M
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+    -1:    Block 74
+     0:    Store 79
+  Private Attributes:
+  proj nr: 0
+"
+color:yellow}
+edge: {sourcename: "n81" targetname: "n79" label: "0" class:17 priority:10 color:blue}
+node: {title: "n79" label: "Store 79"  info1: "Store 79
+  mode:    T
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   3
+  pred nodes:
+    -1:    Block 74
+     0:    Proj 71
+     1:    Sel 78
+     2:    Proj 76
+  Private Attributes:
+  pinned state: op_pin_state_pinned
+  volatility: volatility_non_volatile
+"
+}
+edge: {sourcename: "n79" targetname: "n71" label: "0" class:17 priority:10 color:blue}
+edge: {sourcename: "n79" targetname: "n78" label: "1" class:1  priority:50}
+edge: {sourcename: "n79" targetname: "n76" label: "2" class:1  priority:50}
+node: {title: "n78" label: "Sel a 78"  info1: "Sel 78
+  mode:    P
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   2
+  pred nodes:
+    -1:    Block 74
+     0:    Proj 71
+     1:    Proj 75
+  Private Attributes:
+  Selecting entity a (17)
+    of type    int
+    with owner PRIMA_INLINE.
+"
+}
+edge: {sourcename: "n78" targetname: "n71" label: "0" class:17 priority:10 color:blue}
+edge: {sourcename: "n78" targetname: "n75" label: "1" class:1  priority:50}
+node: {title: "n75" label: "ProjP Arg 0 75"  info1: "Proj 75
+  mode:    P
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+    -1:    Block 74
+     0:    Proj 72
+  Private Attributes:
+  proj nr: 0
+"
+color:yellow}
+edge: {sourcename: "n75" targetname: "n72" label: "0" class:16 priority:10}
+node: {title: "n76" label: "ProjIs Arg 1 76"  info1: "Proj 76
+  mode:    Is
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+    -1:    Block 74
+     0:    Proj 72
+  Private Attributes:
+  proj nr: 1
+"
+color:yellow}
+edge: {sourcename: "n76" targetname: "n72" label: "0" class:16 priority:10}
+}
+
+graph: { title: "n64"  label: "Block 64" status:clustered color:yellow
+ info1: "Block 64
+  mode:    BB
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+     0:    Proj 68
+  Private Attributes:
+  backedges:
+  block visited: 0
+  Execution freqency statistics:
+"
+edge: {sourcename: "n64" targetname: "n68" label: "0" class:13 priority:60 color:red}
+node: {title: "n71" label: "ProjM 1 71"  info1: "Proj 71
+  mode:    M
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+    -1:    Block 64
+     0:    Start 65
+  Private Attributes:
+  proj nr: 1
+"
+color:yellow}
+edge: {sourcename: "n71" targetname: "n65" label: "0" class:17 priority:10 color:blue}
+node: {title: "n72" label: "ProjT T_args 72"  info1: "Proj 72
+  mode:    T
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+    -1:    Block 64
+     0:    Start 65
+  Private Attributes:
+  proj nr: 4
+"
+color:yellow}
+edge: {sourcename: "n72" targetname: "n65" label: "0" class:1  priority:50}
+node: {title: "n68" label: "ProjX X_initial_exec 68"  info1: "Proj 68
+  mode:    X
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   1
+  pred nodes:
+    -1:    Block 64
+     0:    Start 65
+  Private Attributes:
+  proj nr: 0
+"
+color:yellow}
+edge: {sourcename: "n68" targetname: "n65" label: "0" class:13 priority:60 color:red}
+node: {title: "n65" label: "Start 65"  info1: "Start 65
+  mode:    T
+  visited: 20
+  irg:     PRIMA_INLINE_set_a
+  arity:   0
+  pred nodes:
+    -1:    Block 64
+  Private Attributes:
+  start of method of type set_a
+    param 0 type: class_prima_ptr
+    param 1 type: int
+"
+color:blue}
+}
 
-graph: { title: "g68" label: "PRIMA_INLINE_set_a" status:clustered color:white
-graph: { title: "n220"  label: "Block 220" status:clustered color:yellow
-edge: {sourcename: "n220" targetname: "n221" label: "0" class:13 color:red}
-node: {title: "n219" label: "End  219"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 0
-"color: blue}
-}
-
-graph: { title: "n222"  label: "Block 222" status:clustered color:yellow
-edge: {sourcename: "n222" targetname: "n223" label: "0" class:13 color:red}
-node: {title: "n221" label: "Return  221"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 1
-return in method of type set_a
-" info2: "mymode == mode_X && Result X"}
-edge: {sourcename: "n221" targetname: "n226" label: "0" class:14 color:blue}
-node: {title: "n226" label: "ProjM 0 226"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 1
-"color: yellow}
-edge: {sourcename: "n226" targetname: "n227" label: "0" class:14 color:blue}
-node: {title: "n227" label: "Store  227"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 3
-" info2: "mymode == mode_T && Store node"}
-edge: {sourcename: "n227" targetname: "n232" label: "0" class:14 color:blue}
-edge: {sourcename: "n227" targetname: "n230" label: "1" }
-edge: {sourcename: "n227" targetname: "n228" label: "2" }
-node: {title: "n230" label: "Sel a 230"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 2
-Selecting entity of type int
-  from entity of type PRIMA_INLINE
-"}
-edge: {sourcename: "n230" targetname: "n232" label: "0" class:14 color:blue}
-edge: {sourcename: "n230" targetname: "n231" label: "1" }
-node: {title: "n231" label: "ProjP 0 231"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 1
-" info2: "(mode == get_type_mode(get_method_param_type(mt, proj))) && Mode of Proj from Start doesn't match mode of param type."color: yellow}
-edge: {sourcename: "n231" targetname: "n229" label: "0" }
-node: {title: "n228" label: "ProjIs 1 228"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 1
-" info2: "(mode == get_type_mode(get_method_param_type(mt, proj))) && Mode of Proj from Start doesn't match mode of param type."color: yellow}
-edge: {sourcename: "n228" targetname: "n229" label: "0" }
-}
-
-graph: { title: "n224"  label: "Block 224" status:clustered color:yellow
-edge: {sourcename: "n224" targetname: "n223" label: "0" class:13 color:red}
-node: {title: "n232" label: "ProjM 1 232"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 1
-"color: yellow}
-edge: {sourcename: "n232" targetname: "n225" label: "0" class:14 color:blue}
-node: {title: "n229" label: "ProjT 4 229"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 1
-"color: yellow}
-edge: {sourcename: "n229" targetname: "n225" label: "0" }
-node: {title: "n223" label: "ProjX 0 223"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 1
-"color: yellow}
-edge: {sourcename: "n223" targetname: "n225" label: "0" class:13 color:red}
-node: {title: "n225" label: "Start  225"  info1: "visited: 17
-irg:     PRIMA_INLINE_set_a
-arity: 0
-start of method of type set_a
-  param 0 type: class_prima_ptr
-  param 1 type: int
-" info2: "mymode == mode_T && Start node"color: blue}
-}
-
-}
-
-node: {title: "e14" label: "ent a" color: yellow
- info1: "
-id: e14
-allocation:  allocation_automatic
-visibility:  visibility_local
-variability: variability_uninitialized
-volatility:  volatility_non_volatile
-peculiarity: peculiarity_existent
-name:    a
-ld_name: no yet set
-offset:  -1"
-}
-edge: { sourcename: "e14" targetname: "t11"class: 3 label: "type" color: red}
-node: {title: "t12" label: "class PRIMA_INLINE" info1: "state: layout_undefined
-size: -1B,
-peculiarity: peculiarity_existent
-" color: green}
-edge: { sourcename: "t12" targetname: "e14"class: 12 label: "member" color:blue}
-edge: { sourcename: "t12" targetname: "e17"class: 12 label: "member" color:blue}
-edge: { sourcename: "t12" targetname: "e20"class: 12 label: "member" color:blue}
-node: {title: "e17" label: "ent PRIMA_INLINE_set_a" color: yellow
- info1: "
-id: e17
-allocation:  allocation_static
-visibility:  visibility_local
-variability: variability_constant
-volatility:  volatility_non_volatile
-peculiarity: peculiarity_existent
-name:    PRIMA_INLINE_set_a
-ld_name: PRIMA_INLINE_set_a
-offset:  -1
-irg = g68"
-}
-edge: { sourcename: "e17" targetname: "t15"class: 3 label: "type" color: red}
-edge: { sourcename: "e17" targetname: "n16"label: "value 0"}
-node: {title: "n16" label: "&(PRIMA_INLINE_set_a)P  16"  info1: "visited: 2
-arity: 0
-Const of type type_unknown
-" info2: "(mode_is_data (mymode) || mymode == mode_b) && Const node"color: yellow}
-node: {title: "t15" label: "method set_a" info1: "state: layout_fixed,
-mode: P,
-size: 4B,
-variadicity: variadicity_non_variadic
-params: 2
-results: 0
-"}
-edge: { sourcename: "t15" targetname: "t13"class: 5 label: "param 0" color: green}
-edge: { sourcename: "t15" targetname: "t11"class: 5 label: "param 1" color: green}
-node: {title: "t13" label: "pointer class_prima_ptr" info1: "state: layout_fixed,
-mode: P,
-size: 4B,
-"}
-edge: { sourcename: "t13" targetname: "t12"class: 9 label: "points to" color:green}
-node: {title: "t11" label: "primitive int" info1: "state: layout_fixed,
-mode: Is,
-size: 4B,
-"}
-node: {title: "e20" label: "ent PRIMA_INLINE_c" color: yellow
- info1: "
-id: e20
-allocation:  allocation_static
-visibility:  visibility_local
-variability: variability_constant
-volatility:  volatility_non_volatile
-peculiarity: peculiarity_existent
-name:    PRIMA_INLINE_c
-ld_name: PRIMA_INLINE_c
-offset:  -1
-irg = g90"
+}
+
+node: {title: "e17" label: "ent a" color: yellow
+ info1: "entity a (17)
+  type:  int (14)
+  owner: PRIMA_INLINE (15)
+  Does not overwrite other entities.
+  Is not overwritten by other entities.
+  allocation:  allocation_automatic
+  visibility:  visibility_local
+  variability: variability_uninitialized
+  volatility:  volatility_non_volatile
+  peculiarity: peculiarity_existent
+  ld_name: no yet set
+  offset:  -1 bits, -1 bytes
+
+"
+}
+edge: { sourcename: "e17" targetname: "t14"class: 3 label: "type" color: red}
+node: {title: "t15" label: "class PRIMA_INLINE" info1: "class type PRIMA_INLINE (15)
+  members:
+    entity a (17)
+      type:  int (14)
+      owner: PRIMA_INLINE (15)
+      Does not overwrite other entities.
+      Is not overwritten by other entities.
+      allocation:  allocation_automatic
+      visibility:  visibility_local
+      variability: variability_uninitialized
+      volatility:  volatility_non_volatile
+      peculiarity: peculiarity_existent
+      ld_name: no yet set
+      offset:  -1 bits, -1 bytes
+    entity set_a (20)
+      type:  set_a (18)
+      owner: PRIMA_INLINE (15)
+      Does not overwrite other entities.
+      Is not overwritten by other entities.
+      allocation:  allocation_static
+      visibility:  visibility_local
+      variability: variability_constant
+      calling convention: cdecl
+      atomic value: SymC &set_a
+      volatility:  volatility_non_volatile
+      peculiarity: peculiarity_existent
+      ld_name: PRIMA_INLINE_set_a
+      offset:  -1 bits, -1 bytes
+      irg = 73
+    entity c (23)
+      type:  c (21)
+      owner: PRIMA_INLINE (15)
+      Does not overwrite other entities.
+      Is not overwritten by other entities.
+      allocation:  allocation_static
+      visibility:  visibility_local
+      variability: variability_constant
+      calling convention: cdecl
+      atomic value: SymC &c
+      volatility:  volatility_non_volatile
+      peculiarity: peculiarity_existent
+      ld_name: PRIMA_INLINE_c
+      offset:  -1 bits, -1 bytes
+      irg = 96
+  supertypes:
+  subtypes:
+  peculiarity: peculiarity_existent
+  visibility: visibility_external_allocated,
+  state:      layout_undefined,
+  size:       -1 Bits,
+  alignment:  32 Bits,
+
+
+"
+ color: green}
+edge: { sourcename: "t15" targetname: "e17"class: 12 label: "member" color:blue}
+edge: { sourcename: "t15" targetname: "e20"class: 12 label: "member" color:blue}
+edge: { sourcename: "t15" targetname: "e23"class: 12 label: "member" color:blue}
+node: {title: "e20" label: "ent PRIMA_INLINE_set_a" color: yellow
+ info1: "entity set_a (20)
+  type:  set_a (18)
+  owner: PRIMA_INLINE (15)
+  Does not overwrite other entities.
+  Is not overwritten by other entities.
+  allocation:  allocation_static
+  visibility:  visibility_local
+  variability: variability_constant
+  calling convention: cdecl
+  atomic value: SymC &set_a
+  volatility:  volatility_non_volatile
+  peculiarity: peculiarity_existent
+  ld_name: PRIMA_INLINE_set_a
+  offset:  -1 bits, -1 bytes
+  irg = 73
+
+"
 }
 edge: { sourcename: "e20" targetname: "t18"class: 3 label: "type" color: red}
 edge: { sourcename: "e20" targetname: "n19"label: "value 0"}
-node: {title: "n19" label: "&(PRIMA_INLINE_c)P  19"  info1: "visited: 2
-arity: 0
-Const of type type_unknown
-" info2: "(mode_is_data (mymode) || mymode == mode_b) && Const node"color: yellow}
-node: {title: "t18" label: "method c" info1: "state: layout_fixed,
-mode: P,
-size: 4B,
-variadicity: variadicity_non_variadic
-params: 2
-results: 1
-"}
-edge: { sourcename: "t18" targetname: "t13"class: 5 label: "param 0" color: green}
-edge: { sourcename: "t18" targetname: "t11"class: 5 label: "param 1" color: green}
-edge: { sourcename: "t18" targetname: "t11"class: 6 label: "res 0" color: green}
-node: {title: "t57" label: "class set_aframe_tp" info1: "state: layout_undefined
-size: -1B,
-peculiarity: peculiarity_existent
-" color: green}
-edge: { sourcename: "n230" targetname: "e14"class:2 priority:2 linestyle:dotted}
+node: {title: "n19" label: "SymC &set_a 19"  info1: "SymC &set_a 19
+  mode:    P
+  visited: 2
+  arity:   0
+  pred nodes:
+    -1:    Block 3
+  Private Attributes:
+  kind:   addr_ent
+  entity: entity PRIMA_INLINE.set_a (20)
+
+  type of value: type_unknown
+"
+}
+node: {title: "t18" label: "method set_a" info1: "method type set_a (18)
+  variadicity: variadicity_non_variadic
+  return types: 0
+  parameter types: 2
+    class_prima_ptr
+    int
+  visibility: visibility_external_allocated,
+  state:      layout_fixed,
+  size:       32 Bits,
+  alignment:  32 Bits,
+  mode:       P,
+
+
+"
+}
+edge: { sourcename: "t18" targetname: "t16"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t18" targetname: "t14"class: 5 label: "param 1" color: green}
+node: {title: "t16" label: "pointer class_prima_ptr" info1: "pointer type class_prima_ptr (16)
+  points to PRIMA_INLINE (15)
+  visibility: visibility_external_allocated,
+  state:      layout_fixed,
+  size:       32 Bits,
+  alignment:  32 Bits,
+  mode:       P,
+
+
+"
+}
+edge: { sourcename: "t16" targetname: "t15"class: 9 label: "points to" color:green}
+node: {title: "t14" label: "primitive int" info1: "primitive type int (14)
+  visibility: visibility_external_allocated,
+  state:      layout_fixed,
+  size:       32 Bits,
+  alignment:  32 Bits,
+  mode:       Is,
+
+
+"
+}
+node: {title: "e23" label: "ent PRIMA_INLINE_c" color: yellow
+ info1: "entity c (23)
+  type:  c (21)
+  owner: PRIMA_INLINE (15)
+  Does not overwrite other entities.
+  Is not overwritten by other entities.
+  allocation:  allocation_static
+  visibility:  visibility_local
+  variability: variability_constant
+  calling convention: cdecl
+  atomic value: SymC &c
+  volatility:  volatility_non_volatile
+  peculiarity: peculiarity_existent
+  ld_name: PRIMA_INLINE_c
+  offset:  -1 bits, -1 bytes
+  irg = 96
+
+"
+}
+edge: { sourcename: "e23" targetname: "t21"class: 3 label: "type" color: red}
+edge: { sourcename: "e23" targetname: "n22"label: "value 0"}
+node: {title: "n22" label: "SymC &c 22"  info1: "SymC &c 22
+  mode:    P
+  visited: 2
+  arity:   0
+  pred nodes:
+    -1:    Block 3
+  Private Attributes:
+  kind:   addr_ent
+  entity: entity PRIMA_INLINE.c (23)
+
+  type of value: type_unknown
+"
+}
+node: {title: "t21" label: "method c" info1: "method type c (21)
+  variadicity: variadicity_non_variadic
+  return types: 1
+    int
+  parameter types: 2
+    class_prima_ptr
+    int
+  visibility: visibility_external_allocated,
+  state:      layout_fixed,
+  size:       32 Bits,
+  alignment:  32 Bits,
+  mode:       P,
+
+
+"
+}
+edge: { sourcename: "t21" targetname: "t16"class: 5 label: "param 0" color: green}
+edge: { sourcename: "t21" targetname: "t14"class: 5 label: "param 1" color: green}
+edge: { sourcename: "t21" targetname: "t14"class: 6 label: "res 0" color: green}
+node: {title: "t61" label: "class set_aframe_tp" info1: "class type set_aframe_tp (61)
+  members:
+  supertypes:
+  subtypes:
+  peculiarity: peculiarity_existent
+  visibility: visibility_external_allocated,
+  state:      layout_undefined,
+  size:       -1 Bits,
+  alignment:   0 Bits,
+
+
+"
+ color: green}
+edge: { sourcename: "n78" targetname: "e17"class:2 priority:2 linestyle:dotted}
 }