
void main()
main: scope:[main]  from
  [0] *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT)
  [1] print1::p_x#0 = *((char *)&main::p1)
  [2] print1::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y)
  [3] call print1
  to:main::@1
main::@1: scope:[main]  from main
  [4] print2::p_x#0 = *((char *)&main::p1)
  [5] print2::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y)
  [6] call print2
  to:main::@2
main::@2: scope:[main]  from main::@1
  [7] phi()
  [8] call print1
  to:main::@3
main::@3: scope:[main]  from main::@2
  [9] phi()
  [10] call print2
  to:main::@return
main::@return: scope:[main]  from main::@3
  [11] return 
  to:@return

void print1(char p_x , char p_y , char idx)
print1: scope:[print1]  from main main::@2
  [12] print1::p_y#2 = phi( main/print1::p_y#0, main::@2/main::p2_y )
  [12] print1::p_x#2 = phi( main/print1::p_x#0, main::@2/main::p2_x )
  [12] print1::idx#2 = phi( main/0, main::@2/4 )
  [13] print1::$0 = print1::idx#2 << 1
  [14] ((char *)SCREEN)[print1::$0] = print1::p_x#2
  [15] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2
  to:print1::@return
print1::@return: scope:[print1]  from print1
  [16] return 
  to:@return

void print2(char p_x , char p_y , char idx)
print2: scope:[print2]  from main::@1 main::@3
  [17] print2::p_y#2 = phi( main::@1/print2::p_y#0, main::@3/main::p2_y )
  [17] print2::p_x#2 = phi( main::@1/print2::p_x#0, main::@3/main::p2_x )
  [17] print2::idx#2 = phi( main::@1/2, main::@3/6 )
  [18] print2::$0 = print2::idx#2 << 1
  [19] ((char *)SCREEN)[print2::$0] = print2::p_x#2
  [20] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2
  to:print2::@return
print2::@return: scope:[print2]  from print2
  [21] return 
  to:@return
