[PATCH][fortran] Rework allocator library interface

Thomas Koenig Thomas.Koenig@online.de
Mon Dec 11 22:37:00 GMT 2006


On Mon, Dec 11, 2006 at 10:36:13PM +0100, Richard Guenther wrote:

> *sigh* - I thought this might have been an issue due to the fact I tested
> on 64bits while you on 32bit.  But I cannot reproduce the above failures
> on i686-pc-linux-gnu.  Can you send me -fdump-tree-gimple-uid and 
> -fdump-tree-alias1-vops-uid output of -O1 compile of both of these 
> failures on your system?

Attached.

BTW, if my suggestion of doing the normal allocate as well
complicates things too much, it might be better to ignore it :-)

Regards
	Thomas
-------------- next part --------------
moobar (a)
{
  int4D.2 iftmp.9D.1018;
  voidD.16 * D.1019;
  int4D.2 D.1020;
  int4D.2 D.1021;
  int4D.2 D.1022;
  <unnamed type> size.10D.1023;
  bit_size_type D.1024;
  voidD.16 * D.1025;
  int4D.2[0:] * D.1026;
  int4D.2 D.1028;
  int4D.2 D.1029;
  int4D.2 D.1030;
  int4D.2 D.1031;
  int4D.2 S.11D.1032;
  int4D.2 D.1033;
  logical4D.6 D.1034;
  int4D.2 ubound.0D.1000;
  int4D.2 stride.1D.1001;
  int4D.2 offset.2D.1002;
  int4D.2 size.3D.1003;
  int4D.2[0:D.1015] * a.0D.999;
  int4D.2 D.1015;
  bit_size_type D.1016;
  <unnamed type> D.1017;

  {
    int4D.2 D.1014;

    D.1014 = aD.998->dimD.994[0].strideD.990;
    if (D.1014 == 0)
      {
        iftmp.9D.1018 = 1;
      }
    else
      {
        iftmp.9D.1018 = D.1014;
      }
    stride.1D.1001 = iftmp.9D.1018;
    D.1019 = aD.998->dataD.987;
    a.0D.999 = (int4D.2[0:D.1015] *) D.1019;
    D.1020 = aD.998->dimD.994[0].uboundD.992;
    D.1021 = aD.998->dimD.994[0].lboundD.991;
    D.1022 = D.1020 - D.1021;
    ubound.0D.1000 = D.1022 + 1;
    size.3D.1003 = stride.1D.1001 * ubound.0D.1000;
    offset.2D.1002 = -stride.1D.1001;
    D.1015 = size.3D.1003 - 1;
    size.10D.1023 = (<unnamed type>) size.3D.1003;
    D.1024 = (bit_size_type) size.10D.1023;
    D.1016 = D.1024 * 32;
    size.10D.1023 = (<unnamed type>) size.3D.1003;
    D.1017 = size.10D.1023 * 4;
  }
  {
    int4D.2 A.6D.1008[3];
    struct array1_int4 atmp.5D.1007;
    int4D.2 D.1006;
    logical4D.6 test.4D.1004;

    test.4D.1004 = 1;
    D.1006 = offset.2D.1002;
    atmp.5D.1007.dtypeD.989 = 265;
    atmp.5D.1007.dimD.994[0].strideD.990 = 1;
    atmp.5D.1007.dimD.994[0].lboundD.991 = 0;
    atmp.5D.1007.dimD.994[0].uboundD.992 = 2;
    atmp.5D.1007.dataD.987 = &A.6D.1008;
    atmp.5D.1007.offsetD.988 = 0;
    D.1025 = atmp.5D.1007.dataD.987;
    D.1026 = (int4D.2[0:] *) D.1025;
    (*D.1026)[0] = 1;
    D.1025 = atmp.5D.1007.dataD.987;
    D.1026 = (int4D.2[0:] *) D.1025;
    (*D.1026)[1] = 2;
    D.1025 = atmp.5D.1007.dataD.987;
    D.1026 = (int4D.2[0:] *) D.1025;
    (*D.1026)[2] = 3;
    {
      int4D.2 D.1011;
      int4D.2 S.8D.1010;

      D.1011 = stride.1D.1001;
      S.8D.1010 = 0;
      <D1027>:;
      if (S.8D.1010 > 2)
        {
          goto L.2D.1012;
        }
      else
        {
          
        }
      D.1028 = S.8D.1010 + 1;
      D.1029 = D.1028 * D.1011;
      D.1030 = D.1029 + D.1006;
      D.1031 = (*a.0D.999)[D.1030];
      D.1025 = atmp.5D.1007.dataD.987;
      D.1026 = (int4D.2[0:] *) D.1025;
      S.11D.1032 = S.8D.1010;
      D.1033 = (*D.1026)[S.11D.1032];
      D.1034 = D.1031 == D.1033;
      if (D.1034 == 0)
        {
          test.4D.1004 = 0;
          goto L.1D.1005;
        }
      else
        {
          
        }
      S.8D.1010 = S.8D.1010 + 1;
      goto <D1027>;
      L.2D.1012:;
    }
    L.1D.1005:;
    if (test.4D.1004 == 0)
      {
        _gfortran_abort ();
      }
    else
      {
        
      }
  }
}


foo2 (__result, n)
{
  int4D.2 D.1047;
  voidD.16 * D.1048;
  voidD.16 * D.1049;
  int4D.2[0:] * D.1051;
  int4D.2 D.1052;
  int4D.2 D.1053;
  int4D.2 D.1054;
  int4D.2 D.1055;
  int4D.2 iD.1039;

  {
    logical4D.6 D.1042;
    int4D.2 size.12D.1041;
    int4D.2 D.1040;

    __resultD.1037->dtypeD.989 = 265;
    __resultD.1037->dimD.994[0].lboundD.991 = 1;
    D.1047 = *nD.1038;
    __resultD.1037->dimD.994[0].uboundD.992 = D.1047;
    __resultD.1037->dimD.994[0].strideD.990 = 1;
    D.1040 = *nD.1038;
    D.1047 = *nD.1038;
    D.1042 = D.1047 <= 0;
    if (D.1042)
      {
        size.12D.1041 = 0;
      }
    else
      {
        size.12D.1041 = D.1040 * 4;
      }
    D.1048 = __resultD.1037->dataD.987;
    D.1049 = _gfortran_allocate_array (D.1048, size.12D.1041, 0);
    __resultD.1037->dataD.987 = D.1049;
    __resultD.1037->offsetD.988 = -1;
  }
  {
    int4D.2 D.1043;

    D.1043 = *nD.1038;
    iD.1039 = 1;
    if (iD.1039 <= D.1043)
      {
        <D1050>:;
        {
          logical4D.6 D.1046;

          D.1048 = __resultD.1037->dataD.987;
          D.1051 = (int4D.2[0:] *) D.1048;
          D.1052 = __resultD.1037->dimD.994[0].strideD.990;
          D.1053 = D.1052 * iD.1039;
          D.1054 = __resultD.1037->offsetD.988;
          D.1055 = D.1053 + D.1054;
          (*D.1051)[D.1055] = iD.1039;
          L.3D.1044:;
          D.1046 = iD.1039 == D.1043;
          iD.1039 = iD.1039 + 1;
          if (D.1046)
            {
              goto L.4D.1045;
            }
          else
            {
              
            }
        }
        goto <D1050>;
      }
    else
      {
        
      }
    L.4D.1045:;
  }
}


foo3 (__result, n)
{
  int4D.2 D.1068;
  voidD.16 * D.1069;
  voidD.16 * D.1070;
  int4D.2[0:] * D.1072;
  int4D.2 D.1073;
  int4D.2 D.1074;
  int4D.2 D.1075;
  int4D.2 D.1076;
  int4D.2 iD.1060;

  {
    logical4D.6 D.1063;
    int4D.2 size.13D.1062;
    int4D.2 D.1061;

    __resultD.1058->dtypeD.989 = 265;
    __resultD.1058->dimD.994[0].lboundD.991 = 1;
    D.1068 = *nD.1059;
    __resultD.1058->dimD.994[0].uboundD.992 = D.1068;
    __resultD.1058->dimD.994[0].strideD.990 = 1;
    D.1061 = *nD.1059;
    D.1068 = *nD.1059;
    D.1063 = D.1068 <= 0;
    if (D.1063)
      {
        size.13D.1062 = 0;
      }
    else
      {
        size.13D.1062 = D.1061 * 4;
      }
    D.1069 = __resultD.1058->dataD.987;
    D.1070 = _gfortran_allocate_array (D.1069, size.13D.1062, 0);
    __resultD.1058->dataD.987 = D.1070;
    __resultD.1058->offsetD.988 = -1;
  }
  {
    int4D.2 D.1064;

    D.1064 = *nD.1059;
    iD.1060 = 1;
    if (iD.1060 <= D.1064)
      {
        <D1071>:;
        {
          logical4D.6 D.1067;

          D.1069 = __resultD.1058->dataD.987;
          D.1072 = (int4D.2[0:] *) D.1069;
          D.1073 = __resultD.1058->dimD.994[0].strideD.990;
          D.1074 = D.1073 * iD.1060;
          D.1075 = __resultD.1058->offsetD.988;
          D.1076 = D.1074 + D.1075;
          (*D.1072)[D.1076] = iD.1060;
          L.5D.1065:;
          D.1067 = iD.1060 == D.1064;
          iD.1060 = iD.1060 + 1;
          if (D.1067)
            {
              goto L.6D.1066;
            }
          else
            {
              
            }
        }
        goto <D1071>;
      }
    else
      {
        
      }
    L.6D.1066:;
  }
}


MAIN__ ()
{
  voidD.16 * D.1189;
  int4D.2[0:] * D.1190;
  voidD.16 * D.1192;
  int4D.2[0:] * D.1193;
  int4D.2 S.56D.1194;
  int4D.2 D.1195;
  int4D.2 D.1196;
  logical4D.6 D.1197;
  int4D.2 S.57D.1199;
  voidD.16 * D.1200;
  int4D.2[0:] * D.1201;
  int4D.2 D.1202;
  voidD.16 * D.1203;
  int4D.2[0:] * D.1204;
  int4D.2 S.58D.1206;
  int4D.2 D.1207;
  int4D.2 D.1208;
  logical4D.6 D.1209;
  voidD.16 * D.1210;
  voidD.16 * D.1211;
  int4D.2[0:] * D.1212;
  voidD.16 * D.1214;
  int4D.2[0:] * D.1215;
  int4D.2 S.59D.1216;
  int4D.2 D.1217;
  int4D.2 D.1218;
  int4D.2 D.1219;
  int4D.2 D.1220;
  logical4D.6 D.1221;
  int4D.2 D.1222;
  voidD.16 * D.1223;
  int4D.2 D.1224;
  int4D.2 D.1226;
  int4D.2 D.1227;
  int4D.2 D.1228;
  int4D.2 S.60D.1229;
  voidD.16 * D.1230;
  int4D.2[0:] * D.1231;
  int4D.2 D.1232;
  int4D.2 D.1233;
  int4D.2 D.1234;
  int4D.2 D.1235;
  voidD.16 * D.1236;
  int4D.2[0:] * D.1237;
  int4D.2 S.61D.1239;
  int4D.2 D.1240;
  int4D.2 D.1241;
  logical4D.6 D.1242;
  voidD.16 * D.1243;
  voidD.16 * D.1244;
  voidD.16 * D.1245;
  int4D.2 aD.1124[3];
  static voidD.16 foobarD.1087 (struct array1_int4 &);
  static voidD.16 foo1D.1083 (struct array1_int4 &, int4D.2 &);
  static voidD.16 barD.1079 (struct array1_int4 &, int4D.2 &);

  _gfortran_set_std (70, 127, 0);
  {
    int4D.2 A.28D.1131[3];
    struct array1_int4 atmp.27D.1130;
    struct array1_int4 atmp.26D.1129;
    int4D.2 * D.1128;
    static int4D.2 C.1127 = 3;
    logical4D.6 test.25D.1125;

    test.25D.1125 = 1;
    D.1128 = &C.1127;
    atmp.26D.1129.dtypeD.989 = 265;
    atmp.26D.1129.dimD.994[0].strideD.990 = 1;
    atmp.26D.1129.dimD.994[0].lboundD.991 = 0;
    atmp.26D.1129.dimD.994[0].uboundD.992 = 2;
    atmp.26D.1129.dataD.987 = 0B;
    atmp.26D.1129.offsetD.988 = 0;
    foo1 (&atmp.26D.1129, D.1128);
    atmp.27D.1130.dtypeD.989 = 265;
    atmp.27D.1130.dimD.994[0].strideD.990 = 1;
    atmp.27D.1130.dimD.994[0].lboundD.991 = 0;
    atmp.27D.1130.dimD.994[0].uboundD.992 = 2;
    atmp.27D.1130.dataD.987 = &A.28D.1131;
    atmp.27D.1130.offsetD.988 = 0;
    D.1189 = atmp.27D.1130.dataD.987;
    D.1190 = (int4D.2[0:] *) D.1189;
    (*D.1190)[0] = 1;
    D.1189 = atmp.27D.1130.dataD.987;
    D.1190 = (int4D.2[0:] *) D.1189;
    (*D.1190)[1] = 2;
    D.1189 = atmp.27D.1130.dataD.987;
    D.1190 = (int4D.2[0:] *) D.1189;
    (*D.1190)[2] = 3;
    {
      int4D.2 S.30D.1133;

      S.30D.1133 = 0;
      <D1191>:;
      if (S.30D.1133 > 2)
        {
          goto L.14D.1134;
        }
      else
        {
          
        }
      D.1192 = atmp.26D.1129.dataD.987;
      D.1193 = (int4D.2[0:] *) D.1192;
      S.56D.1194 = S.30D.1133;
      D.1195 = (*D.1193)[S.56D.1194];
      D.1189 = atmp.27D.1130.dataD.987;
      D.1190 = (int4D.2[0:] *) D.1189;
      S.56D.1194 = S.30D.1133;
      D.1196 = (*D.1190)[S.56D.1194];
      D.1197 = D.1195 == D.1196;
      if (D.1197 == 0)
        {
          test.25D.1125 = 0;
          goto L.13D.1126;
        }
      else
        {
          
        }
      S.30D.1133 = S.30D.1133 + 1;
      goto <D1191>;
      L.14D.1134:;
    }
    L.13D.1126:;
    D.1192 = atmp.26D.1129.dataD.987;
    _gfortran_internal_free (D.1192);
    if (test.25D.1125 == 0)
      {
        _gfortran_abort ();
      }
    else
      {
        
      }
  }
  {
    struct array1_int4 atmp.31D.1137;
    int4D.2 * D.1136;
    static int4D.2 C.1135 = 3;

    D.1136 = &C.1135;
    atmp.31D.1137.dtypeD.989 = 265;
    atmp.31D.1137.dimD.994[0].strideD.990 = 1;
    atmp.31D.1137.dimD.994[0].lboundD.991 = 0;
    atmp.31D.1137.dimD.994[0].uboundD.992 = 2;
    atmp.31D.1137.dataD.987 = 0B;
    atmp.31D.1137.offsetD.988 = 0;
    foo1 (&atmp.31D.1137, D.1136);
    {
      int4D.2 S.32D.1138;

      S.32D.1138 = 0;
      <D1198>:;
      if (S.32D.1138 > 2)
        {
          goto L.15D.1139;
        }
      else
        {
          
        }
      S.57D.1199 = S.32D.1138;
      D.1200 = atmp.31D.1137.dataD.987;
      D.1201 = (int4D.2[0:] *) D.1200;
      S.57D.1199 = S.32D.1138;
      D.1202 = (*D.1201)[S.57D.1199];
      aD.1124[S.57D.1199] = D.1202;
      S.32D.1138 = S.32D.1138 + 1;
      goto <D1198>;
      L.15D.1139:;
    }
    D.1200 = atmp.31D.1137.dataD.987;
    _gfortran_internal_free (D.1200);
  }
  {
    int4D.2 A.35D.1143[3];
    struct array1_int4 atmp.34D.1142;
    logical4D.6 test.33D.1140;

    test.33D.1140 = 1;
    atmp.34D.1142.dtypeD.989 = 265;
    atmp.34D.1142.dimD.994[0].strideD.990 = 1;
    atmp.34D.1142.dimD.994[0].lboundD.991 = 0;
    atmp.34D.1142.dimD.994[0].uboundD.992 = 2;
    atmp.34D.1142.dataD.987 = &A.35D.1143;
    atmp.34D.1142.offsetD.988 = 0;
    D.1203 = atmp.34D.1142.dataD.987;
    D.1204 = (int4D.2[0:] *) D.1203;
    (*D.1204)[0] = 1;
    D.1203 = atmp.34D.1142.dataD.987;
    D.1204 = (int4D.2[0:] *) D.1203;
    (*D.1204)[1] = 2;
    D.1203 = atmp.34D.1142.dataD.987;
    D.1204 = (int4D.2[0:] *) D.1203;
    (*D.1204)[2] = 3;
    {
      int4D.2 S.37D.1145;

      S.37D.1145 = 0;
      <D1205>:;
      if (S.37D.1145 > 2)
        {
          goto L.17D.1146;
        }
      else
        {
          
        }
      S.58D.1206 = S.37D.1145;
      D.1207 = aD.1124[S.58D.1206];
      D.1203 = atmp.34D.1142.dataD.987;
      D.1204 = (int4D.2[0:] *) D.1203;
      S.58D.1206 = S.37D.1145;
      D.1208 = (*D.1204)[S.58D.1206];
      D.1209 = D.1207 == D.1208;
      if (D.1209 == 0)
        {
          test.33D.1140 = 0;
          goto L.16D.1141;
        }
      else
        {
          
        }
      S.37D.1145 = S.37D.1145 + 1;
      goto <D1205>;
      L.17D.1146:;
    }
    L.16D.1141:;
    if (test.33D.1140 == 0)
      {
        _gfortran_abort ();
      }
    else
      {
        
      }
  }
  {
    struct array1_int4 atmp.38D.1149;
    int4D.2 * D.1148;
    static int4D.2 C.1147 = 3;

    D.1148 = &C.1147;
    atmp.38D.1149.dtypeD.989 = 265;
    atmp.38D.1149.dataD.987 = 0B;
    atmp.38D.1149.offsetD.988 = 0;
    foo1 (&atmp.38D.1149, D.1148);
    foobar (&atmp.38D.1149);
    D.1210 = atmp.38D.1149.dataD.987;
    _gfortran_internal_free (D.1210);
  }
  {
    int4D.2 A.42D.1156[3];
    struct array1_int4 atmp.41D.1155;
    struct array1_int4 atmp.40D.1154;
    int4D.2 * D.1153;
    static int4D.2 C.1152 = 3;
    logical4D.6 test.39D.1150;

    test.39D.1150 = 1;
    D.1153 = &C.1152;
    atmp.40D.1154.dtypeD.989 = 265;
    atmp.40D.1154.dimD.994[0].strideD.990 = 1;
    atmp.40D.1154.dimD.994[0].lboundD.991 = 0;
    atmp.40D.1154.dimD.994[0].uboundD.992 = 2;
    atmp.40D.1154.dataD.987 = 0B;
    atmp.40D.1154.offsetD.988 = 0;
    bar (&atmp.40D.1154, D.1153);
    atmp.41D.1155.dtypeD.989 = 265;
    atmp.41D.1155.dimD.994[0].strideD.990 = 1;
    atmp.41D.1155.dimD.994[0].lboundD.991 = 0;
    atmp.41D.1155.dimD.994[0].uboundD.992 = 2;
    atmp.41D.1155.dataD.987 = &A.42D.1156;
    atmp.41D.1155.offsetD.988 = 0;
    D.1211 = atmp.41D.1155.dataD.987;
    D.1212 = (int4D.2[0:] *) D.1211;
    (*D.1212)[0] = 7;
    D.1211 = atmp.41D.1155.dataD.987;
    D.1212 = (int4D.2[0:] *) D.1211;
    (*D.1212)[1] = 9;
    D.1211 = atmp.41D.1155.dataD.987;
    D.1212 = (int4D.2[0:] *) D.1211;
    (*D.1212)[2] = 11;
    {
      int4D.2 S.44D.1158;

      S.44D.1158 = 0;
      <D1213>:;
      if (S.44D.1158 > 2)
        {
          goto L.19D.1159;
        }
      else
        {
          
        }
      D.1214 = atmp.40D.1154.dataD.987;
      D.1215 = (int4D.2[0:] *) D.1214;
      S.59D.1216 = S.44D.1158;
      D.1217 = (*D.1215)[S.59D.1216];
      D.1218 = D.1217 * 2;
      D.1219 = D.1218 + 5;
      D.1211 = atmp.41D.1155.dataD.987;
      D.1212 = (int4D.2[0:] *) D.1211;
      S.59D.1216 = S.44D.1158;
      D.1220 = (*D.1212)[S.59D.1216];
      D.1221 = D.1219 == D.1220;
      if (D.1221 == 0)
        {
          test.39D.1150 = 0;
          goto L.18D.1151;
        }
      else
        {
          
        }
      S.44D.1158 = S.44D.1158 + 1;
      goto <D1213>;
      L.19D.1159:;
    }
    L.18D.1151:;
    D.1214 = atmp.40D.1154.dataD.987;
    _gfortran_internal_free (D.1214);
    if (test.39D.1150 == 0)
      {
        _gfortran_abort ();
      }
    else
      {
        
      }
  }
  {
    int4D.2 D.1167;
    int4D.2 D.1166;
    struct array1_int4 atmp.46D.1165;
    int4D.2 * D.1164;
    static int4D.2 C.1163 = 3;
    struct array1_int4 atmp.45D.1162;
    int4D.2 * D.1161;
    static int4D.2 C.1160 = 3;

    D.1161 = &C.1160;
    atmp.45D.1162.dtypeD.989 = 265;
    atmp.45D.1162.dataD.987 = 0B;
    atmp.45D.1162.offsetD.988 = 0;
    bar (&atmp.45D.1162, D.1161);
    D.1164 = &C.1163;
    atmp.46D.1165.dtypeD.989 = 265;
    atmp.46D.1165.dataD.987 = 0B;
    atmp.46D.1165.offsetD.988 = 0;
    bar (&atmp.46D.1165, D.1164);
    D.1222 = _gfortran_size0 (&atmp.46D.1165);
    D.1166 = D.1222;
    D.1223 = atmp.46D.1165.dataD.987;
    _gfortran_internal_free (D.1223);
    D.1224 = D.1166 + -1;
    D.1167 = aD.1124[D.1224];
    {
      int4D.2 S.47D.1168;

      S.47D.1168 = 0;
      <D1225>:;
      D.1226 = atmp.45D.1162.dimD.994[0].uboundD.992;
      D.1227 = atmp.45D.1162.dimD.994[0].lboundD.991;
      D.1228 = D.1226 - D.1227;
      if (S.47D.1168 > D.1228)
        {
          goto L.20D.1169;
        }
      else
        {
          
        }
      S.60D.1229 = S.47D.1168;
      D.1230 = atmp.45D.1162.dataD.987;
      D.1231 = (int4D.2[0:] *) D.1230;
      S.60D.1229 = S.47D.1168;
      D.1232 = (*D.1231)[S.60D.1229];
      D.1233 = D.1232 + 1;
      D.1234 = D.1233 * 2;
      D.1235 = D.1234 + D.1167;
      aD.1124[S.60D.1229] = D.1235;
      S.47D.1168 = S.47D.1168 + 1;
      goto <D1225>;
      L.20D.1169:;
    }
    D.1230 = atmp.45D.1162.dataD.987;
    _gfortran_internal_free (D.1230);
  }
  {
    int4D.2 A.50D.1173[3];
    struct array1_int4 atmp.49D.1172;
    logical4D.6 test.48D.1170;

    test.48D.1170 = 1;
    atmp.49D.1172.dtypeD.989 = 265;
    atmp.49D.1172.dimD.994[0].strideD.990 = 1;
    atmp.49D.1172.dimD.994[0].lboundD.991 = 0;
    atmp.49D.1172.dimD.994[0].uboundD.992 = 2;
    atmp.49D.1172.dataD.987 = &A.50D.1173;
    atmp.49D.1172.offsetD.988 = 0;
    D.1236 = atmp.49D.1172.dataD.987;
    D.1237 = (int4D.2[0:] *) D.1236;
    (*D.1237)[0] = 7;
    D.1236 = atmp.49D.1172.dataD.987;
    D.1237 = (int4D.2[0:] *) D.1236;
    (*D.1237)[1] = 9;
    D.1236 = atmp.49D.1172.dataD.987;
    D.1237 = (int4D.2[0:] *) D.1236;
    (*D.1237)[2] = 11;
    {
      int4D.2 S.52D.1175;

      S.52D.1175 = 0;
      <D1238>:;
      if (S.52D.1175 > 2)
        {
          goto L.22D.1176;
        }
      else
        {
          
        }
      S.61D.1239 = S.52D.1175;
      D.1240 = aD.1124[S.61D.1239];
      D.1236 = atmp.49D.1172.dataD.987;
      D.1237 = (int4D.2[0:] *) D.1236;
      S.61D.1239 = S.52D.1175;
      D.1241 = (*D.1237)[S.61D.1239];
      D.1242 = D.1240 == D.1241;
      if (D.1242 == 0)
        {
          test.48D.1170 = 0;
          goto L.21D.1171;
        }
      else
        {
          
        }
      S.52D.1175 = S.52D.1175 + 1;
      goto <D1238>;
      L.22D.1176:;
    }
    L.21D.1171:;
    if (test.48D.1170 == 0)
      {
        _gfortran_abort ();
      }
    else
      {
        
      }
  }
  {
    struct array1_int4 atmp.53D.1179;
    int4D.2 * D.1178;
    static int4D.2 C.1177 = 3;

    D.1178 = &C.1177;
    atmp.53D.1179.dtypeD.989 = 265;
    atmp.53D.1179.dataD.987 = 0B;
    atmp.53D.1179.offsetD.988 = 0;
    foo1 (&atmp.53D.1179, D.1178);
    moobar (&atmp.53D.1179);
    D.1243 = atmp.53D.1179.dataD.987;
    _gfortran_internal_free (D.1243);
  }
  {
    struct array1_int4 atmp.54D.1183;
    int4D.2 * D.1182;
    static int4D.2 C.1181 = 3;

    D.1182 = &C.1181;
    atmp.54D.1183.dtypeD.989 = 265;
    atmp.54D.1183.dataD.987 = 0B;
    atmp.54D.1183.offsetD.988 = 0;
    foo2 (&atmp.54D.1183, D.1182);
    moobar (&atmp.54D.1183);
    D.1244 = atmp.54D.1183.dataD.987;
    _gfortran_internal_free (D.1244);
  }
  {
    struct array1_int4 atmp.55D.1187;
    int4D.2 * D.1186;
    static int4D.2 C.1185 = 3;

    D.1186 = &C.1185;
    atmp.55D.1187.dtypeD.989 = 265;
    atmp.55D.1187.dataD.987 = 0B;
    atmp.55D.1187.offsetD.988 = 0;
    foo3 (&atmp.55D.1187, D.1186);
    moobar (&atmp.55D.1187);
    D.1245 = atmp.55D.1187.dataD.987;
    _gfortran_internal_free (D.1245);
  }
}


foobar (a)
{
  int4D.2 iftmp.62D.1246;
  voidD.16 * D.1247;
  int4D.2 D.1248;
  int4D.2 D.1249;
  int4D.2 D.1250;
  <unnamed type> size.63D.1251;
  bit_size_type D.1252;
  voidD.16 * D.1253;
  int4D.2[0:] * D.1254;
  int4D.2 D.1256;
  int4D.2 D.1257;
  int4D.2 D.1258;
  int4D.2 D.1259;
  int4D.2 S.64D.1260;
  int4D.2 D.1261;
  logical4D.6 D.1262;
  int4D.2 ubound.16D.1107;
  int4D.2 stride.17D.1108;
  int4D.2 offset.18D.1109;
  int4D.2 size.19D.1110;
  int4D.2[0:D.1121] * a.0D.1106;
  int4D.2 D.1121;
  bit_size_type D.1122;
  <unnamed type> D.1123;

  {
    int4D.2 D.1120;

    D.1120 = aD.1089->dimD.994[0].strideD.990;
    if (D.1120 == 0)
      {
        iftmp.62D.1246 = 1;
      }
    else
      {
        iftmp.62D.1246 = D.1120;
      }
    stride.17D.1108 = iftmp.62D.1246;
    D.1247 = aD.1089->dataD.987;
    a.0D.1106 = (int4D.2[0:D.1121] *) D.1247;
    D.1248 = aD.1089->dimD.994[0].uboundD.992;
    D.1249 = aD.1089->dimD.994[0].lboundD.991;
    D.1250 = D.1248 - D.1249;
    ubound.16D.1107 = D.1250 + 1;
    size.19D.1110 = stride.17D.1108 * ubound.16D.1107;
    offset.18D.1109 = -stride.17D.1108;
    D.1121 = size.19D.1110 - 1;
    size.63D.1251 = (<unnamed type>) size.19D.1110;
    D.1252 = (bit_size_type) size.63D.1251;
    D.1122 = D.1252 * 32;
    size.63D.1251 = (<unnamed type>) size.19D.1110;
    D.1123 = size.63D.1251 * 4;
  }
  {
    int4D.2 A.22D.1115[3];
    struct array1_int4 atmp.21D.1114;
    int4D.2 D.1113;
    logical4D.6 test.20D.1111;

    test.20D.1111 = 1;
    D.1113 = offset.18D.1109;
    atmp.21D.1114.dtypeD.989 = 265;
    atmp.21D.1114.dimD.994[0].strideD.990 = 1;
    atmp.21D.1114.dimD.994[0].lboundD.991 = 0;
    atmp.21D.1114.dimD.994[0].uboundD.992 = 2;
    atmp.21D.1114.dataD.987 = &A.22D.1115;
    atmp.21D.1114.offsetD.988 = 0;
    D.1253 = atmp.21D.1114.dataD.987;
    D.1254 = (int4D.2[0:] *) D.1253;
    (*D.1254)[0] = 1;
    D.1253 = atmp.21D.1114.dataD.987;
    D.1254 = (int4D.2[0:] *) D.1253;
    (*D.1254)[1] = 2;
    D.1253 = atmp.21D.1114.dataD.987;
    D.1254 = (int4D.2[0:] *) D.1253;
    (*D.1254)[2] = 3;
    {
      int4D.2 D.1118;
      int4D.2 S.24D.1117;

      D.1118 = stride.17D.1108;
      S.24D.1117 = 0;
      <D1255>:;
      if (S.24D.1117 > 2)
        {
          goto L.12D.1119;
        }
      else
        {
          
        }
      D.1256 = S.24D.1117 + 1;
      D.1257 = D.1256 * D.1118;
      D.1258 = D.1257 + D.1113;
      D.1259 = (*a.0D.1106)[D.1258];
      D.1253 = atmp.21D.1114.dataD.987;
      D.1254 = (int4D.2[0:] *) D.1253;
      S.64D.1260 = S.24D.1117;
      D.1261 = (*D.1254)[S.64D.1260];
      D.1262 = D.1259 == D.1261;
      if (D.1262 == 0)
        {
          test.20D.1111 = 0;
          goto L.11D.1112;
        }
      else
        {
          
        }
      S.24D.1117 = S.24D.1117 + 1;
      goto <D1255>;
      L.12D.1119:;
    }
    L.11D.1112:;
    if (test.20D.1111 == 0)
      {
        _gfortran_abort ();
      }
    else
      {
        
      }
  }
}


foo1 (__result, n)
{
  int4D.2 D.1263;
  voidD.16 * D.1264;
  voidD.16 * D.1265;
  int4D.2[0:] * D.1267;
  int4D.2 D.1268;
  int4D.2 D.1269;
  int4D.2 D.1270;
  int4D.2 D.1271;
  int4D.2 iD.1098;

  {
    logical4D.6 D.1101;
    int4D.2 size.15D.1100;
    int4D.2 D.1099;

    __resultD.1085->dtypeD.989 = 265;
    __resultD.1085->dimD.994[0].lboundD.991 = 1;
    D.1263 = *nD.1086;
    __resultD.1085->dimD.994[0].uboundD.992 = D.1263;
    __resultD.1085->dimD.994[0].strideD.990 = 1;
    D.1099 = *nD.1086;
    D.1263 = *nD.1086;
    D.1101 = D.1263 <= 0;
    if (D.1101)
      {
        size.15D.1100 = 0;
      }
    else
      {
        size.15D.1100 = D.1099 * 4;
      }
    D.1264 = __resultD.1085->dataD.987;
    D.1265 = _gfortran_allocate_array (D.1264, size.15D.1100, 0);
    __resultD.1085->dataD.987 = D.1265;
    __resultD.1085->offsetD.988 = -1;
  }
  {
    int4D.2 D.1102;

    D.1102 = *nD.1086;
    iD.1098 = 1;
    if (iD.1098 <= D.1102)
      {
        <D1266>:;
        {
          logical4D.6 D.1105;

          D.1264 = __resultD.1085->dataD.987;
          D.1267 = (int4D.2[0:] *) D.1264;
          D.1268 = __resultD.1085->dimD.994[0].strideD.990;
          D.1269 = D.1268 * iD.1098;
          D.1270 = __resultD.1085->offsetD.988;
          D.1271 = D.1269 + D.1270;
          (*D.1267)[D.1271] = iD.1098;
          L.9D.1103:;
          D.1105 = iD.1098 == D.1102;
          iD.1098 = iD.1098 + 1;
          if (D.1105)
            {
              goto L.10D.1104;
            }
          else
            {
              
            }
        }
        goto <D1266>;
      }
    else
      {
        
      }
    L.10D.1104:;
  }
}


bar (__result, n)
{
  int4D.2 D.1272;
  voidD.16 * D.1273;
  voidD.16 * D.1274;
  int4D.2[0:] * D.1276;
  int4D.2 D.1277;
  int4D.2 D.1278;
  int4D.2 D.1279;
  int4D.2 D.1280;
  int4D.2 iD.1090;

  {
    logical4D.6 D.1093;
    int4D.2 size.14D.1092;
    int4D.2 D.1091;

    __resultD.1081->dtypeD.989 = 265;
    __resultD.1081->dimD.994[0].lboundD.991 = 1;
    D.1272 = *nD.1082;
    __resultD.1081->dimD.994[0].uboundD.992 = D.1272;
    __resultD.1081->dimD.994[0].strideD.990 = 1;
    D.1091 = *nD.1082;
    D.1272 = *nD.1082;
    D.1093 = D.1272 <= 0;
    if (D.1093)
      {
        size.14D.1092 = 0;
      }
    else
      {
        size.14D.1092 = D.1091 * 4;
      }
    D.1273 = __resultD.1081->dataD.987;
    D.1274 = _gfortran_allocate_array (D.1273, size.14D.1092, 0);
    __resultD.1081->dataD.987 = D.1274;
    __resultD.1081->offsetD.988 = -1;
  }
  {
    int4D.2 D.1094;

    D.1094 = *nD.1082;
    iD.1090 = 1;
    if (iD.1090 <= D.1094)
      {
        <D1275>:;
        {
          logical4D.6 D.1097;

          D.1273 = __resultD.1081->dataD.987;
          D.1276 = (int4D.2[0:] *) D.1273;
          D.1277 = __resultD.1081->dimD.994[0].strideD.990;
          D.1278 = D.1277 * iD.1090;
          D.1279 = __resultD.1081->offsetD.988;
          D.1280 = D.1278 + D.1279;
          (*D.1276)[D.1280] = iD.1090;
          L.7D.1095:;
          D.1097 = iD.1090 == D.1094;
          iD.1090 = iD.1090 + 1;
          if (D.1097)
            {
              goto L.8D.1096;
            }
          else
            {
              
            }
        }
        goto <D1275>;
      }
    else
      {
        
      }
    L.8D.1096:;
  }
}


-------------- next part --------------

;; Function moobar (moobar_)

Points-to analysis

Constraints:

ANYTHING = &ANYTHING
READONLY = &ANYTHING
INTEGER = &ANYTHING
ESCAPED_VARS = *ESCAPED_VARS
PARM_NOALIAS.79 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.79
ESCAPED_VARS = &PARM_NOALIAS.79.ubound
PARM_NOALIAS.79.ubound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.79.lbound
PARM_NOALIAS.79.lbound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.79.stride
PARM_NOALIAS.79.stride = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.79.dtype
PARM_NOALIAS.79.dtype = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.79.offset
PARM_NOALIAS.79.offset = ESCAPED_VARS
a = &PARM_NOALIAS.79
NONLOCAL.80 = ESCAPED_VARS
ESCAPED_VARS = &NONLOCAL.80
ESCAPED_VARS = &NONLOCAL.80
D.1019_9 = *a
a.0_10 = D.1019_9
atmp.5 = &A.6
atmp.5 = &A.6.32
atmp.5 = &A.6.64
ESCAPED_VARS = &A.6
ESCAPED_VARS = &A.6.32
ESCAPED_VARS = &A.6.64
D.1025_37 = atmp.5
D.1026_38 = D.1025_37
D.1025_39 = atmp.5
D.1026_40 = D.1025_39
D.1025_41 = atmp.5
D.1026_42 = D.1025_41
D.1025_49 = atmp.5
D.1026_50 = D.1025_49

Collapsing static cycles and doing variable substitution:

Solving graph:

Points-to sets

NULL = { }
ANYTHING = { ANYTHING }
READONLY = { ANYTHING }
INTEGER = { ANYTHING }
ESCAPED_VARS = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
a = { PARM_NOALIAS.79 }
PARM_NOALIAS.79 = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
PARM_NOALIAS.79.ubound = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
PARM_NOALIAS.79.lbound = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
PARM_NOALIAS.79.stride = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
PARM_NOALIAS.79.dtype = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
PARM_NOALIAS.79.offset = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
NONLOCAL.80 = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
D.1019_9 = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
a.0_10 = { PARM_NOALIAS.79 PARM_NOALIAS.79.ubound PARM_NOALIAS.79.lbound PARM_NOALIAS.79.stride PARM_NOALIAS.79.dtype PARM_NOALIAS.79.offset NONLOCAL.80 A.6 A.6.64 A.6.32 }
atmp.5 = { A.6 A.6.64 A.6.32 }
atmp.5.ubound = { }
atmp.5.lbound = { }
atmp.5.stride = { }
atmp.5.dtype = { }
atmp.5.offset = { }
A.6 = { }
A.6.64 = { }
A.6.32 = { }
D.1025_37 = { A.6 A.6.64 A.6.32 }
D.1026_38 = { A.6 A.6.64 A.6.32 }
D.1025_39 = { A.6 A.6.64 A.6.32 }
D.1026_40 = { A.6 A.6.64 A.6.32 }
D.1025_41 = { A.6 A.6.64 A.6.32 }
D.1026_42 = { A.6 A.6.64 A.6.32 }
D.1025_49 = { A.6 A.6.64 A.6.32 }
D.1026_50 = { A.6 A.6.64 A.6.32 }

moobar: Total number of aliased vops: 0

Referenced variables in moobar: 47

Variable: D.1016, UID 1016, bit_size_type

Variable: D.1017, UID 1017, <unnamed type>

Variable: iftmp.9D.1018, UID 1018, int4D.2

Variable: D.1019, UID 1019, voidD.16 *

Variable: D.1020, UID 1020, int4D.2

Variable: D.1021, UID 1021, int4D.2

Variable: D.1022, UID 1022, int4D.2

Variable: size.10D.1023, UID 1023, <unnamed type>

Variable: D.1024, UID 1024, bit_size_type

Variable: D.1025, UID 1025, voidD.16 *

Variable: D.1026, UID 1026, int4D.2[0:] *, symbol memory tag: SMT.81D.1359

Variable: D.1028, UID 1028, int4D.2

Variable: D.1029, UID 1029, int4D.2

Variable: D.1030, UID 1030, int4D.2

Variable: D.1031, UID 1031, int4D.2

Variable: S.11D.1032, UID 1032, int4D.2

Variable: D.1033, UID 1033, int4D.2

Variable: D.1034, UID 1034, logical4D.6

Variable: SFT.65D.1343, UID 1343, int4D.2, default def: SFT.65D.1343_31

Variable: SFT.66D.1344, UID 1344, int4D.2, default def: SFT.66D.1344_29

Variable: SFT.67D.1345, UID 1345, int4D.2, default def: SFT.67D.1345_27

Variable: SFT.68D.1346, UID 1346, int4D.2, default def: SFT.68D.1346_25

Variable: SFT.69D.1347, UID 1347, int4D.2, default def: SFT.69D.1347_35

Variable: SFT.70D.1348, UID 1348, voidD.16 *, default def: SFT.70D.1348_33

Variable: SFT.71D.1349, UID 1349, int4D.2, is aliased, is addressable, call clobbered

Variable: SFT.72D.1350, UID 1350, int4D.2, is aliased, is addressable, call clobbered

Variable: SFT.73D.1351, UID 1351, int4D.2, is aliased, is addressable, call clobbered

Variable: PARM_NOALIAS.79D.1357, UID 1357, struct array1_int4, is aliased, is addressable, is global, call clobbered

Variable: NONLOCAL.80D.1358, UID 1358, voidD.16, is aliased, is addressable, is global, call clobbered

Variable: SMT.81D.1359, UID 1359, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.79D.1357 SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 NONLOCAL.80D.1358 }

Variable: NMT.82D.1360, UID 1360, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.79D.1357 }

Variable: NMT.83D.1361, UID 1361, int4D.2[0:D.1015], is addressable, is global, call clobbered, may aliases: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 PARM_NOALIAS.79D.1357 NONLOCAL.80D.1358 }

Variable: NMT.84D.1362, UID 1362, int4D.2[0:], is addressable, call clobbered, may aliases: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }

Variable: aD.998, UID 998, struct array1_int4 &, symbol memory tag: SMT.81D.1359, default def: aD.998_4

Variable: a.0D.999, UID 999, int4D.2[0:D.1015] *, symbol memory tag: SMT.81D.1359

Variable: ubound.0D.1000, UID 1000, int4D.2

Variable: stride.1D.1001, UID 1001, int4D.2

Variable: offset.2D.1002, UID 1002, int4D.2

Variable: size.3D.1003, UID 1003, int4D.2

Variable: test.4D.1004, UID 1004, logical4D.6

Variable: D.1006, UID 1006, int4D.2

Variable: atmp.5D.1007, UID 1007, struct array1_int4, sub-vars: { SFT.70D.1348 SFT.69D.1347 SFT.68D.1346 SFT.67D.1345 SFT.66D.1344 SFT.65D.1343 }

Variable: A.6D.1008, UID 1008, int4D.2[3], is addressable, sub-vars: { SFT.73D.1351 SFT.72D.1350 SFT.71D.1349 }

Variable: S.8D.1010, UID 1010, int4D.2

Variable: D.1011, UID 1011, int4D.2

Variable: D.1014, UID 1014, int4D.2

Variable: D.1015, UID 1015, int4D.2



Pointed-to sets for pointers in moobar

SFT.70D.1348_33
aD.998_4, name memory tag: NMT.82D.1360, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.79D.1357 }
D.1019_9, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 PARM_NOALIAS.79D.1357 NONLOCAL.80D.1358 }
a.0D.999_10, name memory tag: NMT.83D.1361, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 PARM_NOALIAS.79D.1357 NONLOCAL.80D.1358 }
D.1025_37, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1026_38, name memory tag: NMT.84D.1362, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1025_39, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1026_40, name memory tag: NMT.84D.1362, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1025_41, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1026_42, name memory tag: NMT.84D.1362, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1025_49, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1026_50, name memory tag: NMT.84D.1362, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }


Flow-insensitive alias information for moobar

Aliased symbols

SFT.71D.1349, UID 1349, int4D.2, is aliased, is addressable, call clobbered
SFT.72D.1350, UID 1350, int4D.2, is aliased, is addressable, call clobbered
SFT.73D.1351, UID 1351, int4D.2, is aliased, is addressable, call clobbered
PARM_NOALIAS.79D.1357, UID 1357, struct array1_int4, is aliased, is addressable, is global, call clobbered
NONLOCAL.80D.1358, UID 1358, voidD.16, is aliased, is addressable, is global, call clobbered
SMT.81D.1359, UID 1359, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.79D.1357 SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 NONLOCAL.80D.1358 }
NMT.82D.1360, UID 1360, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.79D.1357 }
NMT.83D.1361, UID 1361, int4D.2[0:D.1015], is addressable, is global, call clobbered, may aliases: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 PARM_NOALIAS.79D.1357 NONLOCAL.80D.1358 }
NMT.84D.1362, UID 1362, int4D.2[0:], is addressable, call clobbered, may aliases: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
A.6D.1008, UID 1008, int4D.2[3], is addressable, sub-vars: { SFT.73D.1351 SFT.72D.1350 SFT.71D.1349 }

Dereferenced pointers

D.1026, UID 1026, int4D.2[0:] *, symbol memory tag: SMT.81D.1359
aD.998, UID 998, struct array1_int4 &, symbol memory tag: SMT.81D.1359, default def: aD.998_4
a.0D.999, UID 999, int4D.2[0:D.1015] *, symbol memory tag: SMT.81D.1359

Symbol memory tags

SMT.81D.1359, UID 1359, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.79D.1357 SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 NONLOCAL.80D.1358 }


Flow-sensitive alias information for moobar

SSA_NAME pointers

aD.998_4, name memory tag: NMT.82D.1360, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.79D.1357 }
a.0D.999_10, name memory tag: NMT.83D.1361, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 PARM_NOALIAS.79D.1357 NONLOCAL.80D.1358 }
D.1026_38, name memory tag: NMT.84D.1362, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1026_40, name memory tag: NMT.84D.1362, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1026_42, name memory tag: NMT.84D.1362, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }
D.1026_50, name memory tag: NMT.84D.1362, is dereferenced, points-to vars: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }

Name memory tags

NMT.82D.1360, UID 1360, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.79D.1357 }
NMT.83D.1361, UID 1361, int4D.2[0:D.1015], is addressable, is global, call clobbered, may aliases: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 PARM_NOALIAS.79D.1357 NONLOCAL.80D.1358 }
NMT.84D.1362, UID 1362, int4D.2[0:], is addressable, call clobbered, may aliases: { SFT.71D.1349 SFT.72D.1350 SFT.73D.1351 }



Symbols to be put in SSA form

A.6 SFT.71 SFT.72 SFT.73 PARM_NOALIAS.79 NONLOCAL.80 SMT.81 NMT.82 NMT.83 NMT.84 

Incremental SSA update started at block: 0

Number of blocks in CFG: 13
Number of blocks to update: 12 ( 92%)



moobar (aD.998)
{
  int4D.2 S.8D.1010;
  int4D.2 D.1011;
  logical4D.6 test.4D.1004;
  int4D.2 D.1006;
  struct array1_int4 atmp.5D.1007;
  int4D.2 A.6D.1008[3];
  int4D.2 D.1014;
  <unnamed type> D.1017;
  bit_size_type D.1016;
  int4D.2 D.1015;
  int4D.2[0:D.1015] * a.0D.999;
  int4D.2 size.3D.1003;
  int4D.2 offset.2D.1002;
  int4D.2 stride.1D.1001;
  int4D.2 ubound.0D.1000;
  logical4D.6 D.1034;
  int4D.2 D.1033;
  int4D.2 S.11D.1032;
  int4D.2 D.1031;
  int4D.2 D.1030;
  int4D.2 D.1029;
  int4D.2 D.1028;
  int4D.2[0:] * D.1026;
  voidD.16 * D.1025;
  bit_size_type D.1024;
  <unnamed type> size.10D.1023;
  int4D.2 D.1022;
  int4D.2 D.1021;
  int4D.2 D.1020;
  voidD.16 * D.1019;
  int4D.2 iftmp.9D.1018;

<bb 2>:
  #   VUSE <PARM_NOALIAS.79D.1357_56>;
  D.1014_5 = aD.998_4->dimD.994[0].strideD.990;
  if (D.1014_5 == 0) goto <L0>; else goto <L1>;

<L0>:;
  iftmp.9D.1018_6 = 1;
  goto <bb 5> (<L2>);

<L1>:;
  iftmp.9D.1018_7 = D.1014_5;

  # iftmp.9D.1018_3 = PHI <iftmp.9D.1018_6(3), iftmp.9D.1018_7(4)>;
<L2>:;
  stride.1D.1001_8 = iftmp.9D.1018_3;
  #   VUSE <PARM_NOALIAS.79D.1357_56>;
  D.1019_9 = aD.998_4->dataD.987;
  a.0D.999_10 = (int4D.2[0:D.1015] *) D.1019_9;
  #   VUSE <PARM_NOALIAS.79D.1357_56>;
  D.1020_11 = aD.998_4->dimD.994[0].uboundD.992;
  #   VUSE <PARM_NOALIAS.79D.1357_56>;
  D.1021_12 = aD.998_4->dimD.994[0].lboundD.991;
  D.1022_13 = D.1020_11 - D.1021_12;
  ubound.0D.1000_14 = D.1022_13 + 1;
  size.3D.1003_15 = stride.1D.1001_8 * ubound.0D.1000_14;
  offset.2D.1002_16 = -stride.1D.1001_8;
  D.1015_17 = size.3D.1003_15 + -1;
  size.10D.1023_18 = (<unnamed type>) size.3D.1003_15;
  D.1024_19 = (bit_size_type) size.10D.1023_18;
  D.1016_20 = D.1024_19 * 32;
  size.10D.1023_21 = (<unnamed type>) size.3D.1003_15;
  D.1017_22 = size.10D.1023_21 * 4;
  test.4D.1004_23 = 1;
  D.1006_24 = offset.2D.1002_16;
  #   SFT.68D.1346_26 = V_MUST_DEF <SFT.68D.1346_25>;
  atmp.5D.1007.dtypeD.989 = 265;
  #   SFT.67D.1345_28 = V_MUST_DEF <SFT.67D.1345_27>;
  atmp.5D.1007.dimD.994[0].strideD.990 = 1;
  #   SFT.66D.1344_30 = V_MUST_DEF <SFT.66D.1344_29>;
  atmp.5D.1007.dimD.994[0].lboundD.991 = 0;
  #   SFT.65D.1343_32 = V_MUST_DEF <SFT.65D.1343_31>;
  atmp.5D.1007.dimD.994[0].uboundD.992 = 2;
  #   SFT.70D.1348_34 = V_MUST_DEF <SFT.70D.1348_33>;
  atmp.5D.1007.dataD.987 = &A.6D.1008;
  #   SFT.69D.1347_36 = V_MUST_DEF <SFT.69D.1347_35>;
  atmp.5D.1007.offsetD.988 = 0;
  #   VUSE <SFT.70D.1348_34>;
  D.1025_37 = atmp.5D.1007.dataD.987;
  D.1026_38 = (int4D.2[0:] *) D.1025_37;
  #   SFT.71D.1349_60 = V_MAY_DEF <SFT.71D.1349_57>;
  #   SFT.72D.1350_61 = V_MAY_DEF <SFT.72D.1350_58>;
  #   SFT.73D.1351_62 = V_MAY_DEF <SFT.73D.1351_59>;
  (*D.1026_38)[0] = 1;
  #   VUSE <SFT.70D.1348_34>;
  D.1025_39 = atmp.5D.1007.dataD.987;
  D.1026_40 = (int4D.2[0:] *) D.1025_39;
  #   SFT.71D.1349_63 = V_MAY_DEF <SFT.71D.1349_60>;
  #   SFT.72D.1350_64 = V_MAY_DEF <SFT.72D.1350_61>;
  #   SFT.73D.1351_65 = V_MAY_DEF <SFT.73D.1351_62>;
  (*D.1026_40)[1] = 2;
  #   VUSE <SFT.70D.1348_34>;
  D.1025_41 = atmp.5D.1007.dataD.987;
  D.1026_42 = (int4D.2[0:] *) D.1025_41;
  #   SFT.71D.1349_66 = V_MAY_DEF <SFT.71D.1349_63>;
  #   SFT.72D.1350_67 = V_MAY_DEF <SFT.72D.1350_64>;
  #   SFT.73D.1351_68 = V_MAY_DEF <SFT.73D.1351_65>;
  (*D.1026_42)[2] = 3;
  D.1011_43 = stride.1D.1001_8;
  S.8D.1010_44 = 0;

  # S.8D.1010_2 = PHI <S.8D.1010_44(5), S.8D.1010_55(9)>;
<L3>:;
  if (S.8D.1010_2 > 2) goto L.2L.7; else goto <L4>;

<L4>:;
  D.1028_45 = S.8D.1010_2 + 1;
  D.1029_46 = D.1028_45 * D.1011_43;
  D.1030_47 = D.1029_46 + D.1006_24;
  #   VUSE <SFT.71D.1349_66>;
  #   VUSE <SFT.72D.1350_67>;
  #   VUSE <SFT.73D.1351_68>;
  #   VUSE <PARM_NOALIAS.79D.1357_56>;
  #   VUSE <NONLOCAL.80D.1358_69>;
  D.1031_48 = (*a.0D.999_10)[D.1030_47];
  #   VUSE <SFT.70D.1348_34>;
  D.1025_49 = atmp.5D.1007.dataD.987;
  D.1026_50 = (int4D.2[0:] *) D.1025_49;
  S.11D.1032_51 = S.8D.1010_2;
  #   VUSE <SFT.71D.1349_66>;
  #   VUSE <SFT.72D.1350_67>;
  #   VUSE <SFT.73D.1351_68>;
  D.1033_52 = (*D.1026_50)[S.11D.1032_51];
  D.1034_53 = D.1031_48 == D.1033_52;
  if (D.1034_53 == 0) goto <L5>; else goto <L6>;

<L5>:;
  test.4D.1004_54 = 0;
  goto <bb 10> (L.2);

<L6>:;
  S.8D.1010_55 = S.8D.1010_2 + 1;
  goto <bb 6> (<L3>);

  # test.4D.1004_1 = PHI <test.4D.1004_23(6), test.4D.1004_54(8)>;
L.2L.7:;
  if (test.4D.1004_1 == 0) goto <L9>; else goto <L10>;

<L9>:;
  #   VUSE <SFT.71D.1349_66>;
  #   VUSE <SFT.72D.1350_67>;
  #   VUSE <SFT.73D.1351_68>;
  #   VUSE <PARM_NOALIAS.79D.1357_56>;
  #   VUSE <NONLOCAL.80D.1358_69>;
  _gfortran_abort ();

<L10>:;
  return;

}



;; Function foo1 (foo1.1083)

Points-to analysis

Constraints:

ANYTHING = &ANYTHING
READONLY = &ANYTHING
INTEGER = &ANYTHING
ESCAPED_VARS = *ESCAPED_VARS
PARM_NOALIAS.122 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.122
ESCAPED_VARS = &PARM_NOALIAS.122.ubound
PARM_NOALIAS.122.ubound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.122.lbound
PARM_NOALIAS.122.lbound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.122.stride
PARM_NOALIAS.122.stride = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.122.dtype
PARM_NOALIAS.122.dtype = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.122.offset
PARM_NOALIAS.122.offset = ESCAPED_VARS
__result = &PARM_NOALIAS.122
PARM_NOALIAS.123 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.123
n = &PARM_NOALIAS.123
NONLOCAL.124 = ESCAPED_VARS
ESCAPED_VARS = &NONLOCAL.124
ESCAPED_VARS = &NONLOCAL.124
ESCAPED_VARS = D.1263_5
D.1264_11 = *__result
HEAP.125 = ESCAPED_VARS
ESCAPED_VARS = &HEAP.125
D.1265_12 = &HEAP.125
ESCAPED_VARS = D.1264_11
*__result = D.1265_12
ESCAPED_VARS = D.1265_12
D.1264_15 = *__result
D.1267_16 = D.1264_15
ESCAPED_VARS = i_1

Collapsing static cycles and doing variable substitution:

Solving graph:

Points-to sets

NULL = { }
ANYTHING = { ANYTHING }
READONLY = { ANYTHING }
INTEGER = { ANYTHING }
ESCAPED_VARS = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
__result = { PARM_NOALIAS.122 }
PARM_NOALIAS.122 = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
PARM_NOALIAS.122.ubound = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
PARM_NOALIAS.122.lbound = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
PARM_NOALIAS.122.stride = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
PARM_NOALIAS.122.dtype = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
PARM_NOALIAS.122.offset = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
n = { PARM_NOALIAS.123 }
PARM_NOALIAS.123 = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
NONLOCAL.124 = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
D.1263_5 = { }
D.1264_11 = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
D.1265_12 = { HEAP.125 }
HEAP.125 = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
D.1264_15 = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
D.1267_16 = { PARM_NOALIAS.122 PARM_NOALIAS.122.ubound PARM_NOALIAS.122.lbound PARM_NOALIAS.122.stride PARM_NOALIAS.122.dtype PARM_NOALIAS.122.offset PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 }
i_1 = { }

foo1: Total number of aliased vops: 0

Referenced variables in foo1: 24

Variable: __resultD.1085, UID 1085, struct array1_int4 &, symbol memory tag: SMT.126D.1415, default def: __resultD.1085_3

Variable: nD.1086, UID 1086, int4D.2 &, symbol memory tag: SMT.126D.1415, default def: nD.1086_4

Variable: NMT.129D.1418, UID 1418, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }

Variable: PARM_NOALIAS.122D.1411, UID 1411, struct array1_int4, is aliased, is addressable, is global, call clobbered

Variable: SMT.126D.1415, UID 1415, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }

Variable: PARM_NOALIAS.123D.1412, UID 1412, int4D.2, is aliased, is addressable, is global, call clobbered

Variable: HEAP.125D.1414, UID 1414, voidD.16 *, is aliased, is addressable, is global, call clobbered

Variable: iD.1098, UID 1098, int4D.2

Variable: D.1099, UID 1099, int4D.2

Variable: size.15D.1100, UID 1100, int4D.2

Variable: D.1101, UID 1101, logical4D.6

Variable: D.1102, UID 1102, int4D.2

Variable: NONLOCAL.124D.1413, UID 1413, voidD.16, is aliased, is addressable, is global, call clobbered

Variable: D.1271, UID 1271, int4D.2

Variable: D.1105, UID 1105, logical4D.6

Variable: NMT.127D.1416, UID 1416, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.122D.1411 }

Variable: NMT.128D.1417, UID 1417, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.123D.1412 }

Variable: D.1263, UID 1263, int4D.2

Variable: D.1264, UID 1264, voidD.16 *, symbol memory tag: SMT.126D.1415

Variable: D.1265, UID 1265, voidD.16 *

Variable: D.1267, UID 1267, int4D.2[0:] *, symbol memory tag: SMT.126D.1415

Variable: D.1268, UID 1268, int4D.2

Variable: D.1269, UID 1269, int4D.2

Variable: D.1270, UID 1270, int4D.2



Pointed-to sets for pointers in foo1

__resultD.1085_3, name memory tag: NMT.127D.1416, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.122D.1411 }
nD.1086_4, name memory tag: NMT.128D.1417, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.123D.1412 }
D.1264_11, name memory tag: NMT.129D.1418, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }
D.1265_12, its value escapes, points-to vars: { HEAP.125D.1414 }
D.1264_15, points-to vars: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }
D.1267_16, name memory tag: NMT.129D.1418, is dereferenced, points-to vars: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }


Flow-insensitive alias information for foo1

Aliased symbols

NMT.129D.1418, UID 1418, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }
PARM_NOALIAS.122D.1411, UID 1411, struct array1_int4, is aliased, is addressable, is global, call clobbered
SMT.126D.1415, UID 1415, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }
PARM_NOALIAS.123D.1412, UID 1412, int4D.2, is aliased, is addressable, is global, call clobbered
HEAP.125D.1414, UID 1414, voidD.16 *, is aliased, is addressable, is global, call clobbered
NONLOCAL.124D.1413, UID 1413, voidD.16, is aliased, is addressable, is global, call clobbered
NMT.127D.1416, UID 1416, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.122D.1411 }
NMT.128D.1417, UID 1417, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.123D.1412 }

Dereferenced pointers

__resultD.1085, UID 1085, struct array1_int4 &, symbol memory tag: SMT.126D.1415, default def: __resultD.1085_3
nD.1086, UID 1086, int4D.2 &, symbol memory tag: SMT.126D.1415, default def: nD.1086_4
D.1264, UID 1264, voidD.16 *, symbol memory tag: SMT.126D.1415
D.1267, UID 1267, int4D.2[0:] *, symbol memory tag: SMT.126D.1415

Symbol memory tags

SMT.126D.1415, UID 1415, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }


Flow-sensitive alias information for foo1

SSA_NAME pointers

__resultD.1085_3, name memory tag: NMT.127D.1416, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.122D.1411 }
nD.1086_4, name memory tag: NMT.128D.1417, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.123D.1412 }
D.1264_11, name memory tag: NMT.129D.1418, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }
D.1267_16, name memory tag: NMT.129D.1418, is dereferenced, points-to vars: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }

Name memory tags

NMT.129D.1418, UID 1418, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.122D.1411 PARM_NOALIAS.123D.1412 NONLOCAL.124D.1413 HEAP.125D.1414 }
NMT.127D.1416, UID 1416, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.122D.1411 }
NMT.128D.1417, UID 1417, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.123D.1412 }



Symbols to be put in SSA form

PARM_NOALIAS.122 PARM_NOALIAS.123 NONLOCAL.124 HEAP.125 SMT.126 NMT.127 NMT.128 NMT.129 

Incremental SSA update started at block: 0

Number of blocks in CFG: 8
Number of blocks to update: 7 ( 88%)



foo1 (__resultD.1085, nD.1086)
{
  logical4D.6 D.1105;
  int4D.2 D.1102;
  int4D.2 D.1099;
  int4D.2 size.15D.1100;
  logical4D.6 D.1101;
  int4D.2 iD.1098;
  int4D.2 D.1271;
  int4D.2 D.1270;
  int4D.2 D.1269;
  int4D.2 D.1268;
  int4D.2[0:] * D.1267;
  voidD.16 * D.1265;
  voidD.16 * D.1264;
  int4D.2 D.1263;

<bb 2>:
  #   PARM_NOALIAS.122D.1411_28 = V_MAY_DEF <PARM_NOALIAS.122D.1411_27>;
  __resultD.1085_3->dtypeD.989 = 265;
  #   PARM_NOALIAS.122D.1411_29 = V_MAY_DEF <PARM_NOALIAS.122D.1411_28>;
  __resultD.1085_3->dimD.994[0].lboundD.991 = 1;
  #   VUSE <PARM_NOALIAS.123D.1412_30>;
  D.1263_5 = *nD.1086_4;
  #   PARM_NOALIAS.122D.1411_31 = V_MAY_DEF <PARM_NOALIAS.122D.1411_29>;
  __resultD.1085_3->dimD.994[0].uboundD.992 = D.1263_5;
  #   PARM_NOALIAS.122D.1411_32 = V_MAY_DEF <PARM_NOALIAS.122D.1411_31>;
  __resultD.1085_3->dimD.994[0].strideD.990 = 1;
  #   VUSE <PARM_NOALIAS.123D.1412_30>;
  D.1099_6 = *nD.1086_4;
  #   VUSE <PARM_NOALIAS.123D.1412_30>;
  D.1263_7 = *nD.1086_4;
  D.1101_8 = D.1263_7 <= 0;
  if (D.1101_8) goto <L0>; else goto <L1>;

<L0>:;
  size.15D.1100_9 = 0;
  goto <bb 5> (<L2>);

<L1>:;
  size.15D.1100_10 = D.1099_6 * 4;

  # size.15D.1100_2 = PHI <size.15D.1100_9(3), size.15D.1100_10(4)>;
<L2>:;
  #   VUSE <PARM_NOALIAS.122D.1411_32>;
  D.1264_11 = __resultD.1085_3->dataD.987;
  #   PARM_NOALIAS.122D.1411_35 = V_MAY_DEF <PARM_NOALIAS.122D.1411_32>;
  #   PARM_NOALIAS.123D.1412_36 = V_MAY_DEF <PARM_NOALIAS.123D.1412_30>;
  #   NONLOCAL.124D.1413_37 = V_MAY_DEF <NONLOCAL.124D.1413_33>;
  #   HEAP.125D.1414_38 = V_MAY_DEF <HEAP.125D.1414_34>;
  D.1265_12 = _gfortran_allocate_array (D.1264_11, size.15D.1100_2, 0);
  #   PARM_NOALIAS.122D.1411_39 = V_MAY_DEF <PARM_NOALIAS.122D.1411_35>;
  __resultD.1085_3->dataD.987 = D.1265_12;
  #   PARM_NOALIAS.122D.1411_40 = V_MAY_DEF <PARM_NOALIAS.122D.1411_39>;
  __resultD.1085_3->offsetD.988 = -1;
  #   VUSE <PARM_NOALIAS.123D.1412_36>;
  D.1102_13 = *nD.1086_4;
  iD.1098_14 = 1;
  if (iD.1098_14 <= D.1102_13) goto <L3>; else goto <L7>;

  # HEAP.125D.1414_26 = PHI <HEAP.125D.1414_38(5), HEAP.125D.1414_44(6)>;
  # NONLOCAL.124D.1413_25 = PHI <NONLOCAL.124D.1413_37(5), NONLOCAL.124D.1413_43(6)>;
  # PARM_NOALIAS.123D.1412_24 = PHI <PARM_NOALIAS.123D.1412_36(5), PARM_NOALIAS.123D.1412_42(6)>;
  # PARM_NOALIAS.122D.1411_23 = PHI <PARM_NOALIAS.122D.1411_40(5), PARM_NOALIAS.122D.1411_41(6)>;
  # iD.1098_1 = PHI <iD.1098_14(5), iD.1098_22(6)>;
<L3>:;
  #   VUSE <PARM_NOALIAS.122D.1411_23>;
  D.1264_15 = __resultD.1085_3->dataD.987;
  D.1267_16 = (int4D.2[0:] *) D.1264_15;
  #   VUSE <PARM_NOALIAS.122D.1411_23>;
  D.1268_17 = __resultD.1085_3->dimD.994[0].strideD.990;
  D.1269_18 = D.1268_17 * iD.1098_1;
  #   VUSE <PARM_NOALIAS.122D.1411_23>;
  D.1270_19 = __resultD.1085_3->offsetD.988;
  D.1271_20 = D.1269_18 + D.1270_19;
  #   PARM_NOALIAS.122D.1411_41 = V_MAY_DEF <PARM_NOALIAS.122D.1411_23>;
  #   PARM_NOALIAS.123D.1412_42 = V_MAY_DEF <PARM_NOALIAS.123D.1412_24>;
  #   NONLOCAL.124D.1413_43 = V_MAY_DEF <NONLOCAL.124D.1413_25>;
  #   HEAP.125D.1414_44 = V_MAY_DEF <HEAP.125D.1414_26>;
  (*D.1267_16)[D.1271_20] = iD.1098_1;
  D.1105_21 = iD.1098_1 == D.1102_13;
  iD.1098_22 = iD.1098_1 + 1;
  if (D.1105_21) goto <L7>; else goto <L3>;

<L7>:;
  return;

}



;; Function bar (bar.1079)

Points-to analysis

Constraints:

ANYTHING = &ANYTHING
READONLY = &ANYTHING
INTEGER = &ANYTHING
ESCAPED_VARS = *ESCAPED_VARS
PARM_NOALIAS.165 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.165
ESCAPED_VARS = &PARM_NOALIAS.165.ubound
PARM_NOALIAS.165.ubound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.165.lbound
PARM_NOALIAS.165.lbound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.165.stride
PARM_NOALIAS.165.stride = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.165.dtype
PARM_NOALIAS.165.dtype = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.165.offset
PARM_NOALIAS.165.offset = ESCAPED_VARS
__result = &PARM_NOALIAS.165
PARM_NOALIAS.166 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.166
n = &PARM_NOALIAS.166
NONLOCAL.167 = ESCAPED_VARS
ESCAPED_VARS = &NONLOCAL.167
ESCAPED_VARS = &NONLOCAL.167
ESCAPED_VARS = D.1272_5
D.1273_11 = *__result
HEAP.168 = ESCAPED_VARS
ESCAPED_VARS = &HEAP.168
D.1274_12 = &HEAP.168
ESCAPED_VARS = D.1273_11
*__result = D.1274_12
ESCAPED_VARS = D.1274_12
D.1273_15 = *__result
D.1276_16 = D.1273_15
ESCAPED_VARS = i_1

Collapsing static cycles and doing variable substitution:

Solving graph:

Points-to sets

NULL = { }
ANYTHING = { ANYTHING }
READONLY = { ANYTHING }
INTEGER = { ANYTHING }
ESCAPED_VARS = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
__result = { PARM_NOALIAS.165 }
PARM_NOALIAS.165 = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
PARM_NOALIAS.165.ubound = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
PARM_NOALIAS.165.lbound = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
PARM_NOALIAS.165.stride = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
PARM_NOALIAS.165.dtype = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
PARM_NOALIAS.165.offset = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
n = { PARM_NOALIAS.166 }
PARM_NOALIAS.166 = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
NONLOCAL.167 = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
D.1272_5 = { }
D.1273_11 = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
D.1274_12 = { HEAP.168 }
HEAP.168 = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
D.1273_15 = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
D.1276_16 = { PARM_NOALIAS.165 PARM_NOALIAS.165.ubound PARM_NOALIAS.165.lbound PARM_NOALIAS.165.stride PARM_NOALIAS.165.dtype PARM_NOALIAS.165.offset PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 }
i_1 = { }

bar: Total number of aliased vops: 60

Referenced variables in bar: 24

Variable: D.1097, UID 1097, logical4D.6

Variable: D.1272, UID 1272, int4D.2

Variable: D.1273, UID 1273, voidD.16 *, symbol memory tag: SMT.169D.1471

Variable: D.1274, UID 1274, voidD.16 *

Variable: iD.1090, UID 1090, int4D.2

Variable: D.1091, UID 1091, int4D.2

Variable: size.14D.1092, UID 1092, int4D.2

Variable: D.1093, UID 1093, logical4D.6

Variable: D.1094, UID 1094, int4D.2

Variable: D.1276, UID 1276, int4D.2[0:] *, symbol memory tag: SMT.169D.1471

Variable: PARM_NOALIAS.166D.1468, UID 1468, int4D.2, is aliased, is addressable, is global, call clobbered

Variable: D.1277, UID 1277, int4D.2

Variable: D.1278, UID 1278, int4D.2

Variable: D.1280, UID 1280, int4D.2

Variable: PARM_NOALIAS.165D.1467, UID 1467, struct array1_int4, is aliased, is addressable, is global, call clobbered

Variable: D.1279, UID 1279, int4D.2

Variable: NMT.172D.1474, UID 1474, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }

Variable: SMT.169D.1471, UID 1471, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }

Variable: NONLOCAL.167D.1469, UID 1469, voidD.16, is aliased, is addressable, is global, call clobbered

Variable: HEAP.168D.1470, UID 1470, voidD.16 *, is aliased, is addressable, is global, call clobbered

Variable: NMT.171D.1473, UID 1473, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.166D.1468 }

Variable: __resultD.1081, UID 1081, struct array1_int4 &, symbol memory tag: SMT.169D.1471, default def: __resultD.1081_3

Variable: nD.1082, UID 1082, int4D.2 &, symbol memory tag: SMT.169D.1471, default def: nD.1082_4

Variable: NMT.170D.1472, UID 1472, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.165D.1467 }



Pointed-to sets for pointers in bar

__resultD.1081_3, name memory tag: NMT.170D.1472, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.165D.1467 }
nD.1082_4, name memory tag: NMT.171D.1473, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.166D.1468 }
D.1273_11, name memory tag: NMT.172D.1474, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }
D.1274_12, its value escapes, points-to vars: { HEAP.168D.1470 }
D.1273_15, points-to vars: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }
D.1276_16, name memory tag: NMT.172D.1474, is dereferenced, points-to vars: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }


Flow-insensitive alias information for bar

Aliased symbols

PARM_NOALIAS.166D.1468, UID 1468, int4D.2, is aliased, is addressable, is global, call clobbered
PARM_NOALIAS.165D.1467, UID 1467, struct array1_int4, is aliased, is addressable, is global, call clobbered
NMT.172D.1474, UID 1474, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }
SMT.169D.1471, UID 1471, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }
NONLOCAL.167D.1469, UID 1469, voidD.16, is aliased, is addressable, is global, call clobbered
HEAP.168D.1470, UID 1470, voidD.16 *, is aliased, is addressable, is global, call clobbered
NMT.171D.1473, UID 1473, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.166D.1468 }
NMT.170D.1472, UID 1472, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.165D.1467 }

Dereferenced pointers

D.1273, UID 1273, voidD.16 *, symbol memory tag: SMT.169D.1471
D.1276, UID 1276, int4D.2[0:] *, symbol memory tag: SMT.169D.1471
__resultD.1081, UID 1081, struct array1_int4 &, symbol memory tag: SMT.169D.1471, default def: __resultD.1081_3
nD.1082, UID 1082, int4D.2 &, symbol memory tag: SMT.169D.1471, default def: nD.1082_4

Symbol memory tags

SMT.169D.1471, UID 1471, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }


Flow-sensitive alias information for bar

SSA_NAME pointers

__resultD.1081_3, name memory tag: NMT.170D.1472, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.165D.1467 }
nD.1082_4, name memory tag: NMT.171D.1473, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.166D.1468 }
D.1273_11, name memory tag: NMT.172D.1474, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }
D.1276_16, name memory tag: NMT.172D.1474, is dereferenced, points-to vars: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }

Name memory tags

NMT.172D.1474, UID 1474, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.165D.1467 PARM_NOALIAS.166D.1468 NONLOCAL.167D.1469 HEAP.168D.1470 }
NMT.171D.1473, UID 1473, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.166D.1468 }
NMT.170D.1472, UID 1472, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.165D.1467 }



Symbols to be put in SSA form

PARM_NOALIAS.165 PARM_NOALIAS.166 NONLOCAL.167 HEAP.168 SMT.169 NMT.170 NMT.171 NMT.172 

Incremental SSA update started at block: 0

Number of blocks in CFG: 8
Number of blocks to update: 7 ( 88%)



bar (__resultD.1081, nD.1082)
{
  logical4D.6 D.1097;
  int4D.2 D.1094;
  int4D.2 D.1091;
  int4D.2 size.14D.1092;
  logical4D.6 D.1093;
  int4D.2 iD.1090;
  int4D.2 D.1280;
  int4D.2 D.1279;
  int4D.2 D.1278;
  int4D.2 D.1277;
  int4D.2[0:] * D.1276;
  voidD.16 * D.1274;
  voidD.16 * D.1273;
  int4D.2 D.1272;

<bb 2>:
  #   PARM_NOALIAS.165D.1467_28 = V_MAY_DEF <PARM_NOALIAS.165D.1467_27>;
  __resultD.1081_3->dtypeD.989 = 265;
  #   PARM_NOALIAS.165D.1467_29 = V_MAY_DEF <PARM_NOALIAS.165D.1467_28>;
  __resultD.1081_3->dimD.994[0].lboundD.991 = 1;
  #   VUSE <PARM_NOALIAS.166D.1468_30>;
  D.1272_5 = *nD.1082_4;
  #   PARM_NOALIAS.165D.1467_31 = V_MAY_DEF <PARM_NOALIAS.165D.1467_29>;
  __resultD.1081_3->dimD.994[0].uboundD.992 = D.1272_5;
  #   PARM_NOALIAS.165D.1467_32 = V_MAY_DEF <PARM_NOALIAS.165D.1467_31>;
  __resultD.1081_3->dimD.994[0].strideD.990 = 1;
  #   VUSE <PARM_NOALIAS.166D.1468_30>;
  D.1091_6 = *nD.1082_4;
  #   VUSE <PARM_NOALIAS.166D.1468_30>;
  D.1272_7 = *nD.1082_4;
  D.1093_8 = D.1272_7 <= 0;
  if (D.1093_8) goto <L0>; else goto <L1>;

<L0>:;
  size.14D.1092_9 = 0;
  goto <bb 5> (<L2>);

<L1>:;
  size.14D.1092_10 = D.1091_6 * 4;

  # size.14D.1092_2 = PHI <size.14D.1092_9(3), size.14D.1092_10(4)>;
<L2>:;
  #   VUSE <PARM_NOALIAS.165D.1467_32>;
  D.1273_11 = __resultD.1081_3->dataD.987;
  #   PARM_NOALIAS.165D.1467_35 = V_MAY_DEF <PARM_NOALIAS.165D.1467_32>;
  #   PARM_NOALIAS.166D.1468_36 = V_MAY_DEF <PARM_NOALIAS.166D.1468_30>;
  #   NONLOCAL.167D.1469_37 = V_MAY_DEF <NONLOCAL.167D.1469_33>;
  #   HEAP.168D.1470_38 = V_MAY_DEF <HEAP.168D.1470_34>;
  D.1274_12 = _gfortran_allocate_array (D.1273_11, size.14D.1092_2, 0);
  #   PARM_NOALIAS.165D.1467_39 = V_MAY_DEF <PARM_NOALIAS.165D.1467_35>;
  __resultD.1081_3->dataD.987 = D.1274_12;
  #   PARM_NOALIAS.165D.1467_40 = V_MAY_DEF <PARM_NOALIAS.165D.1467_39>;
  __resultD.1081_3->offsetD.988 = -1;
  #   VUSE <PARM_NOALIAS.166D.1468_36>;
  D.1094_13 = *nD.1082_4;
  iD.1090_14 = 1;
  if (iD.1090_14 <= D.1094_13) goto <L3>; else goto <L7>;

  # HEAP.168D.1470_26 = PHI <HEAP.168D.1470_38(5), HEAP.168D.1470_44(6)>;
  # NONLOCAL.167D.1469_25 = PHI <NONLOCAL.167D.1469_37(5), NONLOCAL.167D.1469_43(6)>;
  # PARM_NOALIAS.166D.1468_24 = PHI <PARM_NOALIAS.166D.1468_36(5), PARM_NOALIAS.166D.1468_42(6)>;
  # PARM_NOALIAS.165D.1467_23 = PHI <PARM_NOALIAS.165D.1467_40(5), PARM_NOALIAS.165D.1467_41(6)>;
  # iD.1090_1 = PHI <iD.1090_14(5), iD.1090_22(6)>;
<L3>:;
  #   VUSE <PARM_NOALIAS.165D.1467_23>;
  D.1273_15 = __resultD.1081_3->dataD.987;
  D.1276_16 = (int4D.2[0:] *) D.1273_15;
  #   VUSE <PARM_NOALIAS.165D.1467_23>;
  D.1277_17 = __resultD.1081_3->dimD.994[0].strideD.990;
  D.1278_18 = D.1277_17 * iD.1090_1;
  #   VUSE <PARM_NOALIAS.165D.1467_23>;
  D.1279_19 = __resultD.1081_3->offsetD.988;
  D.1280_20 = D.1278_18 + D.1279_19;
  #   PARM_NOALIAS.165D.1467_41 = V_MAY_DEF <PARM_NOALIAS.165D.1467_23>;
  #   PARM_NOALIAS.166D.1468_42 = V_MAY_DEF <PARM_NOALIAS.166D.1468_24>;
  #   NONLOCAL.167D.1469_43 = V_MAY_DEF <NONLOCAL.167D.1469_25>;
  #   HEAP.168D.1470_44 = V_MAY_DEF <HEAP.168D.1470_26>;
  (*D.1276_16)[D.1280_20] = iD.1090_1;
  D.1097_21 = iD.1090_1 == D.1094_13;
  iD.1090_22 = iD.1090_1 + 1;
  if (D.1097_21) goto <L7>; else goto <L3>;

<L7>:;
  return;

}



;; Function MAIN__ (MAIN__)

Points-to analysis

Constraints:

ANYTHING = &ANYTHING
READONLY = &ANYTHING
INTEGER = &ANYTHING
ESCAPED_VARS = *ESCAPED_VARS
NONLOCAL.294 = ESCAPED_VARS
ESCAPED_VARS = &NONLOCAL.294
ESCAPED_VARS = &NONLOCAL.294
D.1127 = ESCAPED_VARS
ESCAPED_VARS = &D.1127
D.1128_17 = &D.1127
atmp.26 = &NULL
ESCAPED_VARS = &atmp.26
ESCAPED_VARS = &atmp.26.offset
ESCAPED_VARS = &atmp.26.dtype
ESCAPED_VARS = &atmp.26.stride
ESCAPED_VARS = &atmp.26.lbound
ESCAPED_VARS = &atmp.26.ubound
ESCAPED_VARS = D.1128_17
atmp.27 = &A.28
atmp.27 = &A.28.32
atmp.27 = &A.28.64
ESCAPED_VARS = &A.28
ESCAPED_VARS = &A.28.32
ESCAPED_VARS = &A.28.64
D.1189_42 = atmp.27
D.1190_43 = D.1189_42
D.1189_44 = atmp.27
D.1190_45 = D.1189_44
D.1189_46 = atmp.27
D.1190_47 = D.1189_46
D.1192_49 = atmp.26
D.1193_50 = D.1192_49
D.1189_53 = atmp.27
D.1190_54 = D.1189_53
D.1192_60 = atmp.26
ESCAPED_VARS = D.1192_60
D.1135 = ESCAPED_VARS
ESCAPED_VARS = &D.1135
D.1136_61 = &D.1135
atmp.31 = &NULL
ESCAPED_VARS = &atmp.31
ESCAPED_VARS = &atmp.31.offset
ESCAPED_VARS = &atmp.31.dtype
ESCAPED_VARS = &atmp.31.stride
ESCAPED_VARS = &atmp.31.lbound
ESCAPED_VARS = &atmp.31.ubound
ESCAPED_VARS = D.1136_61
D.1200_77 = atmp.31
D.1201_78 = D.1200_77
ESCAPED_VARS = D.1202_80
D.1200_83 = atmp.31
ESCAPED_VARS = D.1200_83
atmp.34 = &A.35
atmp.34 = &A.35.32
atmp.34 = &A.35.64
ESCAPED_VARS = &A.35
ESCAPED_VARS = &A.35.32
ESCAPED_VARS = &A.35.64
D.1203_97 = atmp.34
D.1204_98 = D.1203_97
D.1203_99 = atmp.34
D.1204_100 = D.1203_99
D.1203_101 = atmp.34
D.1204_102 = D.1203_101
D.1203_106 = atmp.34
D.1204_107 = D.1203_106
D.1147 = ESCAPED_VARS
ESCAPED_VARS = &D.1147
D.1148_113 = &D.1147
atmp.38 = &NULL
ESCAPED_VARS = &atmp.38
ESCAPED_VARS = &atmp.38.offset
ESCAPED_VARS = &atmp.38.dtype
ESCAPED_VARS = &atmp.38.stride
ESCAPED_VARS = &atmp.38.lbound
ESCAPED_VARS = &atmp.38.ubound
ESCAPED_VARS = D.1148_113
a_120 = &atmp.38
a_120 = &atmp.38.offset
a_120 = &atmp.38.dtype
a_120 = &atmp.38.stride
a_120 = &atmp.38.lbound
a_120 = &atmp.38.ubound
D.1537_125 = *a_120
a.0_126 = D.1537_125
atmp.21 = &A.22
atmp.21 = &A.22.32
atmp.21 = &A.22.64
ESCAPED_VARS = &A.22
ESCAPED_VARS = &A.22.32
ESCAPED_VARS = &A.22.64
D.1543_153 = atmp.21
D.1544_154 = D.1543_153
D.1543_155 = atmp.21
D.1544_156 = D.1543_155
D.1543_157 = atmp.21
D.1544_158 = D.1543_157
D.1543_165 = atmp.21
D.1544_166 = D.1543_165
D.1210_172 = atmp.38
ESCAPED_VARS = D.1210_172
D.1152 = ESCAPED_VARS
ESCAPED_VARS = &D.1152
D.1153_174 = &D.1152
atmp.40 = &NULL
ESCAPED_VARS = &atmp.40
ESCAPED_VARS = &atmp.40.offset
ESCAPED_VARS = &atmp.40.dtype
ESCAPED_VARS = &atmp.40.stride
ESCAPED_VARS = &atmp.40.lbound
ESCAPED_VARS = &atmp.40.ubound
ESCAPED_VARS = D.1153_174
atmp.41 = &A.42
atmp.41 = &A.42.32
atmp.41 = &A.42.64
ESCAPED_VARS = &A.42
ESCAPED_VARS = &A.42.32
ESCAPED_VARS = &A.42.64
D.1211_199 = atmp.41
D.1212_200 = D.1211_199
D.1211_201 = atmp.41
D.1212_202 = D.1211_201
D.1211_203 = atmp.41
D.1212_204 = D.1211_203
D.1214_206 = atmp.40
D.1215_207 = D.1214_206
D.1211_212 = atmp.41
D.1212_213 = D.1211_212
D.1214_219 = atmp.40
ESCAPED_VARS = D.1214_219
D.1160 = ESCAPED_VARS
ESCAPED_VARS = &D.1160
D.1161_220 = &D.1160
atmp.45 = &NULL
ESCAPED_VARS = &atmp.45
ESCAPED_VARS = &atmp.45.offset
ESCAPED_VARS = &atmp.45.dtype
ESCAPED_VARS = &atmp.45.stride
ESCAPED_VARS = &atmp.45.lbound
ESCAPED_VARS = &atmp.45.ubound
ESCAPED_VARS = D.1161_220
D.1163 = ESCAPED_VARS
ESCAPED_VARS = &D.1163
D.1164_227 = &D.1163
atmp.46 = &NULL
ESCAPED_VARS = &atmp.46
ESCAPED_VARS = &atmp.46.offset
ESCAPED_VARS = &atmp.46.dtype
ESCAPED_VARS = &atmp.46.stride
ESCAPED_VARS = &atmp.46.lbound
ESCAPED_VARS = &atmp.46.ubound
ESCAPED_VARS = D.1164_227
D.1222_234 = ESCAPED_VARS
ESCAPED_VARS = &atmp.46
ESCAPED_VARS = &atmp.46.offset
ESCAPED_VARS = &atmp.46.dtype
ESCAPED_VARS = &atmp.46.stride
ESCAPED_VARS = &atmp.46.lbound
ESCAPED_VARS = &atmp.46.ubound
D.1223_236 = atmp.46
ESCAPED_VARS = D.1223_236
D.1230_246 = atmp.45
D.1231_247 = D.1230_246
ESCAPED_VARS = D.1235_252
D.1230_255 = atmp.45
ESCAPED_VARS = D.1230_255
atmp.49 = &A.50
atmp.49 = &A.50.32
atmp.49 = &A.50.64
ESCAPED_VARS = &A.50
ESCAPED_VARS = &A.50.32
ESCAPED_VARS = &A.50.64
D.1236_269 = atmp.49
D.1237_270 = D.1236_269
D.1236_271 = atmp.49
D.1237_272 = D.1236_271
D.1236_273 = atmp.49
D.1237_274 = D.1236_273
D.1236_278 = atmp.49
D.1237_279 = D.1236_278
D.1177 = ESCAPED_VARS
ESCAPED_VARS = &D.1177
D.1178_285 = &D.1177
atmp.53 = &NULL
ESCAPED_VARS = &atmp.53
ESCAPED_VARS = &atmp.53.offset
ESCAPED_VARS = &atmp.53.dtype
ESCAPED_VARS = &atmp.53.stride
ESCAPED_VARS = &atmp.53.lbound
ESCAPED_VARS = &atmp.53.ubound
ESCAPED_VARS = D.1178_285
ESCAPED_VARS = &atmp.53
ESCAPED_VARS = &atmp.53.offset
ESCAPED_VARS = &atmp.53.dtype
ESCAPED_VARS = &atmp.53.stride
ESCAPED_VARS = &atmp.53.lbound
ESCAPED_VARS = &atmp.53.ubound
D.1243_292 = atmp.53
ESCAPED_VARS = D.1243_292
D.1181 = ESCAPED_VARS
ESCAPED_VARS = &D.1181
D.1182_293 = &D.1181
atmp.54 = &NULL
ESCAPED_VARS = &atmp.54
ESCAPED_VARS = &atmp.54.offset
ESCAPED_VARS = &atmp.54.dtype
ESCAPED_VARS = &atmp.54.stride
ESCAPED_VARS = &atmp.54.lbound
ESCAPED_VARS = &atmp.54.ubound
ESCAPED_VARS = D.1182_293
ESCAPED_VARS = &atmp.54
ESCAPED_VARS = &atmp.54.offset
ESCAPED_VARS = &atmp.54.dtype
ESCAPED_VARS = &atmp.54.stride
ESCAPED_VARS = &atmp.54.lbound
ESCAPED_VARS = &atmp.54.ubound
D.1244_300 = atmp.54
ESCAPED_VARS = D.1244_300
D.1185 = ESCAPED_VARS
ESCAPED_VARS = &D.1185
D.1186_301 = &D.1185
atmp.55 = &NULL
ESCAPED_VARS = &atmp.55
ESCAPED_VARS = &atmp.55.offset
ESCAPED_VARS = &atmp.55.dtype
ESCAPED_VARS = &atmp.55.stride
ESCAPED_VARS = &atmp.55.lbound
ESCAPED_VARS = &atmp.55.ubound
ESCAPED_VARS = D.1186_301
ESCAPED_VARS = &atmp.55
ESCAPED_VARS = &atmp.55.offset
ESCAPED_VARS = &atmp.55.dtype
ESCAPED_VARS = &atmp.55.stride
ESCAPED_VARS = &atmp.55.lbound
ESCAPED_VARS = &atmp.55.ubound
D.1245_308 = atmp.55
ESCAPED_VARS = D.1245_308

Collapsing static cycles and doing variable substitution:

Solving graph:

Points-to sets

NULL = { }
ANYTHING = { ANYTHING }
READONLY = { ANYTHING }
INTEGER = { ANYTHING }
ESCAPED_VARS = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
NONLOCAL.294 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
D.1128_17 = { D.1127 }
D.1127 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
atmp.26 = { NULL }
atmp.26.ubound = { }
atmp.26.lbound = { }
atmp.26.stride = { }
atmp.26.dtype = { }
atmp.26.offset = { }
atmp.27 = { A.28 A.28.64 A.28.32 }
atmp.27.ubound = { }
atmp.27.lbound = { }
atmp.27.stride = { }
atmp.27.dtype = { }
atmp.27.offset = { }
A.28 = { }
A.28.64 = { }
A.28.32 = { }
D.1189_42 = { A.28 A.28.64 A.28.32 }
D.1190_43 = { A.28 A.28.64 A.28.32 }
D.1189_44 = { A.28 A.28.64 A.28.32 }
D.1190_45 = { A.28 A.28.64 A.28.32 }
D.1189_46 = { A.28 A.28.64 A.28.32 }
D.1190_47 = { A.28 A.28.64 A.28.32 }
D.1192_49 = { NULL }
D.1193_50 = { NULL }
D.1189_53 = { A.28 A.28.64 A.28.32 }
D.1190_54 = { A.28 A.28.64 A.28.32 }
D.1192_60 = { NULL }
D.1136_61 = { D.1135 }
D.1135 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
atmp.31 = { NULL }
atmp.31.ubound = { }
atmp.31.lbound = { }
atmp.31.stride = { }
atmp.31.dtype = { }
atmp.31.offset = { }
D.1200_77 = { NULL }
D.1201_78 = { NULL }
D.1202_80 = { }
D.1200_83 = { NULL }
atmp.34 = { A.35 A.35.64 A.35.32 }
atmp.34.ubound = { }
atmp.34.lbound = { }
atmp.34.stride = { }
atmp.34.dtype = { }
atmp.34.offset = { }
A.35 = { }
A.35.64 = { }
A.35.32 = { }
D.1203_97 = { A.35 A.35.64 A.35.32 }
D.1204_98 = { A.35 A.35.64 A.35.32 }
D.1203_99 = { A.35 A.35.64 A.35.32 }
D.1204_100 = { A.35 A.35.64 A.35.32 }
D.1203_101 = { A.35 A.35.64 A.35.32 }
D.1204_102 = { A.35 A.35.64 A.35.32 }
D.1203_106 = { A.35 A.35.64 A.35.32 }
D.1204_107 = { A.35 A.35.64 A.35.32 }
D.1148_113 = { D.1147 }
D.1147 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
atmp.38 = { NULL }
atmp.38.ubound = { }
atmp.38.lbound = { }
atmp.38.stride = { }
atmp.38.dtype = { }
atmp.38.offset = { }
a_120 = { atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset }
D.1537_125 = { NULL }
a.0_126 = { NULL }
atmp.21 = { A.22 A.22.64 A.22.32 }
atmp.21.ubound = { }
atmp.21.lbound = { }
atmp.21.stride = { }
atmp.21.dtype = { }
atmp.21.offset = { }
A.22 = { }
A.22.64 = { }
A.22.32 = { }
D.1543_153 = { A.22 A.22.64 A.22.32 }
D.1544_154 = { A.22 A.22.64 A.22.32 }
D.1543_155 = { A.22 A.22.64 A.22.32 }
D.1544_156 = { A.22 A.22.64 A.22.32 }
D.1543_157 = { A.22 A.22.64 A.22.32 }
D.1544_158 = { A.22 A.22.64 A.22.32 }
D.1543_165 = { A.22 A.22.64 A.22.32 }
D.1544_166 = { A.22 A.22.64 A.22.32 }
D.1210_172 = { NULL }
D.1153_174 = { D.1152 }
D.1152 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
atmp.40 = { NULL }
atmp.40.ubound = { }
atmp.40.lbound = { }
atmp.40.stride = { }
atmp.40.dtype = { }
atmp.40.offset = { }
atmp.41 = { A.42 A.42.64 A.42.32 }
atmp.41.ubound = { }
atmp.41.lbound = { }
atmp.41.stride = { }
atmp.41.dtype = { }
atmp.41.offset = { }
A.42 = { }
A.42.64 = { }
A.42.32 = { }
D.1211_199 = { A.42 A.42.64 A.42.32 }
D.1212_200 = { A.42 A.42.64 A.42.32 }
D.1211_201 = { A.42 A.42.64 A.42.32 }
D.1212_202 = { A.42 A.42.64 A.42.32 }
D.1211_203 = { A.42 A.42.64 A.42.32 }
D.1212_204 = { A.42 A.42.64 A.42.32 }
D.1214_206 = { NULL }
D.1215_207 = { NULL }
D.1211_212 = { A.42 A.42.64 A.42.32 }
D.1212_213 = { A.42 A.42.64 A.42.32 }
D.1214_219 = { NULL }
D.1161_220 = { D.1160 }
D.1160 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
atmp.45 = { NULL }
atmp.45.ubound = { }
atmp.45.lbound = { }
atmp.45.stride = { }
atmp.45.dtype = { }
atmp.45.offset = { }
D.1164_227 = { D.1163 }
D.1163 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
atmp.46 = { NULL }
atmp.46.ubound = { }
atmp.46.lbound = { }
atmp.46.stride = { }
atmp.46.dtype = { }
atmp.46.offset = { }
D.1222_234 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
D.1223_236 = { NULL }
D.1230_246 = { NULL }
D.1231_247 = { NULL }
D.1235_252 = { }
D.1230_255 = { NULL }
atmp.49 = { A.50 A.50.64 A.50.32 }
atmp.49.ubound = { }
atmp.49.lbound = { }
atmp.49.stride = { }
atmp.49.dtype = { }
atmp.49.offset = { }
A.50 = { }
A.50.64 = { }
A.50.32 = { }
D.1236_269 = { A.50 A.50.64 A.50.32 }
D.1237_270 = { A.50 A.50.64 A.50.32 }
D.1236_271 = { A.50 A.50.64 A.50.32 }
D.1237_272 = { A.50 A.50.64 A.50.32 }
D.1236_273 = { A.50 A.50.64 A.50.32 }
D.1237_274 = { A.50 A.50.64 A.50.32 }
D.1236_278 = { A.50 A.50.64 A.50.32 }
D.1237_279 = { A.50 A.50.64 A.50.32 }
D.1178_285 = { D.1177 }
D.1177 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
atmp.53 = { NULL }
atmp.53.ubound = { }
atmp.53.lbound = { }
atmp.53.stride = { }
atmp.53.dtype = { }
atmp.53.offset = { }
D.1243_292 = { NULL }
D.1182_293 = { D.1181 }
D.1181 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
atmp.54 = { NULL }
atmp.54.ubound = { }
atmp.54.lbound = { }
atmp.54.stride = { }
atmp.54.dtype = { }
atmp.54.offset = { }
D.1244_300 = { NULL }
D.1186_301 = { D.1185 }
D.1185 = { NULL NONLOCAL.294 D.1127 atmp.26 atmp.26.ubound atmp.26.lbound atmp.26.stride atmp.26.dtype atmp.26.offset A.28 A.28.64 A.28.32 D.1135 atmp.31 atmp.31.ubound atmp.31.lbound atmp.31.stride atmp.31.dtype atmp.31.offset A.35 A.35.64 A.35.32 D.1147 atmp.38 atmp.38.ubound atmp.38.lbound atmp.38.stride atmp.38.dtype atmp.38.offset A.22 A.22.64 A.22.32 D.1152 atmp.40 atmp.40.ubound atmp.40.lbound atmp.40.stride atmp.40.dtype atmp.40.offset A.42 A.42.64 A.42.32 D.1160 atmp.45 atmp.45.ubound atmp.45.lbound atmp.45.stride atmp.45.dtype atmp.45.offset D.1163 atmp.46 atmp.46.ubound atmp.46.lbound atmp.46.stride atmp.46.dtype atmp.46.offset A.50 A.50.64 A.50.32 D.1177 atmp.53 atmp.53.ubound atmp.53.lbound atmp.53.stride atmp.53.dtype atmp.53.offset D.1181 atmp.54 atmp.54.ubound atmp.54.lbound atmp.54.stride atmp.54.dtype atmp.54.offset D.1185 atmp.55 atmp.55.ubound atmp.55.lbound atmp.55.stride atmp.55.dtype atmp.55.offset }
atmp.55 = { NULL }
atmp.55.ubound = { }
atmp.55.lbound = { }
atmp.55.stride = { }
atmp.55.dtype = { }
atmp.55.offset = { }
D.1245_308 = { NULL }

MAIN__: Total number of aliased vops: 1682
MAIN__: Total number of aliased vops after grouping: 29

Referenced variables in MAIN__: 217

Variable: A.22D.1527, UID 1527, int4D.2[3], is addressable, sub-vars: { SFT.204D.1562 SFT.203D.1561 SFT.202D.1560 }

Variable: atmp.21D.1528, UID 1528, struct array1_int4, sub-vars: { SFT.210D.1568 SFT.209D.1567 SFT.208D.1566 SFT.207D.1565 SFT.206D.1564 SFT.205D.1563 }

Variable: D.1529, UID 1529, int4D.2

Variable: test.20D.1530, UID 1530, logical4D.6

Variable: D.1531, UID 1531, int4D.2

Variable: S.24D.1532, UID 1532, int4D.2

Variable: iftmp.62D.1535, UID 1535, int4D.2

Variable: D.1537, UID 1537, voidD.16 *

Variable: D.1538, UID 1538, int4D.2

Variable: D.1539, UID 1539, int4D.2

Variable: D.1540, UID 1540, int4D.2

Variable: size.63D.1541, UID 1541, <unnamed type>

Variable: D.1542, UID 1542, bit_size_type

Variable: D.1543, UID 1543, voidD.16 *

Variable: D.1544, UID 1544, int4D.2[0:] *, symbol memory tag: SMT.295D.1653

Variable: D.1548, UID 1548, int4D.2

Variable: D.1549, UID 1549, int4D.2

Variable: D.1550, UID 1550, int4D.2

Variable: D.1551, UID 1551, int4D.2

Variable: S.64D.1552, UID 1552, int4D.2

Variable: D.1553, UID 1553, int4D.2

Variable: D.1554, UID 1554, logical4D.6

Variable: SFT.202D.1560, UID 1560, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.203D.1561, UID 1561, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.204D.1562, UID 1562, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.205D.1563, UID 1563, int4D.2, default def: SFT.205D.1563_147

Variable: SFT.206D.1564, UID 1564, int4D.2, default def: SFT.206D.1564_145

Variable: SFT.207D.1565, UID 1565, int4D.2, default def: SFT.207D.1565_143

Variable: SFT.208D.1566, UID 1566, int4D.2, default def: SFT.208D.1566_141

Variable: SFT.209D.1567, UID 1567, int4D.2, default def: SFT.209D.1567_151

Variable: SFT.210D.1568, UID 1568, voidD.16 *, default def: SFT.210D.1568_149

Variable: SFT.211D.1569, UID 1569, int4D.2, is addressable, call clobbered, default def: SFT.211D.1569_24, may aliases: { SMT.295D.1653 }

Variable: SFT.212D.1570, UID 1570, int4D.2, is addressable, call clobbered, default def: SFT.212D.1570_22, may aliases: { SMT.295D.1653 }

Variable: SFT.213D.1571, UID 1571, int4D.2, is addressable, call clobbered, default def: SFT.213D.1571_20, may aliases: { SMT.295D.1653 }

Variable: SFT.214D.1572, UID 1572, int4D.2, is addressable, call clobbered, default def: SFT.214D.1572_18, may aliases: { SMT.295D.1653 }

Variable: SFT.215D.1573, UID 1573, int4D.2, is addressable, call clobbered, default def: SFT.215D.1573_28, may aliases: { SMT.295D.1653 }

Variable: SFT.216D.1574, UID 1574, voidD.16 *, is addressable, call clobbered, default def: SFT.216D.1574_26, may aliases: { SMT.295D.1653 }

Variable: SFT.217D.1575, UID 1575, int4D.2, default def: SFT.217D.1575_36

Variable: SFT.218D.1576, UID 1576, int4D.2, default def: SFT.218D.1576_34

Variable: SFT.219D.1577, UID 1577, int4D.2, default def: SFT.219D.1577_32

Variable: SFT.220D.1578, UID 1578, int4D.2, default def: SFT.220D.1578_30

Variable: SFT.221D.1579, UID 1579, int4D.2, default def: SFT.221D.1579_40

Variable: SFT.222D.1580, UID 1580, voidD.16 *, default def: SFT.222D.1580_38

Variable: SFT.223D.1581, UID 1581, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.224D.1582, UID 1582, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.225D.1583, UID 1583, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.226D.1584, UID 1584, int4D.2, is addressable, call clobbered, default def: SFT.226D.1584_68, may aliases: { SMT.295D.1653 }

Variable: SFT.227D.1585, UID 1585, int4D.2, is addressable, call clobbered, default def: SFT.227D.1585_66, may aliases: { SMT.295D.1653 }

Variable: SFT.228D.1586, UID 1586, int4D.2, is addressable, call clobbered, default def: SFT.228D.1586_64, may aliases: { SMT.295D.1653 }

Variable: SFT.229D.1587, UID 1587, int4D.2, is addressable, call clobbered, default def: SFT.229D.1587_62, may aliases: { SMT.295D.1653 }

Variable: SFT.230D.1588, UID 1588, int4D.2, is addressable, call clobbered, default def: SFT.230D.1588_72, may aliases: { SMT.295D.1653 }

Variable: SFT.231D.1589, UID 1589, voidD.16 *, is addressable, call clobbered, default def: SFT.231D.1589_70, may aliases: { SMT.295D.1653 }

Variable: SFT.232D.1590, UID 1590, int4D.2, default def: SFT.232D.1590_91

Variable: SFT.233D.1591, UID 1591, int4D.2, default def: SFT.233D.1591_89

Variable: SFT.234D.1592, UID 1592, int4D.2, default def: SFT.234D.1592_87

Variable: SFT.235D.1593, UID 1593, int4D.2, default def: SFT.235D.1593_85

Variable: SFT.236D.1594, UID 1594, int4D.2, default def: SFT.236D.1594_95

Variable: SFT.237D.1595, UID 1595, voidD.16 *, default def: SFT.237D.1595_93

Variable: SFT.238D.1596, UID 1596, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.239D.1597, UID 1597, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.240D.1598, UID 1598, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.241D.1599, UID 1599, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.242D.1600, UID 1600, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.243D.1601, UID 1601, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.244D.1602, UID 1602, int4D.2, is addressable, call clobbered, default def: SFT.244D.1602_114, may aliases: { SMT.295D.1653 }

Variable: SFT.245D.1603, UID 1603, int4D.2, is addressable, call clobbered, default def: SFT.245D.1603_118, may aliases: { SMT.295D.1653 }

Variable: SFT.246D.1604, UID 1604, voidD.16 *, is addressable, call clobbered, default def: SFT.246D.1604_116, may aliases: { SMT.295D.1653 }

Variable: SFT.247D.1605, UID 1605, int4D.2, is addressable, call clobbered, default def: SFT.247D.1605_181, may aliases: { SMT.295D.1653 }

Variable: SFT.248D.1606, UID 1606, int4D.2, is addressable, call clobbered, default def: SFT.248D.1606_179, may aliases: { SMT.295D.1653 }

Variable: SFT.249D.1607, UID 1607, int4D.2, is addressable, call clobbered, default def: SFT.249D.1607_177, may aliases: { SMT.295D.1653 }

Variable: SFT.250D.1608, UID 1608, int4D.2, is addressable, call clobbered, default def: SFT.250D.1608_175, may aliases: { SMT.295D.1653 }

Variable: SFT.251D.1609, UID 1609, int4D.2, is addressable, call clobbered, default def: SFT.251D.1609_185, may aliases: { SMT.295D.1653 }

Variable: SFT.252D.1610, UID 1610, voidD.16 *, is addressable, call clobbered, default def: SFT.252D.1610_183, may aliases: { SMT.295D.1653 }

Variable: SFT.253D.1611, UID 1611, int4D.2, default def: SFT.253D.1611_193

Variable: SFT.254D.1612, UID 1612, int4D.2, default def: SFT.254D.1612_191

Variable: SFT.255D.1613, UID 1613, int4D.2, default def: SFT.255D.1613_189

Variable: SFT.256D.1614, UID 1614, int4D.2, default def: SFT.256D.1614_187

Variable: SFT.257D.1615, UID 1615, int4D.2, default def: SFT.257D.1615_197

Variable: SFT.258D.1616, UID 1616, voidD.16 *, default def: SFT.258D.1616_195

Variable: SFT.259D.1617, UID 1617, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.260D.1618, UID 1618, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.261D.1619, UID 1619, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.262D.1620, UID 1620, int4D.2, is addressable, call clobbered, default def: SFT.262D.1620_240, may aliases: { SMT.295D.1653 }

Variable: SFT.263D.1621, UID 1621, int4D.2, is addressable, call clobbered, default def: SFT.263D.1621_242, may aliases: { SMT.295D.1653 }

Variable: SFT.264D.1622, UID 1622, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.265D.1623, UID 1623, int4D.2, is addressable, call clobbered, default def: SFT.265D.1623_221, may aliases: { SMT.295D.1653 }

Variable: SFT.266D.1624, UID 1624, int4D.2, is addressable, call clobbered, default def: SFT.266D.1624_225, may aliases: { SMT.295D.1653 }

Variable: SFT.267D.1625, UID 1625, voidD.16 *, is addressable, call clobbered, default def: SFT.267D.1625_223, may aliases: { SMT.295D.1653 }

Variable: SFT.268D.1626, UID 1626, int4D.2, is addressable, call clobbered, default def: SFT.268D.1626_228, may aliases: { SMT.295D.1653 }

Variable: SFT.269D.1627, UID 1627, int4D.2, is addressable, call clobbered, default def: SFT.269D.1627_232, may aliases: { SMT.295D.1653 }

Variable: SFT.270D.1628, UID 1628, voidD.16 *, is addressable, call clobbered, default def: SFT.270D.1628_230, may aliases: { SMT.295D.1653 }

Variable: SFT.271D.1629, UID 1629, int4D.2, default def: SFT.271D.1629_263

Variable: SFT.272D.1630, UID 1630, int4D.2, default def: SFT.272D.1630_261

Variable: SFT.273D.1631, UID 1631, int4D.2, default def: SFT.273D.1631_259

Variable: SFT.274D.1632, UID 1632, int4D.2, default def: SFT.274D.1632_257

Variable: aD.1124, UID 1124, int4D.2[3], default def: aD.1124_75

Variable: test.25D.1125, UID 1125, logical4D.6

Variable: SFT.277D.1635, UID 1635, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.278D.1636, UID 1636, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: D.1128, UID 1128, int4D.2 *, symbol memory tag: SMT.295D.1653

Variable: atmp.26D.1129, UID 1129, struct array1_int4, is addressable, sub-vars: { SFT.216D.1574 SFT.215D.1573 SFT.214D.1572 SFT.213D.1571 SFT.212D.1570 SFT.211D.1569 }

Variable: atmp.27D.1130, UID 1130, struct array1_int4, sub-vars: { SFT.222D.1580 SFT.221D.1579 SFT.220D.1578 SFT.219D.1577 SFT.218D.1576 SFT.217D.1575 }

Variable: A.28D.1131, UID 1131, int4D.2[3], is addressable, sub-vars: { SFT.225D.1583 SFT.224D.1582 SFT.223D.1581 }

Variable: SFT.283D.1641, UID 1641, int4D.2, is addressable, call clobbered, default def: SFT.283D.1641_294, may aliases: { SMT.295D.1653 }

Variable: S.30D.1133, UID 1133, int4D.2

Variable: SFT.285D.1643, UID 1643, voidD.16 *, is addressable, call clobbered, default def: SFT.285D.1643_296, may aliases: { SMT.295D.1653 }

Variable: SFT.286D.1644, UID 1644, int4D.2, is addressable, call clobbered, default def: SFT.286D.1644_302, may aliases: { SMT.295D.1653 }

Variable: D.1136, UID 1136, int4D.2 *, symbol memory tag: SMT.295D.1653

Variable: atmp.31D.1137, UID 1137, struct array1_int4, is addressable, sub-vars: { SFT.231D.1589 SFT.230D.1588 SFT.229D.1587 SFT.228D.1586 SFT.227D.1585 SFT.226D.1584 }

Variable: S.32D.1138, UID 1138, int4D.2

Variable: test.33D.1140, UID 1140, logical4D.6

Variable: atmp.34D.1142, UID 1142, struct array1_int4, sub-vars: { SFT.237D.1595 SFT.236D.1594 SFT.235D.1593 SFT.234D.1592 SFT.233D.1591 SFT.232D.1590 }

Variable: A.35D.1143, UID 1143, int4D.2[3], is addressable, sub-vars: { SFT.240D.1598 SFT.239D.1597 SFT.238D.1596 }

Variable: SMT.295D.1653, UID 1653, int4D.2[0:], is aliased, is addressable, is global, call clobbered

Variable: S.37D.1145, UID 1145, int4D.2

Variable: NMT.297D.1655, UID 1655, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: NMT.298D.1656, UID 1656, struct array1_int4, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: D.1148, UID 1148, int4D.2 *, symbol memory tag: SMT.295D.1653

Variable: atmp.38D.1149, UID 1149, struct array1_int4, is addressable, sub-vars: { SFT.246D.1604 SFT.245D.1603 SFT.244D.1602 SFT.243D.1601 SFT.242D.1600 SFT.241D.1599 }

Variable: test.39D.1150, UID 1150, logical4D.6

Variable: D.1153, UID 1153, int4D.2 *, symbol memory tag: SMT.295D.1653

Variable: atmp.40D.1154, UID 1154, struct array1_int4, is addressable, sub-vars: { SFT.252D.1610 SFT.251D.1609 SFT.250D.1608 SFT.249D.1607 SFT.248D.1606 SFT.247D.1605 }

Variable: atmp.41D.1155, UID 1155, struct array1_int4, sub-vars: { SFT.258D.1616 SFT.257D.1615 SFT.256D.1614 SFT.255D.1613 SFT.254D.1612 SFT.253D.1611 }

Variable: A.42D.1156, UID 1156, int4D.2[3], is addressable, sub-vars: { SFT.261D.1619 SFT.260D.1618 SFT.259D.1617 }

Variable: S.44D.1158, UID 1158, int4D.2

Variable: D.1161, UID 1161, int4D.2 *, symbol memory tag: SMT.295D.1653

Variable: atmp.45D.1162, UID 1162, struct array1_int4, is addressable, sub-vars: { SFT.267D.1625 SFT.266D.1624 SFT.265D.1623 SFT.264D.1622 SFT.263D.1621 SFT.262D.1620 }

Variable: D.1164, UID 1164, int4D.2 *, symbol memory tag: SMT.295D.1653

Variable: atmp.46D.1165, UID 1165, struct array1_int4, is addressable, sub-vars: { SFT.270D.1628 SFT.269D.1627 SFT.268D.1626 }

Variable: D.1166, UID 1166, int4D.2

Variable: D.1167, UID 1167, int4D.2

Variable: S.47D.1168, UID 1168, int4D.2

Variable: test.48D.1170, UID 1170, logical4D.6

Variable: atmp.49D.1172, UID 1172, struct array1_int4, sub-vars: { SFT.276D.1634 SFT.275D.1633 SFT.274D.1632 SFT.273D.1631 SFT.272D.1630 SFT.271D.1629 }

Variable: A.50D.1173, UID 1173, int4D.2[3], is addressable, sub-vars: { SFT.279D.1637 SFT.278D.1636 SFT.277D.1635 }

Variable: S.52D.1175, UID 1175, int4D.2

Variable: D.1178, UID 1178, int4D.2 *, symbol memory tag: SMT.295D.1653

Variable: atmp.53D.1179, UID 1179, struct array1_int4, is addressable, sub-vars: { SFT.282D.1640 SFT.281D.1639 SFT.280D.1638 }

Variable: D.1182, UID 1182, int4D.2 *, symbol memory tag: SMT.295D.1653

Variable: atmp.54D.1183, UID 1183, struct array1_int4, is addressable, sub-vars: { SFT.285D.1643 SFT.284D.1642 SFT.283D.1641 }

Variable: D.1186, UID 1186, int4D.2 *, symbol memory tag: SMT.295D.1653

Variable: atmp.55D.1187, UID 1187, struct array1_int4, is addressable, sub-vars: { SFT.288D.1646 SFT.287D.1645 SFT.286D.1644 }

Variable: D.1189, UID 1189, voidD.16 *

Variable: D.1190, UID 1190, int4D.2[0:] *, symbol memory tag: SMT.295D.1653

Variable: D.1192, UID 1192, voidD.16 *, symbol memory tag: SMT.295D.1653

Variable: D.1193, UID 1193, int4D.2[0:] *, symbol memory tag: SMT.295D.1653

Variable: S.56D.1194, UID 1194, int4D.2

Variable: D.1195, UID 1195, int4D.2

Variable: D.1196, UID 1196, int4D.2

Variable: D.1197, UID 1197, logical4D.6

Variable: S.57D.1199, UID 1199, int4D.2

Variable: D.1200, UID 1200, voidD.16 *, symbol memory tag: SMT.295D.1653

Variable: D.1201, UID 1201, int4D.2[0:] *, symbol memory tag: SMT.295D.1653

Variable: D.1202, UID 1202, int4D.2

Variable: D.1203, UID 1203, voidD.16 *

Variable: D.1204, UID 1204, int4D.2[0:] *, symbol memory tag: SMT.295D.1653

Variable: S.58D.1206, UID 1206, int4D.2

Variable: D.1207, UID 1207, int4D.2

Variable: D.1208, UID 1208, int4D.2

Variable: D.1209, UID 1209, logical4D.6

Variable: D.1210, UID 1210, voidD.16 *, symbol memory tag: SMT.295D.1653

Variable: D.1211, UID 1211, voidD.16 *

Variable: D.1212, UID 1212, int4D.2[0:] *, symbol memory tag: SMT.295D.1653

Variable: D.1214, UID 1214, voidD.16 *, symbol memory tag: SMT.295D.1653

Variable: D.1215, UID 1215, int4D.2[0:] *, symbol memory tag: SMT.295D.1653

Variable: S.59D.1216, UID 1216, int4D.2

Variable: D.1217, UID 1217, int4D.2

Variable: D.1218, UID 1218, int4D.2

Variable: D.1219, UID 1219, int4D.2

Variable: D.1220, UID 1220, int4D.2

Variable: D.1221, UID 1221, logical4D.6

Variable: D.1222, UID 1222, int4D.2

Variable: D.1223, UID 1223, voidD.16 *, symbol memory tag: SMT.295D.1653

Variable: D.1224, UID 1224, int4D.2

Variable: D.1226, UID 1226, int4D.2

Variable: D.1227, UID 1227, int4D.2

Variable: D.1228, UID 1228, int4D.2

Variable: S.60D.1229, UID 1229, int4D.2

Variable: D.1230, UID 1230, voidD.16 *, symbol memory tag: SMT.295D.1653

Variable: D.1231, UID 1231, int4D.2[0:] *, symbol memory tag: SMT.295D.1653

Variable: D.1232, UID 1232, int4D.2

Variable: D.1233, UID 1233, int4D.2

Variable: D.1234, UID 1234, int4D.2

Variable: D.1235, UID 1235, int4D.2

Variable: D.1236, UID 1236, voidD.16 *

Variable: D.1237, UID 1237, int4D.2[0:] *, symbol memory tag: SMT.295D.1653

Variable: S.61D.1239, UID 1239, int4D.2

Variable: D.1240, UID 1240, int4D.2

Variable: D.1241, UID 1241, int4D.2

Variable: D.1242, UID 1242, logical4D.6

Variable: D.1243, UID 1243, voidD.16 *, symbol memory tag: SMT.295D.1653

Variable: D.1244, UID 1244, voidD.16 *, symbol memory tag: SMT.295D.1653

Variable: D.1245, UID 1245, voidD.16 *, symbol memory tag: SMT.295D.1653

Variable: SFT.280D.1638, UID 1638, int4D.2, is addressable, call clobbered, default def: SFT.280D.1638_286, may aliases: { SMT.295D.1653 }

Variable: SFT.281D.1639, UID 1639, int4D.2, is addressable, call clobbered, default def: SFT.281D.1639_290, may aliases: { SMT.295D.1653 }

Variable: SFT.282D.1640, UID 1640, voidD.16 *, is addressable, call clobbered, default def: SFT.282D.1640_288, may aliases: { SMT.295D.1653 }

Variable: SFT.284D.1642, UID 1642, int4D.2, is addressable, call clobbered, default def: SFT.284D.1642_298, may aliases: { SMT.295D.1653 }

Variable: SFT.287D.1645, UID 1645, int4D.2, is addressable, call clobbered, default def: SFT.287D.1645_306, may aliases: { SMT.295D.1653 }

Variable: SFT.288D.1646, UID 1646, voidD.16 *, is addressable, call clobbered, default def: SFT.288D.1646_304, may aliases: { SMT.295D.1653 }

Variable: NONLOCAL.294D.1652, UID 1652, voidD.16, is addressable, is global, call clobbered, may aliases: { SMT.295D.1653 }

Variable: NMT.296D.1654, UID 1654, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: NMT.299D.1657, UID 1657, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: NMT.300D.1658, UID 1658, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: NMT.301D.1659, UID 1659, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: SFT.275D.1633, UID 1633, int4D.2, default def: SFT.275D.1633_267

Variable: SFT.276D.1634, UID 1634, voidD.16 *, default def: SFT.276D.1634_265

Variable: SFT.279D.1637, UID 1637, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Variable: aD.1517, UID 1517, struct array1_int4 &, symbol memory tag: SMT.295D.1653

Variable: ubound.16D.1518, UID 1518, int4D.2

Variable: stride.17D.1519, UID 1519, int4D.2

Variable: offset.18D.1520, UID 1520, int4D.2

Variable: size.19D.1521, UID 1521, int4D.2

Variable: a.0D.1522, UID 1522, int4D.2[0:D.1523] *, symbol memory tag: SMT.295D.1653

Variable: D.1523, UID 1523, int4D.2

Variable: D.1524, UID 1524, bit_size_type

Variable: D.1525, UID 1525, <unnamed type>

Variable: D.1526, UID 1526, int4D.2



Pointed-to sets for pointers in MAIN__

SFT.210D.1568_149
SFT.216D.1574_26
SFT.222D.1580_38
SFT.231D.1589_70
SFT.237D.1595_93
SFT.246D.1604_116
SFT.252D.1610_183
SFT.258D.1616_195
SFT.267D.1625_223
SFT.270D.1628_230
SFT.285D.1643_296
SFT.282D.1640_288
SFT.288D.1646_304
SFT.276D.1634_265
D.1128_17, is dereferenced, its value escapes, points-to anything
D.1189_42, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1190_43, name memory tag: NMT.296D.1654, is dereferenced, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1189_44, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1190_45, name memory tag: NMT.296D.1654, is dereferenced, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1189_46, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1190_47, name memory tag: NMT.296D.1654, is dereferenced, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1192_49, points-to NULL
D.1193_50, is dereferenced, points-to anything, points-to NULL
D.1189_53, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1190_54, name memory tag: NMT.296D.1654, is dereferenced, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1192_60, is dereferenced, its value escapes, points-to anything, points-to NULL
D.1136_61, is dereferenced, its value escapes, points-to anything
D.1200_77, points-to NULL
D.1201_78, is dereferenced, points-to anything, points-to NULL
D.1200_83, is dereferenced, its value escapes, points-to anything, points-to NULL
D.1203_97, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1204_98, name memory tag: NMT.297D.1655, is dereferenced, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1203_99, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1204_100, name memory tag: NMT.297D.1655, is dereferenced, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1203_101, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1204_102, name memory tag: NMT.297D.1655, is dereferenced, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1203_106, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1204_107, name memory tag: NMT.297D.1655, is dereferenced, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1148_113, is dereferenced, its value escapes, points-to anything
aD.1517_120, name memory tag: NMT.298D.1656, is dereferenced, points-to vars: { SFT.241D.1599 SFT.242D.1600 SFT.243D.1601 SFT.244D.1602 SFT.245D.1603 SFT.246D.1604 }
D.1537_125, points-to NULL
a.0D.1522_126, is dereferenced, points-to anything, points-to NULL
D.1543_153, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1544_154, name memory tag: NMT.299D.1657, is dereferenced, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1543_155, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1544_156, name memory tag: NMT.299D.1657, is dereferenced, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1543_157, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1544_158, name memory tag: NMT.299D.1657, is dereferenced, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1543_165, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1544_166, name memory tag: NMT.299D.1657, is dereferenced, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1210_172, is dereferenced, its value escapes, points-to anything, points-to NULL
D.1153_174, is dereferenced, its value escapes, points-to anything
D.1211_199, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1212_200, name memory tag: NMT.300D.1658, is dereferenced, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1211_201, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1212_202, name memory tag: NMT.300D.1658, is dereferenced, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1211_203, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1212_204, name memory tag: NMT.300D.1658, is dereferenced, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1214_206, points-to NULL
D.1215_207, is dereferenced, points-to anything, points-to NULL
D.1211_212, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1212_213, name memory tag: NMT.300D.1658, is dereferenced, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1214_219, is dereferenced, its value escapes, points-to anything, points-to NULL
D.1161_220, is dereferenced, its value escapes, points-to anything
D.1164_227, is dereferenced, its value escapes, points-to anything
D.1223_236, is dereferenced, its value escapes, points-to anything, points-to NULL
D.1230_246, points-to NULL
D.1231_247, is dereferenced, points-to anything, points-to NULL
D.1230_255, is dereferenced, its value escapes, points-to anything, points-to NULL
D.1236_269, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1237_270, name memory tag: NMT.301D.1659, is dereferenced, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1236_271, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1237_272, name memory tag: NMT.301D.1659, is dereferenced, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1236_273, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1237_274, name memory tag: NMT.301D.1659, is dereferenced, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1236_278, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1237_279, name memory tag: NMT.301D.1659, is dereferenced, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1178_285, is dereferenced, its value escapes, points-to anything
D.1243_292, is dereferenced, its value escapes, points-to anything, points-to NULL
D.1182_293, is dereferenced, its value escapes, points-to anything
D.1244_300, is dereferenced, its value escapes, points-to anything, points-to NULL
D.1186_301, is dereferenced, its value escapes, points-to anything
D.1245_308, is dereferenced, its value escapes, points-to anything, points-to NULL


Flow-insensitive alias information for MAIN__

Aliased symbols

A.22D.1527, UID 1527, int4D.2[3], is addressable, sub-vars: { SFT.204D.1562 SFT.203D.1561 SFT.202D.1560 }
SFT.202D.1560, UID 1560, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.203D.1561, UID 1561, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.204D.1562, UID 1562, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.211D.1569, UID 1569, int4D.2, is addressable, call clobbered, default def: SFT.211D.1569_24, may aliases: { SMT.295D.1653 }
SFT.212D.1570, UID 1570, int4D.2, is addressable, call clobbered, default def: SFT.212D.1570_22, may aliases: { SMT.295D.1653 }
SFT.213D.1571, UID 1571, int4D.2, is addressable, call clobbered, default def: SFT.213D.1571_20, may aliases: { SMT.295D.1653 }
SFT.214D.1572, UID 1572, int4D.2, is addressable, call clobbered, default def: SFT.214D.1572_18, may aliases: { SMT.295D.1653 }
SFT.215D.1573, UID 1573, int4D.2, is addressable, call clobbered, default def: SFT.215D.1573_28, may aliases: { SMT.295D.1653 }
SFT.216D.1574, UID 1574, voidD.16 *, is addressable, call clobbered, default def: SFT.216D.1574_26, may aliases: { SMT.295D.1653 }
SFT.223D.1581, UID 1581, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.224D.1582, UID 1582, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.225D.1583, UID 1583, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.226D.1584, UID 1584, int4D.2, is addressable, call clobbered, default def: SFT.226D.1584_68, may aliases: { SMT.295D.1653 }
SFT.227D.1585, UID 1585, int4D.2, is addressable, call clobbered, default def: SFT.227D.1585_66, may aliases: { SMT.295D.1653 }
SFT.228D.1586, UID 1586, int4D.2, is addressable, call clobbered, default def: SFT.228D.1586_64, may aliases: { SMT.295D.1653 }
SFT.229D.1587, UID 1587, int4D.2, is addressable, call clobbered, default def: SFT.229D.1587_62, may aliases: { SMT.295D.1653 }
SFT.230D.1588, UID 1588, int4D.2, is addressable, call clobbered, default def: SFT.230D.1588_72, may aliases: { SMT.295D.1653 }
SFT.231D.1589, UID 1589, voidD.16 *, is addressable, call clobbered, default def: SFT.231D.1589_70, may aliases: { SMT.295D.1653 }
SFT.238D.1596, UID 1596, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.239D.1597, UID 1597, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.240D.1598, UID 1598, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.241D.1599, UID 1599, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.242D.1600, UID 1600, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.243D.1601, UID 1601, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.244D.1602, UID 1602, int4D.2, is addressable, call clobbered, default def: SFT.244D.1602_114, may aliases: { SMT.295D.1653 }
SFT.245D.1603, UID 1603, int4D.2, is addressable, call clobbered, default def: SFT.245D.1603_118, may aliases: { SMT.295D.1653 }
SFT.246D.1604, UID 1604, voidD.16 *, is addressable, call clobbered, default def: SFT.246D.1604_116, may aliases: { SMT.295D.1653 }
SFT.247D.1605, UID 1605, int4D.2, is addressable, call clobbered, default def: SFT.247D.1605_181, may aliases: { SMT.295D.1653 }
SFT.248D.1606, UID 1606, int4D.2, is addressable, call clobbered, default def: SFT.248D.1606_179, may aliases: { SMT.295D.1653 }
SFT.249D.1607, UID 1607, int4D.2, is addressable, call clobbered, default def: SFT.249D.1607_177, may aliases: { SMT.295D.1653 }
SFT.250D.1608, UID 1608, int4D.2, is addressable, call clobbered, default def: SFT.250D.1608_175, may aliases: { SMT.295D.1653 }
SFT.251D.1609, UID 1609, int4D.2, is addressable, call clobbered, default def: SFT.251D.1609_185, may aliases: { SMT.295D.1653 }
SFT.252D.1610, UID 1610, voidD.16 *, is addressable, call clobbered, default def: SFT.252D.1610_183, may aliases: { SMT.295D.1653 }
SFT.259D.1617, UID 1617, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.260D.1618, UID 1618, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.261D.1619, UID 1619, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.262D.1620, UID 1620, int4D.2, is addressable, call clobbered, default def: SFT.262D.1620_240, may aliases: { SMT.295D.1653 }
SFT.263D.1621, UID 1621, int4D.2, is addressable, call clobbered, default def: SFT.263D.1621_242, may aliases: { SMT.295D.1653 }
SFT.264D.1622, UID 1622, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.265D.1623, UID 1623, int4D.2, is addressable, call clobbered, default def: SFT.265D.1623_221, may aliases: { SMT.295D.1653 }
SFT.266D.1624, UID 1624, int4D.2, is addressable, call clobbered, default def: SFT.266D.1624_225, may aliases: { SMT.295D.1653 }
SFT.267D.1625, UID 1625, voidD.16 *, is addressable, call clobbered, default def: SFT.267D.1625_223, may aliases: { SMT.295D.1653 }
SFT.268D.1626, UID 1626, int4D.2, is addressable, call clobbered, default def: SFT.268D.1626_228, may aliases: { SMT.295D.1653 }
SFT.269D.1627, UID 1627, int4D.2, is addressable, call clobbered, default def: SFT.269D.1627_232, may aliases: { SMT.295D.1653 }
SFT.270D.1628, UID 1628, voidD.16 *, is addressable, call clobbered, default def: SFT.270D.1628_230, may aliases: { SMT.295D.1653 }
SFT.277D.1635, UID 1635, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.278D.1636, UID 1636, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
atmp.26D.1129, UID 1129, struct array1_int4, is addressable, sub-vars: { SFT.216D.1574 SFT.215D.1573 SFT.214D.1572 SFT.213D.1571 SFT.212D.1570 SFT.211D.1569 }
A.28D.1131, UID 1131, int4D.2[3], is addressable, sub-vars: { SFT.225D.1583 SFT.224D.1582 SFT.223D.1581 }
SFT.283D.1641, UID 1641, int4D.2, is addressable, call clobbered, default def: SFT.283D.1641_294, may aliases: { SMT.295D.1653 }
SFT.285D.1643, UID 1643, voidD.16 *, is addressable, call clobbered, default def: SFT.285D.1643_296, may aliases: { SMT.295D.1653 }
SFT.286D.1644, UID 1644, int4D.2, is addressable, call clobbered, default def: SFT.286D.1644_302, may aliases: { SMT.295D.1653 }
atmp.31D.1137, UID 1137, struct array1_int4, is addressable, sub-vars: { SFT.231D.1589 SFT.230D.1588 SFT.229D.1587 SFT.228D.1586 SFT.227D.1585 SFT.226D.1584 }
A.35D.1143, UID 1143, int4D.2[3], is addressable, sub-vars: { SFT.240D.1598 SFT.239D.1597 SFT.238D.1596 }
SMT.295D.1653, UID 1653, int4D.2[0:], is aliased, is addressable, is global, call clobbered
NMT.297D.1655, UID 1655, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }
NMT.298D.1656, UID 1656, struct array1_int4, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
atmp.38D.1149, UID 1149, struct array1_int4, is addressable, sub-vars: { SFT.246D.1604 SFT.245D.1603 SFT.244D.1602 SFT.243D.1601 SFT.242D.1600 SFT.241D.1599 }
atmp.40D.1154, UID 1154, struct array1_int4, is addressable, sub-vars: { SFT.252D.1610 SFT.251D.1609 SFT.250D.1608 SFT.249D.1607 SFT.248D.1606 SFT.247D.1605 }
A.42D.1156, UID 1156, int4D.2[3], is addressable, sub-vars: { SFT.261D.1619 SFT.260D.1618 SFT.259D.1617 }
atmp.45D.1162, UID 1162, struct array1_int4, is addressable, sub-vars: { SFT.267D.1625 SFT.266D.1624 SFT.265D.1623 SFT.264D.1622 SFT.263D.1621 SFT.262D.1620 }
atmp.46D.1165, UID 1165, struct array1_int4, is addressable, sub-vars: { SFT.270D.1628 SFT.269D.1627 SFT.268D.1626 }
A.50D.1173, UID 1173, int4D.2[3], is addressable, sub-vars: { SFT.279D.1637 SFT.278D.1636 SFT.277D.1635 }
atmp.53D.1179, UID 1179, struct array1_int4, is addressable, sub-vars: { SFT.282D.1640 SFT.281D.1639 SFT.280D.1638 }
atmp.54D.1183, UID 1183, struct array1_int4, is addressable, sub-vars: { SFT.285D.1643 SFT.284D.1642 SFT.283D.1641 }
atmp.55D.1187, UID 1187, struct array1_int4, is addressable, sub-vars: { SFT.288D.1646 SFT.287D.1645 SFT.286D.1644 }
SFT.280D.1638, UID 1638, int4D.2, is addressable, call clobbered, default def: SFT.280D.1638_286, may aliases: { SMT.295D.1653 }
SFT.281D.1639, UID 1639, int4D.2, is addressable, call clobbered, default def: SFT.281D.1639_290, may aliases: { SMT.295D.1653 }
SFT.282D.1640, UID 1640, voidD.16 *, is addressable, call clobbered, default def: SFT.282D.1640_288, may aliases: { SMT.295D.1653 }
SFT.284D.1642, UID 1642, int4D.2, is addressable, call clobbered, default def: SFT.284D.1642_298, may aliases: { SMT.295D.1653 }
SFT.287D.1645, UID 1645, int4D.2, is addressable, call clobbered, default def: SFT.287D.1645_306, may aliases: { SMT.295D.1653 }
SFT.288D.1646, UID 1646, voidD.16 *, is addressable, call clobbered, default def: SFT.288D.1646_304, may aliases: { SMT.295D.1653 }
NONLOCAL.294D.1652, UID 1652, voidD.16, is addressable, is global, call clobbered, may aliases: { SMT.295D.1653 }
NMT.296D.1654, UID 1654, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }
NMT.299D.1657, UID 1657, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }
NMT.300D.1658, UID 1658, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }
NMT.301D.1659, UID 1659, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }
SFT.279D.1637, UID 1637, int4D.2, is addressable, call clobbered, may aliases: { SMT.295D.1653 }

Dereferenced pointers

D.1544, UID 1544, int4D.2[0:] *, symbol memory tag: SMT.295D.1653
D.1128, UID 1128, int4D.2 *, symbol memory tag: SMT.295D.1653
D.1136, UID 1136, int4D.2 *, symbol memory tag: SMT.295D.1653
D.1148, UID 1148, int4D.2 *, symbol memory tag: SMT.295D.1653
D.1153, UID 1153, int4D.2 *, symbol memory tag: SMT.295D.1653
D.1161, UID 1161, int4D.2 *, symbol memory tag: SMT.295D.1653
D.1164, UID 1164, int4D.2 *, symbol memory tag: SMT.295D.1653
D.1178, UID 1178, int4D.2 *, symbol memory tag: SMT.295D.1653
D.1182, UID 1182, int4D.2 *, symbol memory tag: SMT.295D.1653
D.1186, UID 1186, int4D.2 *, symbol memory tag: SMT.295D.1653
D.1190, UID 1190, int4D.2[0:] *, symbol memory tag: SMT.295D.1653
D.1192, UID 1192, voidD.16 *, symbol memory tag: SMT.295D.1653
D.1193, UID 1193, int4D.2[0:] *, symbol memory tag: SMT.295D.1653
D.1200, UID 1200, voidD.16 *, symbol memory tag: SMT.295D.1653
D.1201, UID 1201, int4D.2[0:] *, symbol memory tag: SMT.295D.1653
D.1204, UID 1204, int4D.2[0:] *, symbol memory tag: SMT.295D.1653
D.1210, UID 1210, voidD.16 *, symbol memory tag: SMT.295D.1653
D.1212, UID 1212, int4D.2[0:] *, symbol memory tag: SMT.295D.1653
D.1214, UID 1214, voidD.16 *, symbol memory tag: SMT.295D.1653
D.1215, UID 1215, int4D.2[0:] *, symbol memory tag: SMT.295D.1653
D.1223, UID 1223, voidD.16 *, symbol memory tag: SMT.295D.1653
D.1230, UID 1230, voidD.16 *, symbol memory tag: SMT.295D.1653
D.1231, UID 1231, int4D.2[0:] *, symbol memory tag: SMT.295D.1653
D.1237, UID 1237, int4D.2[0:] *, symbol memory tag: SMT.295D.1653
D.1243, UID 1243, voidD.16 *, symbol memory tag: SMT.295D.1653
D.1244, UID 1244, voidD.16 *, symbol memory tag: SMT.295D.1653
D.1245, UID 1245, voidD.16 *, symbol memory tag: SMT.295D.1653
aD.1517, UID 1517, struct array1_int4 &, symbol memory tag: SMT.295D.1653
a.0D.1522, UID 1522, int4D.2[0:D.1523] *, symbol memory tag: SMT.295D.1653

Symbol memory tags

SMT.295D.1653, UID 1653, int4D.2[0:], is aliased, is addressable, is global, call clobbered


Flow-sensitive alias information for MAIN__

SSA_NAME pointers

D.1190_43, name memory tag: NMT.296D.1654, is dereferenced, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1190_45, name memory tag: NMT.296D.1654, is dereferenced, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1190_47, name memory tag: NMT.296D.1654, is dereferenced, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1190_54, name memory tag: NMT.296D.1654, is dereferenced, points-to vars: { SFT.223D.1581 SFT.224D.1582 SFT.225D.1583 }
D.1204_98, name memory tag: NMT.297D.1655, is dereferenced, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1204_100, name memory tag: NMT.297D.1655, is dereferenced, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1204_102, name memory tag: NMT.297D.1655, is dereferenced, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
D.1204_107, name memory tag: NMT.297D.1655, is dereferenced, points-to vars: { SFT.238D.1596 SFT.239D.1597 SFT.240D.1598 }
aD.1517_120, name memory tag: NMT.298D.1656, is dereferenced, points-to vars: { SFT.241D.1599 SFT.242D.1600 SFT.243D.1601 SFT.244D.1602 SFT.245D.1603 SFT.246D.1604 }
D.1544_154, name memory tag: NMT.299D.1657, is dereferenced, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1544_156, name memory tag: NMT.299D.1657, is dereferenced, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1544_158, name memory tag: NMT.299D.1657, is dereferenced, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1544_166, name memory tag: NMT.299D.1657, is dereferenced, points-to vars: { SFT.202D.1560 SFT.203D.1561 SFT.204D.1562 }
D.1212_200, name memory tag: NMT.300D.1658, is dereferenced, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1212_202, name memory tag: NMT.300D.1658, is dereferenced, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1212_204, name memory tag: NMT.300D.1658, is dereferenced, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1212_213, name memory tag: NMT.300D.1658, is dereferenced, points-to vars: { SFT.259D.1617 SFT.260D.1618 SFT.261D.1619 }
D.1237_270, name memory tag: NMT.301D.1659, is dereferenced, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1237_272, name memory tag: NMT.301D.1659, is dereferenced, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1237_274, name memory tag: NMT.301D.1659, is dereferenced, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }
D.1237_279, name memory tag: NMT.301D.1659, is dereferenced, points-to vars: { SFT.277D.1635 SFT.278D.1636 SFT.279D.1637 }

Name memory tags

NMT.297D.1655, UID 1655, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }
NMT.298D.1656, UID 1656, struct array1_int4, is addressable, call clobbered, may aliases: { SMT.295D.1653 }
NMT.296D.1654, UID 1654, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }
NMT.299D.1657, UID 1657, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }
NMT.300D.1658, UID 1658, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }
NMT.301D.1659, UID 1659, int4D.2[0:], is addressable, call clobbered, may aliases: { SMT.295D.1653 }



Symbols to be put in SSA form

a atmp.26 A.28 atmp.31 A.35 atmp.38 atmp.40 A.42 atmp.45 atmp.46 A.50 atmp.53 atmp.54 atmp.55 A.22 SFT.202 SFT.203 SFT.204 SFT.211 SFT.212 SFT.213 SFT.214 SFT.215 SFT.216 SFT.223 SFT.224 SFT.225 SFT.226 SFT.227 SFT.228 SFT.229 SFT.230 SFT.231 SFT.238 SFT.239 SFT.240 SFT.241 SFT.242 SFT.243 SFT.244 SFT.245 SFT.246 SFT.247 SFT.248 SFT.249 SFT.250 SFT.251 SFT.252 SFT.259 SFT.260 SFT.261 SFT.262 SFT.263 SFT.264 SFT.265 SFT.266 SFT.267 SFT.268 SFT.269 SFT.270 SFT.277 SFT.278 SFT.279 SFT.280 SFT.281 SFT.282 SFT.283 SFT.284 SFT.285 SFT.286 SFT.287 SFT.288 NONLOCAL.294 SMT.295 NMT.296 NMT.297 NMT.298 NMT.299 NMT.300 NMT.301 

Incremental SSA update started at block: 0

Number of blocks in CFG: 47
Number of blocks to update: 46 ( 98%)



MAIN__ ()
{
  int4D.2 iftmp.62D.1535;
  voidD.16 * D.1537;
  int4D.2 D.1538;
  int4D.2 D.1539;
  int4D.2 D.1540;
  <unnamed type> size.63D.1541;
  bit_size_type D.1542;
  voidD.16 * D.1543;
  int4D.2[0:] * D.1544;
  int4D.2 D.1548;
  int4D.2 D.1549;
  int4D.2 D.1550;
  int4D.2 D.1551;
  int4D.2 S.64D.1552;
  int4D.2 D.1553;
  logical4D.6 D.1554;
  int4D.2 ubound.16D.1518;
  int4D.2 stride.17D.1519;
  int4D.2 offset.18D.1520;
  int4D.2 size.19D.1521;
  int4D.2[0:D.1523] * a.0D.1522;
  int4D.2 D.1523;
  bit_size_type D.1524;
  <unnamed type> D.1525;
  int4D.2 D.1526;
  int4D.2 A.22D.1527[3];
  struct array1_int4 atmp.21D.1528;
  int4D.2 D.1529;
  logical4D.6 test.20D.1530;
  int4D.2 D.1531;
  int4D.2 S.24D.1532;
  struct array1_int4 & aD.1517;
  int4D.2 * D.1186;
  struct array1_int4 atmp.55D.1187;
  int4D.2 * D.1182;
  struct array1_int4 atmp.54D.1183;
  int4D.2 * D.1178;
  struct array1_int4 atmp.53D.1179;
  int4D.2 S.52D.1175;
  logical4D.6 test.48D.1170;
  struct array1_int4 atmp.49D.1172;
  int4D.2 A.50D.1173[3];
  int4D.2 S.47D.1168;
  int4D.2 * D.1161;
  struct array1_int4 atmp.45D.1162;
  int4D.2 * D.1164;
  struct array1_int4 atmp.46D.1165;
  int4D.2 D.1166;
  int4D.2 D.1167;
  int4D.2 S.44D.1158;
  logical4D.6 test.39D.1150;
  int4D.2 * D.1153;
  struct array1_int4 atmp.40D.1154;
  struct array1_int4 atmp.41D.1155;
  int4D.2 A.42D.1156[3];
  int4D.2 * D.1148;
  struct array1_int4 atmp.38D.1149;
  int4D.2 S.37D.1145;
  logical4D.6 test.33D.1140;
  struct array1_int4 atmp.34D.1142;
  int4D.2 A.35D.1143[3];
  int4D.2 S.32D.1138;
  int4D.2 * D.1136;
  struct array1_int4 atmp.31D.1137;
  int4D.2 S.30D.1133;
  logical4D.6 test.25D.1125;
  int4D.2 * D.1128;
  struct array1_int4 atmp.26D.1129;
  struct array1_int4 atmp.27D.1130;
  int4D.2 A.28D.1131[3];
  int4D.2 aD.1124[3];
  voidD.16 * D.1245;
  voidD.16 * D.1244;
  voidD.16 * D.1243;
  logical4D.6 D.1242;
  int4D.2 D.1241;
  int4D.2 D.1240;
  int4D.2 S.61D.1239;
  int4D.2[0:] * D.1237;
  voidD.16 * D.1236;
  int4D.2 D.1235;
  int4D.2 D.1234;
  int4D.2 D.1233;
  int4D.2 D.1232;
  int4D.2[0:] * D.1231;
  voidD.16 * D.1230;
  int4D.2 S.60D.1229;
  int4D.2 D.1228;
  int4D.2 D.1227;
  int4D.2 D.1226;
  int4D.2 D.1224;
  voidD.16 * D.1223;
  int4D.2 D.1222;
  logical4D.6 D.1221;
  int4D.2 D.1220;
  int4D.2 D.1219;
  int4D.2 D.1218;
  int4D.2 D.1217;
  int4D.2 S.59D.1216;
  int4D.2[0:] * D.1215;
  voidD.16 * D.1214;
  int4D.2[0:] * D.1212;
  voidD.16 * D.1211;
  voidD.16 * D.1210;
  logical4D.6 D.1209;
  int4D.2 D.1208;
  int4D.2 D.1207;
  int4D.2 S.58D.1206;
  int4D.2[0:] * D.1204;
  voidD.16 * D.1203;
  int4D.2 D.1202;
  int4D.2[0:] * D.1201;
  voidD.16 * D.1200;
  int4D.2 S.57D.1199;
  logical4D.6 D.1197;
  int4D.2 D.1196;
  int4D.2 D.1195;
  int4D.2 S.56D.1194;
  int4D.2[0:] * D.1193;
  voidD.16 * D.1192;
  int4D.2[0:] * D.1190;
  voidD.16 * D.1189;

<bb 2>:
  #   SMT.295D.1653_310 = V_MAY_DEF <SMT.295D.1653_309>;
  _gfortran_set_std (70, 127, 0);
  test.25D.1125_16 = 1;
  D.1128_17 = &C.1127;
  #   SMT.295D.1653_311 = V_MAY_DEF <SMT.295D.1653_310>;
  atmp.26D.1129.dtypeD.989 = 265;
  #   SMT.295D.1653_312 = V_MAY_DEF <SMT.295D.1653_311>;
  atmp.26D.1129.dimD.994[0].strideD.990 = 1;
  #   SMT.295D.1653_313 = V_MAY_DEF <SMT.295D.1653_312>;
  atmp.26D.1129.dimD.994[0].lboundD.991 = 0;
  #   SMT.295D.1653_314 = V_MAY_DEF <SMT.295D.1653_313>;
  atmp.26D.1129.dimD.994[0].uboundD.992 = 2;
  #   SMT.295D.1653_315 = V_MAY_DEF <SMT.295D.1653_314>;
  atmp.26D.1129.dataD.987 = 0B;
  #   SMT.295D.1653_316 = V_MAY_DEF <SMT.295D.1653_315>;
  atmp.26D.1129.offsetD.988 = 0;
  #   SMT.295D.1653_317 = V_MAY_DEF <SMT.295D.1653_316>;
  foo1 (&atmp.26D.1129, D.1128_17);
  #   SFT.220D.1578_31 = V_MUST_DEF <SFT.220D.1578_30>;
  atmp.27D.1130.dtypeD.989 = 265;
  #   SFT.219D.1577_33 = V_MUST_DEF <SFT.219D.1577_32>;
  atmp.27D.1130.dimD.994[0].strideD.990 = 1;
  #   SFT.218D.1576_35 = V_MUST_DEF <SFT.218D.1576_34>;
  atmp.27D.1130.dimD.994[0].lboundD.991 = 0;
  #   SFT.217D.1575_37 = V_MUST_DEF <SFT.217D.1575_36>;
  atmp.27D.1130.dimD.994[0].uboundD.992 = 2;
  #   SFT.222D.1580_39 = V_MUST_DEF <SFT.222D.1580_38>;
  atmp.27D.1130.dataD.987 = &A.28D.1131;
  #   SFT.221D.1579_41 = V_MUST_DEF <SFT.221D.1579_40>;
  atmp.27D.1130.offsetD.988 = 0;
  #   VUSE <SFT.222D.1580_39>;
  D.1189_42 = atmp.27D.1130.dataD.987;
  D.1190_43 = (int4D.2[0:] *) D.1189_42;
  #   SMT.295D.1653_318 = V_MAY_DEF <SMT.295D.1653_317>;
  (*D.1190_43)[0] = 1;
  #   VUSE <SFT.222D.1580_39>;
  D.1189_44 = atmp.27D.1130.dataD.987;
  D.1190_45 = (int4D.2[0:] *) D.1189_44;
  #   SMT.295D.1653_319 = V_MAY_DEF <SMT.295D.1653_318>;
  (*D.1190_45)[1] = 2;
  #   VUSE <SFT.222D.1580_39>;
  D.1189_46 = atmp.27D.1130.dataD.987;
  D.1190_47 = (int4D.2[0:] *) D.1189_46;
  #   SMT.295D.1653_320 = V_MAY_DEF <SMT.295D.1653_319>;
  (*D.1190_47)[2] = 3;
  S.30D.1133_48 = 0;

  # S.30D.1133_7 = PHI <S.30D.1133_48(2), S.30D.1133_59(6)>;
<L0>:;
  if (S.30D.1133_7 > 2) goto L.14L.4; else goto <L1>;

<L1>:;
  #   VUSE <SMT.295D.1653_320>;
  D.1192_49 = atmp.26D.1129.dataD.987;
  D.1193_50 = (int4D.2[0:] *) D.1192_49;
  S.56D.1194_51 = S.30D.1133_7;
  #   VUSE <SMT.295D.1653_320>;
  D.1195_52 = (*D.1193_50)[S.56D.1194_51];
  #   VUSE <SFT.222D.1580_39>;
  D.1189_53 = atmp.27D.1130.dataD.987;
  D.1190_54 = (int4D.2[0:] *) D.1189_53;
  S.56D.1194_55 = S.30D.1133_7;
  #   VUSE <SMT.295D.1653_320>;
  D.1196_56 = (*D.1190_54)[S.56D.1194_55];
  D.1197_57 = D.1195_52 == D.1196_56;
  if (D.1197_57 == 0) goto <L2>; else goto <L3>;

<L2>:;
  test.25D.1125_58 = 0;
  goto <bb 7> (L.14);

<L3>:;
  S.30D.1133_59 = S.30D.1133_7 + 1;
  goto <bb 3> (<L0>);

  # test.25D.1125_6 = PHI <test.25D.1125_16(3), test.25D.1125_58(5)>;
L.14L.4:;
  #   VUSE <SMT.295D.1653_320>;
  D.1192_60 = atmp.26D.1129.dataD.987;
  #   SMT.295D.1653_321 = V_MAY_DEF <SMT.295D.1653_320>;
  _gfortran_internal_free (D.1192_60);
  if (test.25D.1125_6 == 0) goto <L6>; else goto <L7>;

<L6>:;
  #   VUSE <SMT.295D.1653_321>;
  _gfortran_abort ();

<L7>:;
  D.1136_61 = &C.1135;
  #   SMT.295D.1653_322 = V_MAY_DEF <SMT.295D.1653_321>;
  atmp.31D.1137.dtypeD.989 = 265;
  #   SMT.295D.1653_323 = V_MAY_DEF <SMT.295D.1653_322>;
  atmp.31D.1137.dimD.994[0].strideD.990 = 1;
  #   SMT.295D.1653_324 = V_MAY_DEF <SMT.295D.1653_323>;
  atmp.31D.1137.dimD.994[0].lboundD.991 = 0;
  #   SMT.295D.1653_325 = V_MAY_DEF <SMT.295D.1653_324>;
  atmp.31D.1137.dimD.994[0].uboundD.992 = 2;
  #   SMT.295D.1653_326 = V_MAY_DEF <SMT.295D.1653_325>;
  atmp.31D.1137.dataD.987 = 0B;
  #   SMT.295D.1653_327 = V_MAY_DEF <SMT.295D.1653_326>;
  atmp.31D.1137.offsetD.988 = 0;
  #   SMT.295D.1653_328 = V_MAY_DEF <SMT.295D.1653_327>;
  foo1 (&atmp.31D.1137, D.1136_61);
  S.32D.1138_74 = 0;

  # S.32D.1138_8 = PHI <S.32D.1138_74(9), S.32D.1138_82(11)>;
  # aD.1124_4 = PHI <aD.1124_75(9), aD.1124_81(11)>;
<L8>:;
  if (S.32D.1138_8 > 2) goto L.15L.10; else goto <L9>;

<L9>:;
  S.57D.1199_76 = S.32D.1138_8;
  #   VUSE <SMT.295D.1653_328>;
  D.1200_77 = atmp.31D.1137.dataD.987;
  D.1201_78 = (int4D.2[0:] *) D.1200_77;
  S.57D.1199_79 = S.32D.1138_8;
  #   VUSE <SMT.295D.1653_328>;
  D.1202_80 = (*D.1201_78)[S.57D.1199_79];
  #   aD.1124_81 = V_MAY_DEF <aD.1124_4>;
  aD.1124[S.57D.1199_79] = D.1202_80;
  S.32D.1138_82 = S.32D.1138_8 + 1;
  goto <bb 10> (<L8>);

L.15L.10:;
  #   VUSE <SMT.295D.1653_328>;
  D.1200_83 = atmp.31D.1137.dataD.987;
  #   SMT.295D.1653_329 = V_MAY_DEF <SMT.295D.1653_328>;
  _gfortran_internal_free (D.1200_83);
  test.33D.1140_84 = 1;
  #   SFT.235D.1593_86 = V_MUST_DEF <SFT.235D.1593_85>;
  atmp.34D.1142.dtypeD.989 = 265;
  #   SFT.234D.1592_88 = V_MUST_DEF <SFT.234D.1592_87>;
  atmp.34D.1142.dimD.994[0].strideD.990 = 1;
  #   SFT.233D.1591_90 = V_MUST_DEF <SFT.233D.1591_89>;
  atmp.34D.1142.dimD.994[0].lboundD.991 = 0;
  #   SFT.232D.1590_92 = V_MUST_DEF <SFT.232D.1590_91>;
  atmp.34D.1142.dimD.994[0].uboundD.992 = 2;
  #   SFT.237D.1595_94 = V_MUST_DEF <SFT.237D.1595_93>;
  atmp.34D.1142.dataD.987 = &A.35D.1143;
  #   SFT.236D.1594_96 = V_MUST_DEF <SFT.236D.1594_95>;
  atmp.34D.1142.offsetD.988 = 0;
  #   VUSE <SFT.237D.1595_94>;
  D.1203_97 = atmp.34D.1142.dataD.987;
  D.1204_98 = (int4D.2[0:] *) D.1203_97;
  #   SMT.295D.1653_330 = V_MAY_DEF <SMT.295D.1653_329>;
  (*D.1204_98)[0] = 1;
  #   VUSE <SFT.237D.1595_94>;
  D.1203_99 = atmp.34D.1142.dataD.987;
  D.1204_100 = (int4D.2[0:] *) D.1203_99;
  #   SMT.295D.1653_331 = V_MAY_DEF <SMT.295D.1653_330>;
  (*D.1204_100)[1] = 2;
  #   VUSE <SFT.237D.1595_94>;
  D.1203_101 = atmp.34D.1142.dataD.987;
  D.1204_102 = (int4D.2[0:] *) D.1203_101;
  #   SMT.295D.1653_332 = V_MAY_DEF <SMT.295D.1653_331>;
  (*D.1204_102)[2] = 3;
  S.37D.1145_103 = 0;

  # S.37D.1145_10 = PHI <S.37D.1145_103(12), S.37D.1145_112(16)>;
<L11>:;
  if (S.37D.1145_10 > 2) goto L.17L.15; else goto <L12>;

<L12>:;
  S.58D.1206_104 = S.37D.1145_10;
  #   VUSE <aD.1124_4>;
  D.1207_105 = aD.1124[S.58D.1206_104];
  #   VUSE <SFT.237D.1595_94>;
  D.1203_106 = atmp.34D.1142.dataD.987;
  D.1204_107 = (int4D.2[0:] *) D.1203_106;
  S.58D.1206_108 = S.37D.1145_10;
  #   VUSE <SMT.295D.1653_332>;
  D.1208_109 = (*D.1204_107)[S.58D.1206_108];
  D.1209_110 = D.1207_105 == D.1208_109;
  if (D.1209_110 == 0) goto <L13>; else goto <L14>;

<L13>:;
  test.33D.1140_111 = 0;
  goto <bb 17> (L.17);

<L14>:;
  S.37D.1145_112 = S.37D.1145_10 + 1;
  goto <bb 13> (<L11>);

  # test.33D.1140_9 = PHI <test.33D.1140_84(13), test.33D.1140_111(15)>;
L.17L.15:;
  if (test.33D.1140_9 == 0) goto <L17>; else goto <L18>;

<L17>:;
  #   VUSE <SMT.295D.1653_332>;
  _gfortran_abort ();

<L18>:;
  D.1148_113 = &C.1147;
  #   SMT.295D.1653_333 = V_MAY_DEF <SMT.295D.1653_332>;
  atmp.38D.1149.dtypeD.989 = 265;
  #   SMT.295D.1653_334 = V_MAY_DEF <SMT.295D.1653_333>;
  atmp.38D.1149.dataD.987 = 0B;
  #   SMT.295D.1653_335 = V_MAY_DEF <SMT.295D.1653_334>;
  atmp.38D.1149.offsetD.988 = 0;
  #   SMT.295D.1653_336 = V_MAY_DEF <SMT.295D.1653_335>;
  foo1 (&atmp.38D.1149, D.1148_113);
  aD.1517_120 = &atmp.38D.1149;
  #   VUSE <SMT.295D.1653_336>;
  D.1526_121 = aD.1517_120->dimD.994[0].strideD.990;
  if (D.1526_121 == 0) goto <L38>; else goto <L39>;

<L38>:;
  iftmp.62D.1535_122 = 1;
  goto <bb 22> (<L40>);

<L39>:;
  iftmp.62D.1535_123 = D.1526_121;

  # iftmp.62D.1535_3 = PHI <iftmp.62D.1535_122(20), iftmp.62D.1535_123(21)>;
<L40>:;
  stride.17D.1519_124 = iftmp.62D.1535_3;
  #   VUSE <SMT.295D.1653_336>;
  D.1537_125 = aD.1517_120->dataD.987;
  a.0D.1522_126 = (int4D.2[0:D.1523] *) D.1537_125;
  #   VUSE <SMT.295D.1653_336>;
  D.1538_127 = aD.1517_120->dimD.994[0].uboundD.992;
  #   VUSE <SMT.295D.1653_336>;
  D.1539_128 = aD.1517_120->dimD.994[0].lboundD.991;
  D.1540_129 = D.1538_127 - D.1539_128;
  ubound.16D.1518_130 = D.1540_129 + 1;
  size.19D.1521_131 = stride.17D.1519_124 * ubound.16D.1518_130;
  offset.18D.1520_132 = -stride.17D.1519_124;
  D.1523_133 = size.19D.1521_131 + -1;
  size.63D.1541_134 = (<unnamed type>) size.19D.1521_131;
  D.1542_135 = (bit_size_type) size.63D.1541_134;
  D.1524_136 = D.1542_135 * 32;
  size.63D.1541_137 = (<unnamed type>) size.19D.1521_131;
  D.1525_138 = size.63D.1541_137 * 4;
  test.20D.1530_139 = 1;
  D.1529_140 = offset.18D.1520_132;
  #   SFT.208D.1566_142 = V_MUST_DEF <SFT.208D.1566_141>;
  atmp.21D.1528.dtypeD.989 = 265;
  #   SFT.207D.1565_144 = V_MUST_DEF <SFT.207D.1565_143>;
  atmp.21D.1528.dimD.994[0].strideD.990 = 1;
  #   SFT.206D.1564_146 = V_MUST_DEF <SFT.206D.1564_145>;
  atmp.21D.1528.dimD.994[0].lboundD.991 = 0;
  #   SFT.205D.1563_148 = V_MUST_DEF <SFT.205D.1563_147>;
  atmp.21D.1528.dimD.994[0].uboundD.992 = 2;
  #   SFT.210D.1568_150 = V_MUST_DEF <SFT.210D.1568_149>;
  atmp.21D.1528.dataD.987 = &A.22D.1527;
  #   SFT.209D.1567_152 = V_MUST_DEF <SFT.209D.1567_151>;
  atmp.21D.1528.offsetD.988 = 0;
  #   VUSE <SFT.210D.1568_150>;
  D.1543_153 = atmp.21D.1528.dataD.987;
  D.1544_154 = (int4D.2[0:] *) D.1543_153;
  #   SMT.295D.1653_337 = V_MAY_DEF <SMT.295D.1653_336>;
  (*D.1544_154)[0] = 1;
  #   VUSE <SFT.210D.1568_150>;
  D.1543_155 = atmp.21D.1528.dataD.987;
  D.1544_156 = (int4D.2[0:] *) D.1543_155;
  #   SMT.295D.1653_338 = V_MAY_DEF <SMT.295D.1653_337>;
  (*D.1544_156)[1] = 2;
  #   VUSE <SFT.210D.1568_150>;
  D.1543_157 = atmp.21D.1528.dataD.987;
  D.1544_158 = (int4D.2[0:] *) D.1543_157;
  #   SMT.295D.1653_339 = V_MAY_DEF <SMT.295D.1653_338>;
  (*D.1544_158)[2] = 3;
  D.1531_159 = stride.17D.1519_124;
  S.24D.1532_160 = 0;

  # S.24D.1532_2 = PHI <S.24D.1532_160(22), S.24D.1532_171(26)>;
<L41>:;
  if (S.24D.1532_2 > 2) goto L.12L.45; else goto <L42>;

<L42>:;
  D.1548_161 = S.24D.1532_2 + 1;
  D.1549_162 = D.1548_161 * D.1531_159;
  D.1550_163 = D.1549_162 + D.1529_140;
  #   VUSE <SMT.295D.1653_339>;
  D.1551_164 = (*a.0D.1522_126)[D.1550_163];
  #   VUSE <SFT.210D.1568_150>;
  D.1543_165 = atmp.21D.1528.dataD.987;
  D.1544_166 = (int4D.2[0:] *) D.1543_165;
  S.64D.1552_167 = S.24D.1532_2;
  #   VUSE <SMT.295D.1653_339>;
  D.1553_168 = (*D.1544_166)[S.64D.1552_167];
  D.1554_169 = D.1551_164 == D.1553_168;
  if (D.1554_169 == 0) goto <L43>; else goto <L44>;

<L43>:;
  test.20D.1530_170 = 0;
  goto <bb 27> (L.12);

<L44>:;
  S.24D.1532_171 = S.24D.1532_2 + 1;
  goto <bb 23> (<L41>);

  # test.20D.1530_1 = PHI <test.20D.1530_139(23), test.20D.1530_170(25)>;
L.12L.45:;
  if (test.20D.1530_1 == 0) goto <L46>; else goto <L48>;

<L46>:;
  #   VUSE <SMT.295D.1653_339>;
  _gfortran_abort ();

<L48>:;
  #   VUSE <SMT.295D.1653_339>;
  D.1210_172 = atmp.38D.1149.dataD.987;
  #   SMT.295D.1653_340 = V_MAY_DEF <SMT.295D.1653_339>;
  _gfortran_internal_free (D.1210_172);
  test.39D.1150_173 = 1;
  D.1153_174 = &C.1152;
  #   SMT.295D.1653_341 = V_MAY_DEF <SMT.295D.1653_340>;
  atmp.40D.1154.dtypeD.989 = 265;
  #   SMT.295D.1653_342 = V_MAY_DEF <SMT.295D.1653_341>;
  atmp.40D.1154.dimD.994[0].strideD.990 = 1;
  #   SMT.295D.1653_343 = V_MAY_DEF <SMT.295D.1653_342>;
  atmp.40D.1154.dimD.994[0].lboundD.991 = 0;
  #   SMT.295D.1653_344 = V_MAY_DEF <SMT.295D.1653_343>;
  atmp.40D.1154.dimD.994[0].uboundD.992 = 2;
  #   SMT.295D.1653_345 = V_MAY_DEF <SMT.295D.1653_344>;
  atmp.40D.1154.dataD.987 = 0B;
  #   SMT.295D.1653_346 = V_MAY_DEF <SMT.295D.1653_345>;
  atmp.40D.1154.offsetD.988 = 0;
  #   SMT.295D.1653_347 = V_MAY_DEF <SMT.295D.1653_346>;
  bar (&atmp.40D.1154, D.1153_174);
  #   SFT.256D.1614_188 = V_MUST_DEF <SFT.256D.1614_187>;
  atmp.41D.1155.dtypeD.989 = 265;
  #   SFT.255D.1613_190 = V_MUST_DEF <SFT.255D.1613_189>;
  atmp.41D.1155.dimD.994[0].strideD.990 = 1;
  #   SFT.254D.1612_192 = V_MUST_DEF <SFT.254D.1612_191>;
  atmp.41D.1155.dimD.994[0].lboundD.991 = 0;
  #   SFT.253D.1611_194 = V_MUST_DEF <SFT.253D.1611_193>;
  atmp.41D.1155.dimD.994[0].uboundD.992 = 2;
  #   SFT.258D.1616_196 = V_MUST_DEF <SFT.258D.1616_195>;
  atmp.41D.1155.dataD.987 = &A.42D.1156;
  #   SFT.257D.1615_198 = V_MUST_DEF <SFT.257D.1615_197>;
  atmp.41D.1155.offsetD.988 = 0;
  #   VUSE <SFT.258D.1616_196>;
  D.1211_199 = atmp.41D.1155.dataD.987;
  D.1212_200 = (int4D.2[0:] *) D.1211_199;
  #   SMT.295D.1653_348 = V_MAY_DEF <SMT.295D.1653_347>;
  (*D.1212_200)[0] = 7;
  #   VUSE <SFT.258D.1616_196>;
  D.1211_201 = atmp.41D.1155.dataD.987;
  D.1212_202 = (int4D.2[0:] *) D.1211_201;
  #   SMT.295D.1653_349 = V_MAY_DEF <SMT.295D.1653_348>;
  (*D.1212_202)[1] = 9;
  #   VUSE <SFT.258D.1616_196>;
  D.1211_203 = atmp.41D.1155.dataD.987;
  D.1212_204 = (int4D.2[0:] *) D.1211_203;
  #   SMT.295D.1653_350 = V_MAY_DEF <SMT.295D.1653_349>;
  (*D.1212_204)[2] = 11;
  S.44D.1158_205 = 0;

  # S.44D.1158_12 = PHI <S.44D.1158_205(29), S.44D.1158_218(33)>;
<L19>:;
  if (S.44D.1158_12 > 2) goto L.19L.23; else goto <L20>;

<L20>:;
  #   VUSE <SMT.295D.1653_350>;
  D.1214_206 = atmp.40D.1154.dataD.987;
  D.1215_207 = (int4D.2[0:] *) D.1214_206;
  S.59D.1216_208 = S.44D.1158_12;
  #   VUSE <SMT.295D.1653_350>;
  D.1217_209 = (*D.1215_207)[S.59D.1216_208];
  D.1218_210 = D.1217_209 * 2;
  D.1219_211 = D.1218_210 + 5;
  #   VUSE <SFT.258D.1616_196>;
  D.1211_212 = atmp.41D.1155.dataD.987;
  D.1212_213 = (int4D.2[0:] *) D.1211_212;
  S.59D.1216_214 = S.44D.1158_12;
  #   VUSE <SMT.295D.1653_350>;
  D.1220_215 = (*D.1212_213)[S.59D.1216_214];
  D.1221_216 = D.1219_211 == D.1220_215;
  if (D.1221_216 == 0) goto <L21>; else goto <L22>;

<L21>:;
  test.39D.1150_217 = 0;
  goto <bb 34> (L.19);

<L22>:;
  S.44D.1158_218 = S.44D.1158_12 + 1;
  goto <bb 30> (<L19>);

  # test.39D.1150_11 = PHI <test.39D.1150_173(30), test.39D.1150_217(32)>;
L.19L.23:;
  #   VUSE <SMT.295D.1653_350>;
  D.1214_219 = atmp.40D.1154.dataD.987;
  #   SMT.295D.1653_351 = V_MAY_DEF <SMT.295D.1653_350>;
  _gfortran_internal_free (D.1214_219);
  if (test.39D.1150_11 == 0) goto <L25>; else goto <L26>;

<L25>:;
  #   VUSE <SMT.295D.1653_351>;
  _gfortran_abort ();

<L26>:;
  D.1161_220 = &C.1160;
  #   SMT.295D.1653_352 = V_MAY_DEF <SMT.295D.1653_351>;
  atmp.45D.1162.dtypeD.989 = 265;
  #   SMT.295D.1653_353 = V_MAY_DEF <SMT.295D.1653_352>;
  atmp.45D.1162.dataD.987 = 0B;
  #   SMT.295D.1653_354 = V_MAY_DEF <SMT.295D.1653_353>;
  atmp.45D.1162.offsetD.988 = 0;
  #   SMT.295D.1653_355 = V_MAY_DEF <SMT.295D.1653_354>;
  bar (&atmp.45D.1162, D.1161_220);
  D.1164_227 = &C.1163;
  #   SMT.295D.1653_356 = V_MAY_DEF <SMT.295D.1653_355>;
  atmp.46D.1165.dtypeD.989 = 265;
  #   SMT.295D.1653_357 = V_MAY_DEF <SMT.295D.1653_356>;
  atmp.46D.1165.dataD.987 = 0B;
  #   SMT.295D.1653_358 = V_MAY_DEF <SMT.295D.1653_357>;
  atmp.46D.1165.offsetD.988 = 0;
  #   SMT.295D.1653_359 = V_MAY_DEF <SMT.295D.1653_358>;
  bar (&atmp.46D.1165, D.1164_227);
  #   SMT.295D.1653_360 = V_MAY_DEF <SMT.295D.1653_359>;
  D.1222_234 = _gfortran_size0 (&atmp.46D.1165);
  D.1166_235 = D.1222_234;
  #   VUSE <SMT.295D.1653_360>;
  D.1223_236 = atmp.46D.1165.dataD.987;
  #   SMT.295D.1653_361 = V_MAY_DEF <SMT.295D.1653_360>;
  _gfortran_internal_free (D.1223_236);
  D.1224_237 = D.1166_235 + -1;
  #   VUSE <aD.1124_4>;
  D.1167_238 = aD.1124[D.1224_237];
  S.47D.1168_239 = 0;

  # S.47D.1168_13 = PHI <S.47D.1168_239(36), S.47D.1168_254(38)>;
  # aD.1124_5 = PHI <aD.1124_4(36), aD.1124_253(38)>;
<L27>:;
  #   VUSE <SMT.295D.1653_361>;
  D.1226_241 = atmp.45D.1162.dimD.994[0].uboundD.992;
  #   VUSE <SMT.295D.1653_361>;
  D.1227_243 = atmp.45D.1162.dimD.994[0].lboundD.991;
  D.1228_244 = D.1226_241 - D.1227_243;
  if (S.47D.1168_13 > D.1228_244) goto L.20L.29; else goto <L28>;

<L28>:;
  S.60D.1229_245 = S.47D.1168_13;
  #   VUSE <SMT.295D.1653_361>;
  D.1230_246 = atmp.45D.1162.dataD.987;
  D.1231_247 = (int4D.2[0:] *) D.1230_246;
  S.60D.1229_248 = S.47D.1168_13;
  #   VUSE <SMT.295D.1653_361>;
  D.1232_249 = (*D.1231_247)[S.60D.1229_248];
  D.1233_250 = D.1232_249 + 1;
  D.1234_251 = D.1233_250 * 2;
  D.1235_252 = D.1234_251 + D.1167_238;
  #   aD.1124_253 = V_MAY_DEF <aD.1124_5>;
  aD.1124[S.60D.1229_248] = D.1235_252;
  S.47D.1168_254 = S.47D.1168_13 + 1;
  goto <bb 37> (<L27>);

L.20L.29:;
  #   VUSE <SMT.295D.1653_361>;
  D.1230_255 = atmp.45D.1162.dataD.987;
  #   SMT.295D.1653_362 = V_MAY_DEF <SMT.295D.1653_361>;
  _gfortran_internal_free (D.1230_255);
  test.48D.1170_256 = 1;
  #   SFT.274D.1632_258 = V_MUST_DEF <SFT.274D.1632_257>;
  atmp.49D.1172.dtypeD.989 = 265;
  #   SFT.273D.1631_260 = V_MUST_DEF <SFT.273D.1631_259>;
  atmp.49D.1172.dimD.994[0].strideD.990 = 1;
  #   SFT.272D.1630_262 = V_MUST_DEF <SFT.272D.1630_261>;
  atmp.49D.1172.dimD.994[0].lboundD.991 = 0;
  #   SFT.271D.1629_264 = V_MUST_DEF <SFT.271D.1629_263>;
  atmp.49D.1172.dimD.994[0].uboundD.992 = 2;
  #   SFT.276D.1634_266 = V_MUST_DEF <SFT.276D.1634_265>;
  atmp.49D.1172.dataD.987 = &A.50D.1173;
  #   SFT.275D.1633_268 = V_MUST_DEF <SFT.275D.1633_267>;
  atmp.49D.1172.offsetD.988 = 0;
  #   VUSE <SFT.276D.1634_266>;
  D.1236_269 = atmp.49D.1172.dataD.987;
  D.1237_270 = (int4D.2[0:] *) D.1236_269;
  #   SMT.295D.1653_363 = V_MAY_DEF <SMT.295D.1653_362>;
  (*D.1237_270)[0] = 7;
  #   VUSE <SFT.276D.1634_266>;
  D.1236_271 = atmp.49D.1172.dataD.987;
  D.1237_272 = (int4D.2[0:] *) D.1236_271;
  #   SMT.295D.1653_364 = V_MAY_DEF <SMT.295D.1653_363>;
  (*D.1237_272)[1] = 9;
  #   VUSE <SFT.276D.1634_266>;
  D.1236_273 = atmp.49D.1172.dataD.987;
  D.1237_274 = (int4D.2[0:] *) D.1236_273;
  #   SMT.295D.1653_365 = V_MAY_DEF <SMT.295D.1653_364>;
  (*D.1237_274)[2] = 11;
  S.52D.1175_275 = 0;

  # S.52D.1175_15 = PHI <S.52D.1175_275(39), S.52D.1175_284(43)>;
<L30>:;
  if (S.52D.1175_15 > 2) goto L.22L.34; else goto <L31>;

<L31>:;
  S.61D.1239_276 = S.52D.1175_15;
  #   VUSE <aD.1124_5>;
  D.1240_277 = aD.1124[S.61D.1239_276];
  #   VUSE <SFT.276D.1634_266>;
  D.1236_278 = atmp.49D.1172.dataD.987;
  D.1237_279 = (int4D.2[0:] *) D.1236_278;
  S.61D.1239_280 = S.52D.1175_15;
  #   VUSE <SMT.295D.1653_365>;
  D.1241_281 = (*D.1237_279)[S.61D.1239_280];
  D.1242_282 = D.1240_277 == D.1241_281;
  if (D.1242_282 == 0) goto <L32>; else goto <L33>;

<L32>:;
  test.48D.1170_283 = 0;
  goto <bb 44> (L.22);

<L33>:;
  S.52D.1175_284 = S.52D.1175_15 + 1;
  goto <bb 40> (<L30>);

  # test.48D.1170_14 = PHI <test.48D.1170_256(40), test.48D.1170_283(42)>;
L.22L.34:;
  if (test.48D.1170_14 == 0) goto <L36>; else goto <L37>;

<L36>:;
  #   VUSE <SMT.295D.1653_365>;
  _gfortran_abort ();

<L37>:;
  D.1178_285 = &C.1177;
  #   SMT.295D.1653_366 = V_MAY_DEF <SMT.295D.1653_365>;
  atmp.53D.1179.dtypeD.989 = 265;
  #   SMT.295D.1653_367 = V_MAY_DEF <SMT.295D.1653_366>;
  atmp.53D.1179.dataD.987 = 0B;
  #   SMT.295D.1653_368 = V_MAY_DEF <SMT.295D.1653_367>;
  atmp.53D.1179.offsetD.988 = 0;
  #   SMT.295D.1653_369 = V_MAY_DEF <SMT.295D.1653_368>;
  foo1 (&atmp.53D.1179, D.1178_285);
  #   SMT.295D.1653_370 = V_MAY_DEF <SMT.295D.1653_369>;
  moobar (&atmp.53D.1179);
  #   VUSE <SMT.295D.1653_370>;
  D.1243_292 = atmp.53D.1179.dataD.987;
  #   SMT.295D.1653_371 = V_MAY_DEF <SMT.295D.1653_370>;
  _gfortran_internal_free (D.1243_292);
  D.1182_293 = &C.1181;
  #   SMT.295D.1653_372 = V_MAY_DEF <SMT.295D.1653_371>;
  atmp.54D.1183.dtypeD.989 = 265;
  #   SMT.295D.1653_373 = V_MAY_DEF <SMT.295D.1653_372>;
  atmp.54D.1183.dataD.987 = 0B;
  #   SMT.295D.1653_374 = V_MAY_DEF <SMT.295D.1653_373>;
  atmp.54D.1183.offsetD.988 = 0;
  #   SMT.295D.1653_375 = V_MAY_DEF <SMT.295D.1653_374>;
  foo2 (&atmp.54D.1183, D.1182_293);
  #   SMT.295D.1653_376 = V_MAY_DEF <SMT.295D.1653_375>;
  moobar (&atmp.54D.1183);
  #   VUSE <SMT.295D.1653_376>;
  D.1244_300 = atmp.54D.1183.dataD.987;
  #   SMT.295D.1653_377 = V_MAY_DEF <SMT.295D.1653_376>;
  _gfortran_internal_free (D.1244_300);
  D.1186_301 = &C.1185;
  #   SMT.295D.1653_378 = V_MAY_DEF <SMT.295D.1653_377>;
  atmp.55D.1187.dtypeD.989 = 265;
  #   SMT.295D.1653_379 = V_MAY_DEF <SMT.295D.1653_378>;
  atmp.55D.1187.dataD.987 = 0B;
  #   SMT.295D.1653_380 = V_MAY_DEF <SMT.295D.1653_379>;
  atmp.55D.1187.offsetD.988 = 0;
  #   SMT.295D.1653_381 = V_MAY_DEF <SMT.295D.1653_380>;
  foo3 (&atmp.55D.1187, D.1186_301);
  #   SMT.295D.1653_382 = V_MAY_DEF <SMT.295D.1653_381>;
  moobar (&atmp.55D.1187);
  #   VUSE <SMT.295D.1653_382>;
  D.1245_308 = atmp.55D.1187.dataD.987;
  #   SMT.295D.1653_383 = V_MAY_DEF <SMT.295D.1653_382>;
  _gfortran_internal_free (D.1245_308);
  return;

}



;; Function foo3 (__m__foo3)

Points-to analysis

Constraints:

ANYTHING = &ANYTHING
READONLY = &ANYTHING
INTEGER = &ANYTHING
ESCAPED_VARS = *ESCAPED_VARS
PARM_NOALIAS.366 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.366
ESCAPED_VARS = &PARM_NOALIAS.366.ubound
PARM_NOALIAS.366.ubound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.366.lbound
PARM_NOALIAS.366.lbound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.366.stride
PARM_NOALIAS.366.stride = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.366.dtype
PARM_NOALIAS.366.dtype = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.366.offset
PARM_NOALIAS.366.offset = ESCAPED_VARS
__result = &PARM_NOALIAS.366
PARM_NOALIAS.367 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.367
n = &PARM_NOALIAS.367
NONLOCAL.368 = ESCAPED_VARS
ESCAPED_VARS = &NONLOCAL.368
ESCAPED_VARS = &NONLOCAL.368
ESCAPED_VARS = D.1068_5
D.1069_11 = *__result
HEAP.369 = ESCAPED_VARS
ESCAPED_VARS = &HEAP.369
D.1070_12 = &HEAP.369
ESCAPED_VARS = D.1069_11
*__result = D.1070_12
ESCAPED_VARS = D.1070_12
D.1069_15 = *__result
D.1072_16 = D.1069_15
ESCAPED_VARS = i_1

Collapsing static cycles and doing variable substitution:

Solving graph:

Points-to sets

NULL = { }
ANYTHING = { ANYTHING }
READONLY = { ANYTHING }
INTEGER = { ANYTHING }
ESCAPED_VARS = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
__result = { PARM_NOALIAS.366 }
PARM_NOALIAS.366 = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
PARM_NOALIAS.366.ubound = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
PARM_NOALIAS.366.lbound = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
PARM_NOALIAS.366.stride = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
PARM_NOALIAS.366.dtype = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
PARM_NOALIAS.366.offset = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
n = { PARM_NOALIAS.367 }
PARM_NOALIAS.367 = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
NONLOCAL.368 = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
D.1068_5 = { }
D.1069_11 = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
D.1070_12 = { HEAP.369 }
HEAP.369 = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
D.1069_15 = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
D.1072_16 = { PARM_NOALIAS.366 PARM_NOALIAS.366.ubound PARM_NOALIAS.366.lbound PARM_NOALIAS.366.stride PARM_NOALIAS.366.dtype PARM_NOALIAS.366.offset PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 }
i_1 = { }

foo3: Total number of aliased vops: 0

Referenced variables in foo3: 24

Variable: HEAP.369D.1798, UID 1798, voidD.16 *, is aliased, is addressable, is global, call clobbered

Variable: SMT.370D.1799, UID 1799, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }

Variable: NMT.371D.1800, UID 1800, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.366D.1795 }

Variable: NMT.372D.1801, UID 1801, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.367D.1796 }

Variable: __resultD.1058, UID 1058, struct array1_int4 &, symbol memory tag: SMT.370D.1799, default def: __resultD.1058_3

Variable: nD.1059, UID 1059, int4D.2 &, symbol memory tag: SMT.370D.1799, default def: nD.1059_4

Variable: iD.1060, UID 1060, int4D.2

Variable: D.1061, UID 1061, int4D.2

Variable: size.13D.1062, UID 1062, int4D.2

Variable: D.1063, UID 1063, logical4D.6

Variable: D.1064, UID 1064, int4D.2

Variable: D.1067, UID 1067, logical4D.6

Variable: D.1068, UID 1068, int4D.2

Variable: D.1069, UID 1069, voidD.16 *, symbol memory tag: SMT.370D.1799

Variable: D.1070, UID 1070, voidD.16 *

Variable: D.1072, UID 1072, int4D.2[0:] *, symbol memory tag: SMT.370D.1799

Variable: D.1073, UID 1073, int4D.2

Variable: D.1074, UID 1074, int4D.2

Variable: D.1075, UID 1075, int4D.2

Variable: D.1076, UID 1076, int4D.2

Variable: NMT.373D.1802, UID 1802, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }

Variable: PARM_NOALIAS.366D.1795, UID 1795, struct array1_int4, is aliased, is addressable, is global, call clobbered

Variable: PARM_NOALIAS.367D.1796, UID 1796, int4D.2, is aliased, is addressable, is global, call clobbered

Variable: NONLOCAL.368D.1797, UID 1797, voidD.16, is aliased, is addressable, is global, call clobbered



Pointed-to sets for pointers in foo3

__resultD.1058_3, name memory tag: NMT.371D.1800, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.366D.1795 }
nD.1059_4, name memory tag: NMT.372D.1801, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.367D.1796 }
D.1069_11, name memory tag: NMT.373D.1802, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }
D.1070_12, its value escapes, points-to vars: { HEAP.369D.1798 }
D.1069_15, points-to vars: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }
D.1072_16, name memory tag: NMT.373D.1802, is dereferenced, points-to vars: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }


Flow-insensitive alias information for foo3

Aliased symbols

HEAP.369D.1798, UID 1798, voidD.16 *, is aliased, is addressable, is global, call clobbered
SMT.370D.1799, UID 1799, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }
NMT.371D.1800, UID 1800, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.366D.1795 }
NMT.372D.1801, UID 1801, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.367D.1796 }
NMT.373D.1802, UID 1802, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }
PARM_NOALIAS.366D.1795, UID 1795, struct array1_int4, is aliased, is addressable, is global, call clobbered
PARM_NOALIAS.367D.1796, UID 1796, int4D.2, is aliased, is addressable, is global, call clobbered
NONLOCAL.368D.1797, UID 1797, voidD.16, is aliased, is addressable, is global, call clobbered

Dereferenced pointers

__resultD.1058, UID 1058, struct array1_int4 &, symbol memory tag: SMT.370D.1799, default def: __resultD.1058_3
nD.1059, UID 1059, int4D.2 &, symbol memory tag: SMT.370D.1799, default def: nD.1059_4
D.1069, UID 1069, voidD.16 *, symbol memory tag: SMT.370D.1799
D.1072, UID 1072, int4D.2[0:] *, symbol memory tag: SMT.370D.1799

Symbol memory tags

SMT.370D.1799, UID 1799, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }


Flow-sensitive alias information for foo3

SSA_NAME pointers

__resultD.1058_3, name memory tag: NMT.371D.1800, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.366D.1795 }
nD.1059_4, name memory tag: NMT.372D.1801, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.367D.1796 }
D.1069_11, name memory tag: NMT.373D.1802, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }
D.1072_16, name memory tag: NMT.373D.1802, is dereferenced, points-to vars: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }

Name memory tags

NMT.371D.1800, UID 1800, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.366D.1795 }
NMT.372D.1801, UID 1801, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.367D.1796 }
NMT.373D.1802, UID 1802, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.366D.1795 PARM_NOALIAS.367D.1796 NONLOCAL.368D.1797 HEAP.369D.1798 }



Symbols to be put in SSA form

PARM_NOALIAS.366 PARM_NOALIAS.367 NONLOCAL.368 HEAP.369 SMT.370 NMT.371 NMT.372 NMT.373 

Incremental SSA update started at block: 0

Number of blocks in CFG: 8
Number of blocks to update: 7 ( 88%)



foo3 (__resultD.1058, nD.1059)
{
  logical4D.6 D.1067;
  int4D.2 D.1064;
  int4D.2 D.1061;
  int4D.2 size.13D.1062;
  logical4D.6 D.1063;
  int4D.2 iD.1060;
  int4D.2 D.1076;
  int4D.2 D.1075;
  int4D.2 D.1074;
  int4D.2 D.1073;
  int4D.2[0:] * D.1072;
  voidD.16 * D.1070;
  voidD.16 * D.1069;
  int4D.2 D.1068;

<bb 2>:
  #   PARM_NOALIAS.366D.1795_28 = V_MAY_DEF <PARM_NOALIAS.366D.1795_27>;
  __resultD.1058_3->dtypeD.989 = 265;
  #   PARM_NOALIAS.366D.1795_29 = V_MAY_DEF <PARM_NOALIAS.366D.1795_28>;
  __resultD.1058_3->dimD.994[0].lboundD.991 = 1;
  #   VUSE <PARM_NOALIAS.367D.1796_30>;
  D.1068_5 = *nD.1059_4;
  #   PARM_NOALIAS.366D.1795_31 = V_MAY_DEF <PARM_NOALIAS.366D.1795_29>;
  __resultD.1058_3->dimD.994[0].uboundD.992 = D.1068_5;
  #   PARM_NOALIAS.366D.1795_32 = V_MAY_DEF <PARM_NOALIAS.366D.1795_31>;
  __resultD.1058_3->dimD.994[0].strideD.990 = 1;
  #   VUSE <PARM_NOALIAS.367D.1796_30>;
  D.1061_6 = *nD.1059_4;
  #   VUSE <PARM_NOALIAS.367D.1796_30>;
  D.1068_7 = *nD.1059_4;
  D.1063_8 = D.1068_7 <= 0;
  if (D.1063_8) goto <L0>; else goto <L1>;

<L0>:;
  size.13D.1062_9 = 0;
  goto <bb 5> (<L2>);

<L1>:;
  size.13D.1062_10 = D.1061_6 * 4;

  # size.13D.1062_2 = PHI <size.13D.1062_9(3), size.13D.1062_10(4)>;
<L2>:;
  #   VUSE <PARM_NOALIAS.366D.1795_32>;
  D.1069_11 = __resultD.1058_3->dataD.987;
  #   PARM_NOALIAS.366D.1795_35 = V_MAY_DEF <PARM_NOALIAS.366D.1795_32>;
  #   PARM_NOALIAS.367D.1796_36 = V_MAY_DEF <PARM_NOALIAS.367D.1796_30>;
  #   NONLOCAL.368D.1797_37 = V_MAY_DEF <NONLOCAL.368D.1797_33>;
  #   HEAP.369D.1798_38 = V_MAY_DEF <HEAP.369D.1798_34>;
  D.1070_12 = _gfortran_allocate_array (D.1069_11, size.13D.1062_2, 0);
  #   PARM_NOALIAS.366D.1795_39 = V_MAY_DEF <PARM_NOALIAS.366D.1795_35>;
  __resultD.1058_3->dataD.987 = D.1070_12;
  #   PARM_NOALIAS.366D.1795_40 = V_MAY_DEF <PARM_NOALIAS.366D.1795_39>;
  __resultD.1058_3->offsetD.988 = -1;
  #   VUSE <PARM_NOALIAS.367D.1796_36>;
  D.1064_13 = *nD.1059_4;
  iD.1060_14 = 1;
  if (iD.1060_14 <= D.1064_13) goto <L3>; else goto <L7>;

  # HEAP.369D.1798_26 = PHI <HEAP.369D.1798_38(5), HEAP.369D.1798_44(6)>;
  # NONLOCAL.368D.1797_25 = PHI <NONLOCAL.368D.1797_37(5), NONLOCAL.368D.1797_43(6)>;
  # PARM_NOALIAS.367D.1796_24 = PHI <PARM_NOALIAS.367D.1796_36(5), PARM_NOALIAS.367D.1796_42(6)>;
  # PARM_NOALIAS.366D.1795_23 = PHI <PARM_NOALIAS.366D.1795_40(5), PARM_NOALIAS.366D.1795_41(6)>;
  # iD.1060_1 = PHI <iD.1060_14(5), iD.1060_22(6)>;
<L3>:;
  #   VUSE <PARM_NOALIAS.366D.1795_23>;
  D.1069_15 = __resultD.1058_3->dataD.987;
  D.1072_16 = (int4D.2[0:] *) D.1069_15;
  #   VUSE <PARM_NOALIAS.366D.1795_23>;
  D.1073_17 = __resultD.1058_3->dimD.994[0].strideD.990;
  D.1074_18 = D.1073_17 * iD.1060_1;
  #   VUSE <PARM_NOALIAS.366D.1795_23>;
  D.1075_19 = __resultD.1058_3->offsetD.988;
  D.1076_20 = D.1074_18 + D.1075_19;
  #   PARM_NOALIAS.366D.1795_41 = V_MAY_DEF <PARM_NOALIAS.366D.1795_23>;
  #   PARM_NOALIAS.367D.1796_42 = V_MAY_DEF <PARM_NOALIAS.367D.1796_24>;
  #   NONLOCAL.368D.1797_43 = V_MAY_DEF <NONLOCAL.368D.1797_25>;
  #   HEAP.369D.1798_44 = V_MAY_DEF <HEAP.369D.1798_26>;
  (*D.1072_16)[D.1076_20] = iD.1060_1;
  D.1067_21 = iD.1060_1 == D.1064_13;
  iD.1060_22 = iD.1060_1 + 1;
  if (D.1067_21) goto <L7>; else goto <L3>;

<L7>:;
  return;

}



;; Function foo2 (foo2_)

Points-to analysis

Constraints:

ANYTHING = &ANYTHING
READONLY = &ANYTHING
INTEGER = &ANYTHING
ESCAPED_VARS = *ESCAPED_VARS
PARM_NOALIAS.408 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.408
ESCAPED_VARS = &PARM_NOALIAS.408.ubound
PARM_NOALIAS.408.ubound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.408.lbound
PARM_NOALIAS.408.lbound = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.408.stride
PARM_NOALIAS.408.stride = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.408.dtype
PARM_NOALIAS.408.dtype = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.408.offset
PARM_NOALIAS.408.offset = ESCAPED_VARS
__result = &PARM_NOALIAS.408
PARM_NOALIAS.409 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.409
n = &PARM_NOALIAS.409
NONLOCAL.410 = ESCAPED_VARS
ESCAPED_VARS = &NONLOCAL.410
ESCAPED_VARS = &NONLOCAL.410
ESCAPED_VARS = D.1047_5
D.1048_11 = *__result
HEAP.411 = ESCAPED_VARS
ESCAPED_VARS = &HEAP.411
D.1049_12 = &HEAP.411
ESCAPED_VARS = D.1048_11
*__result = D.1049_12
ESCAPED_VARS = D.1049_12
D.1048_15 = *__result
D.1051_16 = D.1048_15
ESCAPED_VARS = i_1

Collapsing static cycles and doing variable substitution:

Solving graph:

Points-to sets

NULL = { }
ANYTHING = { ANYTHING }
READONLY = { ANYTHING }
INTEGER = { ANYTHING }
ESCAPED_VARS = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
__result = { PARM_NOALIAS.408 }
PARM_NOALIAS.408 = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
PARM_NOALIAS.408.ubound = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
PARM_NOALIAS.408.lbound = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
PARM_NOALIAS.408.stride = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
PARM_NOALIAS.408.dtype = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
PARM_NOALIAS.408.offset = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
n = { PARM_NOALIAS.409 }
PARM_NOALIAS.409 = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
NONLOCAL.410 = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
D.1047_5 = { }
D.1048_11 = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
D.1049_12 = { HEAP.411 }
HEAP.411 = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
D.1048_15 = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
D.1051_16 = { PARM_NOALIAS.408 PARM_NOALIAS.408.ubound PARM_NOALIAS.408.lbound PARM_NOALIAS.408.stride PARM_NOALIAS.408.dtype PARM_NOALIAS.408.offset PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 }
i_1 = { }

foo2: Total number of aliased vops: 0

Referenced variables in foo2: 24

Variable: D.1054, UID 1054, int4D.2

Variable: D.1055, UID 1055, int4D.2

Variable: NMT.415D.1857, UID 1857, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }

Variable: NMT.413D.1855, UID 1855, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.408D.1850 }

Variable: SMT.412D.1854, UID 1854, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }

Variable: HEAP.411D.1853, UID 1853, voidD.16 *, is aliased, is addressable, is global, call clobbered

Variable: NONLOCAL.410D.1852, UID 1852, voidD.16, is aliased, is addressable, is global, call clobbered

Variable: __resultD.1037, UID 1037, struct array1_int4 &, symbol memory tag: SMT.412D.1854, default def: __resultD.1037_3

Variable: nD.1038, UID 1038, int4D.2 &, symbol memory tag: SMT.412D.1854, default def: nD.1038_4

Variable: iD.1039, UID 1039, int4D.2

Variable: D.1040, UID 1040, int4D.2

Variable: size.12D.1041, UID 1041, int4D.2

Variable: D.1042, UID 1042, logical4D.6

Variable: D.1043, UID 1043, int4D.2

Variable: PARM_NOALIAS.408D.1850, UID 1850, struct array1_int4, is aliased, is addressable, is global, call clobbered

Variable: PARM_NOALIAS.409D.1851, UID 1851, int4D.2, is aliased, is addressable, is global, call clobbered

Variable: D.1046, UID 1046, logical4D.6

Variable: D.1047, UID 1047, int4D.2

Variable: D.1048, UID 1048, voidD.16 *, symbol memory tag: SMT.412D.1854

Variable: D.1049, UID 1049, voidD.16 *

Variable: NMT.414D.1856, UID 1856, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.409D.1851 }

Variable: D.1051, UID 1051, int4D.2[0:] *, symbol memory tag: SMT.412D.1854

Variable: D.1052, UID 1052, int4D.2

Variable: D.1053, UID 1053, int4D.2



Pointed-to sets for pointers in foo2

__resultD.1037_3, name memory tag: NMT.413D.1855, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.408D.1850 }
nD.1038_4, name memory tag: NMT.414D.1856, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.409D.1851 }
D.1048_11, name memory tag: NMT.415D.1857, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }
D.1049_12, its value escapes, points-to vars: { HEAP.411D.1853 }
D.1048_15, points-to vars: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }
D.1051_16, name memory tag: NMT.415D.1857, is dereferenced, points-to vars: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }


Flow-insensitive alias information for foo2

Aliased symbols

NMT.415D.1857, UID 1857, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }
NMT.413D.1855, UID 1855, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.408D.1850 }
SMT.412D.1854, UID 1854, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }
HEAP.411D.1853, UID 1853, voidD.16 *, is aliased, is addressable, is global, call clobbered
NONLOCAL.410D.1852, UID 1852, voidD.16, is aliased, is addressable, is global, call clobbered
PARM_NOALIAS.408D.1850, UID 1850, struct array1_int4, is aliased, is addressable, is global, call clobbered
PARM_NOALIAS.409D.1851, UID 1851, int4D.2, is aliased, is addressable, is global, call clobbered
NMT.414D.1856, UID 1856, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.409D.1851 }

Dereferenced pointers

__resultD.1037, UID 1037, struct array1_int4 &, symbol memory tag: SMT.412D.1854, default def: __resultD.1037_3
nD.1038, UID 1038, int4D.2 &, symbol memory tag: SMT.412D.1854, default def: nD.1038_4
D.1048, UID 1048, voidD.16 *, symbol memory tag: SMT.412D.1854
D.1051, UID 1051, int4D.2[0:] *, symbol memory tag: SMT.412D.1854

Symbol memory tags

SMT.412D.1854, UID 1854, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }


Flow-sensitive alias information for foo2

SSA_NAME pointers

__resultD.1037_3, name memory tag: NMT.413D.1855, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.408D.1850 }
nD.1038_4, name memory tag: NMT.414D.1856, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.409D.1851 }
D.1048_11, name memory tag: NMT.415D.1857, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }
D.1051_16, name memory tag: NMT.415D.1857, is dereferenced, points-to vars: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }

Name memory tags

NMT.415D.1857, UID 1857, voidD.16, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.408D.1850 PARM_NOALIAS.409D.1851 NONLOCAL.410D.1852 HEAP.411D.1853 }
NMT.413D.1855, UID 1855, struct array1_int4, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.408D.1850 }
NMT.414D.1856, UID 1856, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.409D.1851 }



Symbols to be put in SSA form

PARM_NOALIAS.408 PARM_NOALIAS.409 NONLOCAL.410 HEAP.411 SMT.412 NMT.413 NMT.414 NMT.415 

Incremental SSA update started at block: 0

Number of blocks in CFG: 8
Number of blocks to update: 7 ( 88%)



foo2 (__resultD.1037, nD.1038)
{
  logical4D.6 D.1046;
  int4D.2 D.1043;
  int4D.2 D.1040;
  int4D.2 size.12D.1041;
  logical4D.6 D.1042;
  int4D.2 iD.1039;
  int4D.2 D.1055;
  int4D.2 D.1054;
  int4D.2 D.1053;
  int4D.2 D.1052;
  int4D.2[0:] * D.1051;
  voidD.16 * D.1049;
  voidD.16 * D.1048;
  int4D.2 D.1047;

<bb 2>:
  #   PARM_NOALIAS.408D.1850_28 = V_MAY_DEF <PARM_NOALIAS.408D.1850_27>;
  __resultD.1037_3->dtypeD.989 = 265;
  #   PARM_NOALIAS.408D.1850_29 = V_MAY_DEF <PARM_NOALIAS.408D.1850_28>;
  __resultD.1037_3->dimD.994[0].lboundD.991 = 1;
  #   VUSE <PARM_NOALIAS.409D.1851_30>;
  D.1047_5 = *nD.1038_4;
  #   PARM_NOALIAS.408D.1850_31 = V_MAY_DEF <PARM_NOALIAS.408D.1850_29>;
  __resultD.1037_3->dimD.994[0].uboundD.992 = D.1047_5;
  #   PARM_NOALIAS.408D.1850_32 = V_MAY_DEF <PARM_NOALIAS.408D.1850_31>;
  __resultD.1037_3->dimD.994[0].strideD.990 = 1;
  #   VUSE <PARM_NOALIAS.409D.1851_30>;
  D.1040_6 = *nD.1038_4;
  #   VUSE <PARM_NOALIAS.409D.1851_30>;
  D.1047_7 = *nD.1038_4;
  D.1042_8 = D.1047_7 <= 0;
  if (D.1042_8) goto <L0>; else goto <L1>;

<L0>:;
  size.12D.1041_9 = 0;
  goto <bb 5> (<L2>);

<L1>:;
  size.12D.1041_10 = D.1040_6 * 4;

  # size.12D.1041_2 = PHI <size.12D.1041_9(3), size.12D.1041_10(4)>;
<L2>:;
  #   VUSE <PARM_NOALIAS.408D.1850_32>;
  D.1048_11 = __resultD.1037_3->dataD.987;
  #   PARM_NOALIAS.408D.1850_35 = V_MAY_DEF <PARM_NOALIAS.408D.1850_32>;
  #   PARM_NOALIAS.409D.1851_36 = V_MAY_DEF <PARM_NOALIAS.409D.1851_30>;
  #   NONLOCAL.410D.1852_37 = V_MAY_DEF <NONLOCAL.410D.1852_33>;
  #   HEAP.411D.1853_38 = V_MAY_DEF <HEAP.411D.1853_34>;
  D.1049_12 = _gfortran_allocate_array (D.1048_11, size.12D.1041_2, 0);
  #   PARM_NOALIAS.408D.1850_39 = V_MAY_DEF <PARM_NOALIAS.408D.1850_35>;
  __resultD.1037_3->dataD.987 = D.1049_12;
  #   PARM_NOALIAS.408D.1850_40 = V_MAY_DEF <PARM_NOALIAS.408D.1850_39>;
  __resultD.1037_3->offsetD.988 = -1;
  #   VUSE <PARM_NOALIAS.409D.1851_36>;
  D.1043_13 = *nD.1038_4;
  iD.1039_14 = 1;
  if (iD.1039_14 <= D.1043_13) goto <L3>; else goto <L7>;

  # HEAP.411D.1853_26 = PHI <HEAP.411D.1853_38(5), HEAP.411D.1853_44(6)>;
  # NONLOCAL.410D.1852_25 = PHI <NONLOCAL.410D.1852_37(5), NONLOCAL.410D.1852_43(6)>;
  # PARM_NOALIAS.409D.1851_24 = PHI <PARM_NOALIAS.409D.1851_36(5), PARM_NOALIAS.409D.1851_42(6)>;
  # PARM_NOALIAS.408D.1850_23 = PHI <PARM_NOALIAS.408D.1850_40(5), PARM_NOALIAS.408D.1850_41(6)>;
  # iD.1039_1 = PHI <iD.1039_14(5), iD.1039_22(6)>;
<L3>:;
  #   VUSE <PARM_NOALIAS.408D.1850_23>;
  D.1048_15 = __resultD.1037_3->dataD.987;
  D.1051_16 = (int4D.2[0:] *) D.1048_15;
  #   VUSE <PARM_NOALIAS.408D.1850_23>;
  D.1052_17 = __resultD.1037_3->dimD.994[0].strideD.990;
  D.1053_18 = D.1052_17 * iD.1039_1;
  #   VUSE <PARM_NOALIAS.408D.1850_23>;
  D.1054_19 = __resultD.1037_3->offsetD.988;
  D.1055_20 = D.1053_18 + D.1054_19;
  #   PARM_NOALIAS.408D.1850_41 = V_MAY_DEF <PARM_NOALIAS.408D.1850_23>;
  #   PARM_NOALIAS.409D.1851_42 = V_MAY_DEF <PARM_NOALIAS.409D.1851_24>;
  #   NONLOCAL.410D.1852_43 = V_MAY_DEF <NONLOCAL.410D.1852_25>;
  #   HEAP.411D.1853_44 = V_MAY_DEF <HEAP.411D.1853_26>;
  (*D.1051_16)[D.1055_20] = iD.1039_1;
  D.1046_21 = iD.1039_1 == D.1043_13;
  iD.1039_22 = iD.1039_1 + 1;
  if (D.1046_21) goto <L7>; else goto <L3>;

<L7>:;
  return;

}


-------------- next part --------------
MAIN__ ()
{
  voidD.16 * D.1035;
  int4D.2[0:] * D.1036;
  int4D.2 S.10D.1038;
  int4D.2 D.1039;
  int4D.2 D.1040;
  int4D.2 D.1042;
  int4D.2 D.1043;
  int4D.2 D.1044;
  int4D.2 D.1045;
  int4D.2 D.1047;
  int4D.2 D.1048;
  int4D.2 D.1049;
  int4D.2 D.1051;
  int4D.2 D.1052;
  int4D.2 D.1053;
  int4D.2 D.1054;
  int4D.2 D.1055;
  int4D.2 D.1056;
  int4D.2 D.1058;
  int4D.2 D.1059;
  int4D.2 D.1060;
  int4D.2 D.1061;
  int4D.2 D.1063;
  int4D.2 D.1064;
  int4D.2 D.1065;
  int4D.2 D.1067;
  int4D.2 D.1068;
  int4D.2 D.1069;
  int4D.2 D.1070;
  int4D.2 D.1071;
  int4D.2 cntD.992;
  int4D.2 aD.994[5];
  int4D.2 bD.995[3];
  static int4D.2 barD.989 (int4D.2 &);

  _gfortran_set_std (70, 127, 0);
  {
    int4D.2 A.1D.1006[3];
    struct array1_int4 atmp.0D.1005;

    atmp.0D.1005.dtypeD.998 = 265;
    atmp.0D.1005.dimD.1003[0].strideD.999 = 1;
    atmp.0D.1005.dimD.1003[0].lboundD.1000 = 0;
    atmp.0D.1005.dimD.1003[0].uboundD.1001 = 2;
    atmp.0D.1005.dataD.996 = &A.1D.1006;
    atmp.0D.1005.offsetD.997 = 0;
    D.1035 = atmp.0D.1005.dataD.996;
    D.1036 = (int4D.2[0:] *) D.1035;
    (*D.1036)[0] = 1;
    D.1035 = atmp.0D.1005.dataD.996;
    D.1036 = (int4D.2[0:] *) D.1035;
    (*D.1036)[1] = 2;
    D.1035 = atmp.0D.1005.dataD.996;
    D.1036 = (int4D.2[0:] *) D.1035;
    (*D.1036)[2] = 3;
    {
      int4D.2 S.3D.1008;

      S.3D.1008 = 0;
      <D1037>:;
      if (S.3D.1008 > 2)
        {
          goto L.1D.1009;
        }
      else
        {
          
        }
      S.10D.1038 = S.3D.1008;
      D.1035 = atmp.0D.1005.dataD.996;
      D.1036 = (int4D.2[0:] *) D.1035;
      S.10D.1038 = S.3D.1008;
      D.1039 = (*D.1036)[S.10D.1038];
      bD.995[S.10D.1038] = D.1039;
      S.3D.1008 = S.3D.1008 + 1;
      goto <D1037>;
      L.1D.1009:;
    }
  }
  cntD.992 = 0;
  {
    int4D.2 D.1012;
    int4D.2 D.1011;
    static int4D.2 C.1010 = 1;

    D.1040 = bar (&C.1010);
    D.1011 = D.1040;
    D.1012 = D.1011 + -1;
    {
      int4D.2 S.4D.1013;

      S.4D.1013 = 1;
      <D1041>:;
      if (S.4D.1013 > 3)
        {
          goto L.2D.1014;
        }
      else
        {
          
        }
      D.1042 = S.4D.1013 + D.1012;
      D.1043 = D.1042 + -1;
      D.1044 = S.4D.1013 + -1;
      D.1045 = bD.995[D.1044];
      aD.994[D.1043] = D.1045;
      S.4D.1013 = S.4D.1013 + 1;
      goto <D1041>;
      L.2D.1014:;
    }
  }
  if (cntD.992 != 1)
    {
      _gfortran_abort ();
    }
  else
    {
      
    }
  cntD.992 = 0;
  {
    int4D.2 S.5D.1016;

    S.5D.1016 = 1;
    <D1046>:;
    if (S.5D.1016 > 3)
      {
        goto L.3D.1017;
      }
    else
      {
        
      }
    D.1047 = S.5D.1016 + -1;
    D.1047 = S.5D.1016 + -1;
    D.1048 = bD.995[D.1047];
    aD.994[D.1047] = D.1048;
    S.5D.1016 = S.5D.1016 + 1;
    goto <D1046>;
    L.3D.1017:;
  }
  if (cntD.992 != 1)
    {
      _gfortran_abort ();
    }
  else
    {
      
    }
  cntD.992 = 0;
  {
    int4D.2 D.1020;
    int4D.2 D.1019;
    static int4D.2 C.1018 = 1;

    D.1049 = bar (&C.1018);
    D.1019 = D.1049;
    D.1020 = 1 - D.1019;
    {
      int4D.2 S.6D.1021;

      S.6D.1021 = 1;
      <D1050>:;
      if (S.6D.1021 > 3)
        {
          goto L.4D.1022;
        }
      else
        {
          
        }
      D.1051 = S.6D.1021 * D.1019;
      D.1052 = D.1051 + D.1020;
      D.1053 = D.1052 + -1;
      D.1054 = S.6D.1021 + -1;
      D.1055 = bD.995[D.1054];
      aD.994[D.1053] = D.1055;
      S.6D.1021 = S.6D.1021 + 1;
      goto <D1050>;
      L.4D.1022:;
    }
  }
  if (cntD.992 != 1)
    {
      _gfortran_abort ();
    }
  else
    {
      
    }
  cntD.992 = 0;
  {
    int4D.2 D.1025;
    int4D.2 D.1024;
    static int4D.2 C.1023 = 1;

    D.1056 = bar (&C.1023);
    D.1024 = D.1056;
    D.1025 = D.1024 + -1;
    {
      int4D.2 S.7D.1026;

      S.7D.1026 = 1;
      <D1057>:;
      if (S.7D.1026 > 3)
        {
          goto L.5D.1027;
        }
      else
        {
          
        }
      D.1058 = S.7D.1026 + -1;
      D.1059 = S.7D.1026 + D.1025;
      D.1060 = D.1059 + -1;
      D.1061 = bD.995[D.1060];
      aD.994[D.1058] = D.1061;
      S.7D.1026 = S.7D.1026 + 1;
      goto <D1057>;
      L.5D.1027:;
    }
  }
  if (cntD.992 != 1)
    {
      _gfortran_abort ();
    }
  else
    {
      
    }
  cntD.992 = 0;
  {
    int4D.2 S.8D.1028;

    S.8D.1028 = 1;
    <D1062>:;
    if (S.8D.1028 > 3)
      {
        goto L.6D.1029;
      }
    else
      {
        
      }
    D.1063 = S.8D.1028 + -1;
    D.1063 = S.8D.1028 + -1;
    D.1064 = bD.995[D.1063];
    aD.994[D.1063] = D.1064;
    S.8D.1028 = S.8D.1028 + 1;
    goto <D1062>;
    L.6D.1029:;
  }
  if (cntD.992 != 1)
    {
      _gfortran_abort ();
    }
  else
    {
      
    }
  cntD.992 = 0;
  {
    int4D.2 D.1032;
    int4D.2 D.1031;
    static int4D.2 C.1030 = 1;

    D.1065 = bar (&C.1030);
    D.1031 = D.1065;
    D.1032 = 1 - D.1031;
    {
      int4D.2 S.9D.1033;

      S.9D.1033 = 1;
      <D1066>:;
      if (S.9D.1033 > 3)
        {
          goto L.7D.1034;
        }
      else
        {
          
        }
      D.1067 = S.9D.1033 + -1;
      D.1068 = S.9D.1033 * D.1031;
      D.1069 = D.1068 + D.1032;
      D.1070 = D.1069 + -1;
      D.1071 = bD.995[D.1070];
      aD.994[D.1067] = D.1071;
      S.9D.1033 = S.9D.1033 + 1;
      goto <D1066>;
      L.7D.1034:;
    }
  }
  if (cntD.992 != 1)
    {
      _gfortran_abort ();
    }
  else
    {
      
    }
}


bar (n)
{
  int4D.2 D.1072;
  int4D.2 D.1073;
  int4D.2 __result_barD.993;

  cntD.992 = cntD.992 + 1;
  D.1072 = *nD.991;
  __result_barD.993 = D.1072;
  D.1073 = __result_barD.993;
  return D.1073;
}


-------------- next part --------------

;; Function bar (bar.989)

Points-to analysis

Constraints:

ANYTHING = &ANYTHING
READONLY = &ANYTHING
INTEGER = &ANYTHING
ESCAPED_VARS = *ESCAPED_VARS
PARM_NOALIAS.18 = ESCAPED_VARS
ESCAPED_VARS = &PARM_NOALIAS.18
n = &PARM_NOALIAS.18
NONLOCAL.19 = ESCAPED_VARS
ESCAPED_VARS = &NONLOCAL.19
ESCAPED_VARS = &NONLOCAL.19
ESCAPED_VARS = D.1079_3
ESCAPED_VARS = D.1072_5
ESCAPED_VARS = D.1073_8

Collapsing static cycles and doing variable substitution:

Solving graph:

Points-to sets

NULL = { }
ANYTHING = { ANYTHING }
READONLY = { ANYTHING }
INTEGER = { ANYTHING }
ESCAPED_VARS = { PARM_NOALIAS.18 NONLOCAL.19 }
n = { PARM_NOALIAS.18 }
PARM_NOALIAS.18 = { PARM_NOALIAS.18 NONLOCAL.19 }
NONLOCAL.19 = { PARM_NOALIAS.18 NONLOCAL.19 }
D.1079_3 = { }
D.1072_5 = { }
D.1073_8 = { }

bar: Total number of aliased vops: 0

Referenced variables in bar: 12

Variable: __result_barD.993, UID 993, int4D.2, default def: __result_barD.993_6

Variable: SMT.20D.1114, UID 1114, struct FRAME.MAIN__, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.18D.1112 }

Variable: NMT.21D.1115, UID 1115, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.18D.1112 }

Variable: D.1072, UID 1072, int4D.2

Variable: D.1073, UID 1073, int4D.2

Variable: CHAIN.12D.1075, UID 1075, struct FRAME.MAIN__ *, symbol memory tag: SMT.20D.1114, default def: CHAIN.12D.1075_1

Variable: D.1078, UID 1078, int4D.2

Variable: D.1079, UID 1079, int4D.2

Variable: PARM_NOALIAS.18D.1112, UID 1112, int4D.2, is aliased, is addressable, is global, call clobbered

Variable: NONLOCAL.19D.1113, UID 1113, voidD.16, is global, call clobbered

Variable: <retval>, UID 990, int4D.2

Variable: nD.991, UID 991, int4D.2 &, symbol memory tag: SMT.20D.1114, default def: nD.991_4



Pointed-to sets for pointers in bar

CHAIN.12D.1075_1, is dereferenced, its value escapes, points-to anything
nD.991_4, name memory tag: NMT.21D.1115, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.18D.1112 }


Flow-insensitive alias information for bar

Aliased symbols

SMT.20D.1114, UID 1114, struct FRAME.MAIN__, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.18D.1112 }
NMT.21D.1115, UID 1115, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.18D.1112 }
PARM_NOALIAS.18D.1112, UID 1112, int4D.2, is aliased, is addressable, is global, call clobbered
NONLOCAL.19D.1113, UID 1113, voidD.16, is global, call clobbered

Dereferenced pointers

CHAIN.12D.1075, UID 1075, struct FRAME.MAIN__ *, symbol memory tag: SMT.20D.1114, default def: CHAIN.12D.1075_1
nD.991, UID 991, int4D.2 &, symbol memory tag: SMT.20D.1114, default def: nD.991_4

Symbol memory tags

SMT.20D.1114, UID 1114, struct FRAME.MAIN__, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.18D.1112 }


Flow-sensitive alias information for bar

SSA_NAME pointers

nD.991_4, name memory tag: NMT.21D.1115, is dereferenced, its value escapes, points-to vars: { PARM_NOALIAS.18D.1112 }

Name memory tags

NMT.21D.1115, UID 1115, int4D.2, is addressable, is global, call clobbered, may aliases: { PARM_NOALIAS.18D.1112 }



Symbols to be put in SSA form

__result_bar PARM_NOALIAS.18 NONLOCAL.19 SMT.20 NMT.21 

Incremental SSA update started at block: 0

Number of blocks in CFG: 3
Number of blocks to update: 2 ( 67%)



bar (nD.991)
{
  int4D.2 __result_barD.993;
  int4D.2 D.1073;
  int4D.2 D.1072;
  int4D.2 D.1079;
  int4D.2 D.1078;

<bb 2>:
  #   VUSE <PARM_NOALIAS.18D.1112_10>;
  D.1078_2 = CHAIN.12D.1075_1->cntD.1076;
  D.1079_3 = D.1078_2 + 1;
  #   PARM_NOALIAS.18D.1112_11 = V_MAY_DEF <PARM_NOALIAS.18D.1112_10>;
  CHAIN.12D.1075_1->cntD.1076 = D.1079_3;
  #   VUSE <PARM_NOALIAS.18D.1112_11>;
  D.1072_5 = *nD.991_4;
  __result_barD.993_12 = D.1072_5;
  D.1073_8 = __result_barD.993_12;
  return D.1073_8;

}



;; Function MAIN__ (MAIN__)

Points-to analysis

Constraints:

ANYTHING = &ANYTHING
READONLY = &ANYTHING
INTEGER = &ANYTHING
ESCAPED_VARS = *ESCAPED_VARS
NONLOCAL.62 = ESCAPED_VARS
ESCAPED_VARS = &NONLOCAL.62
ESCAPED_VARS = &NONLOCAL.62
atmp.0 = &A.1
atmp.0 = &A.1.32
atmp.0 = &A.1.64
ESCAPED_VARS = &A.1
ESCAPED_VARS = &A.1.32
ESCAPED_VARS = &A.1.64
D.1035_27 = atmp.0
D.1036_28 = D.1035_27
D.1035_29 = atmp.0
D.1036_30 = D.1035_29
D.1035_31 = atmp.0
D.1036_32 = D.1035_31
D.1035_36 = atmp.0
D.1036_37 = D.1035_36
ESCAPED_VARS = D.1039_39
D.1040_44 = ESCAPED_VARS
D.1010 = ESCAPED_VARS
ESCAPED_VARS = &D.1010
ESCAPED_VARS = &D.1010
ESCAPED_VARS = D.1045_52
ESCAPED_VARS = D.1048_60
D.1049_65 = ESCAPED_VARS
D.1018 = ESCAPED_VARS
ESCAPED_VARS = &D.1018
ESCAPED_VARS = &D.1018
ESCAPED_VARS = D.1055_73
D.1056_78 = ESCAPED_VARS
D.1023 = ESCAPED_VARS
ESCAPED_VARS = &D.1023
ESCAPED_VARS = &D.1023
ESCAPED_VARS = D.1061_85
ESCAPED_VARS = D.1064_93
D.1065_98 = ESCAPED_VARS
D.1030 = ESCAPED_VARS
ESCAPED_VARS = &D.1030
ESCAPED_VARS = &D.1030
ESCAPED_VARS = D.1071_106

Collapsing static cycles and doing variable substitution:

Solving graph:

Points-to sets

NULL = { }
ANYTHING = { ANYTHING }
READONLY = { ANYTHING }
INTEGER = { ANYTHING }
ESCAPED_VARS = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
NONLOCAL.62 = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
atmp.0 = { A.1 A.1.64 A.1.32 }
atmp.0.ubound = { }
atmp.0.lbound = { }
atmp.0.stride = { }
atmp.0.dtype = { }
atmp.0.offset = { }
A.1 = { }
A.1.64 = { }
A.1.32 = { }
D.1035_27 = { A.1 A.1.64 A.1.32 }
D.1036_28 = { A.1 A.1.64 A.1.32 }
D.1035_29 = { A.1 A.1.64 A.1.32 }
D.1036_30 = { A.1 A.1.64 A.1.32 }
D.1035_31 = { A.1 A.1.64 A.1.32 }
D.1036_32 = { A.1 A.1.64 A.1.32 }
D.1035_36 = { A.1 A.1.64 A.1.32 }
D.1036_37 = { A.1 A.1.64 A.1.32 }
D.1039_39 = { }
D.1040_44 = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
D.1010 = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
D.1045_52 = { }
D.1048_60 = { }
D.1049_65 = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
D.1018 = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
D.1055_73 = { }
D.1056_78 = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
D.1023 = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
D.1061_85 = { }
D.1064_93 = { }
D.1065_98 = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
D.1030 = { NONLOCAL.62 A.1 A.1.64 A.1.32 D.1010 D.1018 D.1023 D.1030 }
D.1071_106 = { }

MAIN__: Total number of aliased vops: 20

Referenced variables in MAIN__: 69

Variable: S.5D.1016, UID 1016, int4D.2

Variable: SFT.50D.1144, UID 1144, int4D.2, default def: SFT.50D.1144_17

Variable: SFT.51D.1145, UID 1145, int4D.2, default def: SFT.51D.1145_15

Variable: D.1019, UID 1019, int4D.2

Variable: D.1020, UID 1020, int4D.2

Variable: S.6D.1021, UID 1021, int4D.2

Variable: SFT.55D.1149, UID 1149, int4D.2, is aliased, is addressable, call clobbered

Variable: SFT.56D.1150, UID 1150, int4D.2, is aliased, is addressable, call clobbered

Variable: D.1024, UID 1024, int4D.2

Variable: D.1025, UID 1025, int4D.2

Variable: S.7D.1026, UID 1026, int4D.2

Variable: S.8D.1028, UID 1028, int4D.2

Variable: NONLOCAL.62D.1156, UID 1156, voidD.16, is aliased, is addressable, is global, call clobbered

Variable: SMT.63D.1157, UID 1157, int4D.2[0:], is addressable, is global, call clobbered, may aliases: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 NONLOCAL.62D.1156 SFT.47D.1141 }

Variable: D.1031, UID 1031, int4D.2

Variable: D.1032, UID 1032, int4D.2

Variable: S.9D.1033, UID 1033, int4D.2

Variable: D.1035, UID 1035, voidD.16 *

Variable: D.1036, UID 1036, int4D.2[0:] *, symbol memory tag: SMT.63D.1157

Variable: S.10D.1038, UID 1038, int4D.2

Variable: D.1039, UID 1039, int4D.2

Variable: D.1040, UID 1040, int4D.2

Variable: SFT.52D.1146, UID 1146, int4D.2, default def: SFT.52D.1146_25

Variable: D.1042, UID 1042, int4D.2

Variable: D.1043, UID 1043, int4D.2

Variable: D.1044, UID 1044, int4D.2

Variable: D.1045, UID 1045, int4D.2

Variable: D.1047, UID 1047, int4D.2

Variable: D.1048, UID 1048, int4D.2

Variable: D.1049, UID 1049, int4D.2

Variable: D.1051, UID 1051, int4D.2

Variable: D.1052, UID 1052, int4D.2

Variable: D.1053, UID 1053, int4D.2

Variable: D.1054, UID 1054, int4D.2

Variable: D.1055, UID 1055, int4D.2

Variable: D.1056, UID 1056, int4D.2

Variable: D.1058, UID 1058, int4D.2

Variable: D.1059, UID 1059, int4D.2

Variable: D.1060, UID 1060, int4D.2

Variable: D.1061, UID 1061, int4D.2

Variable: D.1063, UID 1063, int4D.2

Variable: D.1064, UID 1064, int4D.2

Variable: D.1065, UID 1065, int4D.2

Variable: SFT.53D.1147, UID 1147, voidD.16 *, default def: SFT.53D.1147_23

Variable: D.1067, UID 1067, int4D.2

Variable: D.1068, UID 1068, int4D.2

Variable: D.1069, UID 1069, int4D.2

Variable: D.1070, UID 1070, int4D.2

Variable: D.1071, UID 1071, int4D.2

Variable: SFT.49D.1143, UID 1143, int4D.2, default def: SFT.49D.1143_19

Variable: FRAME.11D.1074, UID 1074, struct FRAME.MAIN__, is addressable, sub-vars: { SFT.47D.1141 }

Variable: D.1081, UID 1081, int4D.2

Variable: D.1082, UID 1082, int4D.2

Variable: D.1083, UID 1083, int4D.2

Variable: D.1084, UID 1084, int4D.2

Variable: D.1085, UID 1085, int4D.2

Variable: D.1086, UID 1086, int4D.2

Variable: SFT.54D.1148, UID 1148, int4D.2, is aliased, is addressable, call clobbered

Variable: NMT.64D.1158, UID 1158, int4D.2[0:], is addressable, call clobbered, may aliases: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }

Variable: aD.994, UID 994, int4D.2[5], default def: aD.994_48

Variable: bD.995, UID 995, int4D.2[3], default def: bD.995_34

Variable: atmp.0D.1005, UID 1005, struct array1_int4, sub-vars: { SFT.53D.1147 SFT.52D.1146 SFT.51D.1145 SFT.50D.1144 SFT.49D.1143 SFT.48D.1142 }

Variable: A.1D.1006, UID 1006, int4D.2[3], is addressable, sub-vars: { SFT.56D.1150 SFT.55D.1149 SFT.54D.1148 }

Variable: S.3D.1008, UID 1008, int4D.2

Variable: D.1011, UID 1011, int4D.2

Variable: D.1012, UID 1012, int4D.2

Variable: S.4D.1013, UID 1013, int4D.2

Variable: SFT.47D.1141, UID 1141, int4D.2, is aliased, is addressable, call clobbered, default def: SFT.47D.1141_42

Variable: SFT.48D.1142, UID 1142, int4D.2, default def: SFT.48D.1142_21



Pointed-to sets for pointers in MAIN__

SFT.53D.1147_23
D.1035_27, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1036_28, name memory tag: NMT.64D.1158, is dereferenced, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1035_29, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1036_30, name memory tag: NMT.64D.1158, is dereferenced, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1035_31, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1036_32, name memory tag: NMT.64D.1158, is dereferenced, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1035_36, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1036_37, name memory tag: NMT.64D.1158, is dereferenced, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }


Flow-insensitive alias information for MAIN__

Aliased symbols

SFT.55D.1149, UID 1149, int4D.2, is aliased, is addressable, call clobbered
SFT.56D.1150, UID 1150, int4D.2, is aliased, is addressable, call clobbered
NONLOCAL.62D.1156, UID 1156, voidD.16, is aliased, is addressable, is global, call clobbered
SMT.63D.1157, UID 1157, int4D.2[0:], is addressable, is global, call clobbered, may aliases: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 NONLOCAL.62D.1156 SFT.47D.1141 }
FRAME.11D.1074, UID 1074, struct FRAME.MAIN__, is addressable, sub-vars: { SFT.47D.1141 }
SFT.54D.1148, UID 1148, int4D.2, is aliased, is addressable, call clobbered
NMT.64D.1158, UID 1158, int4D.2[0:], is addressable, call clobbered, may aliases: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
A.1D.1006, UID 1006, int4D.2[3], is addressable, sub-vars: { SFT.56D.1150 SFT.55D.1149 SFT.54D.1148 }
SFT.47D.1141, UID 1141, int4D.2, is aliased, is addressable, call clobbered, default def: SFT.47D.1141_42

Dereferenced pointers

D.1036, UID 1036, int4D.2[0:] *, symbol memory tag: SMT.63D.1157

Symbol memory tags

SMT.63D.1157, UID 1157, int4D.2[0:], is addressable, is global, call clobbered, may aliases: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 NONLOCAL.62D.1156 SFT.47D.1141 }


Flow-sensitive alias information for MAIN__

SSA_NAME pointers

D.1036_28, name memory tag: NMT.64D.1158, is dereferenced, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1036_30, name memory tag: NMT.64D.1158, is dereferenced, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1036_32, name memory tag: NMT.64D.1158, is dereferenced, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }
D.1036_37, name memory tag: NMT.64D.1158, is dereferenced, points-to vars: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }

Name memory tags

NMT.64D.1158, UID 1158, int4D.2[0:], is addressable, call clobbered, may aliases: { SFT.54D.1148 SFT.55D.1149 SFT.56D.1150 }



Symbols to be put in SSA form

a b A.1 FRAME.11 SFT.47 SFT.54 SFT.55 SFT.56 NONLOCAL.62 SMT.63 NMT.64 

Incremental SSA update started at block: 0

Number of blocks in CFG: 36
Number of blocks to update: 35 ( 97%)



MAIN__ ()
{
  int4D.2 S.9D.1033;
  int4D.2 D.1031;
  int4D.2 D.1032;
  int4D.2 S.8D.1028;
  int4D.2 S.7D.1026;
  int4D.2 D.1024;
  int4D.2 D.1025;
  int4D.2 S.6D.1021;
  int4D.2 D.1019;
  int4D.2 D.1020;
  int4D.2 S.5D.1016;
  int4D.2 S.4D.1013;
  int4D.2 D.1011;
  int4D.2 D.1012;
  int4D.2 S.3D.1008;
  struct array1_int4 atmp.0D.1005;
  int4D.2 A.1D.1006[3];
  int4D.2 bD.995[3];
  int4D.2 aD.994[5];
  int4D.2 D.1071;
  int4D.2 D.1070;
  int4D.2 D.1069;
  int4D.2 D.1068;
  int4D.2 D.1067;
  int4D.2 D.1065;
  int4D.2 D.1064;
  int4D.2 D.1063;
  int4D.2 D.1061;
  int4D.2 D.1060;
  int4D.2 D.1059;
  int4D.2 D.1058;
  int4D.2 D.1056;
  int4D.2 D.1055;
  int4D.2 D.1054;
  int4D.2 D.1053;
  int4D.2 D.1052;
  int4D.2 D.1051;
  int4D.2 D.1049;
  int4D.2 D.1048;
  int4D.2 D.1047;
  int4D.2 D.1045;
  int4D.2 D.1044;
  int4D.2 D.1043;
  int4D.2 D.1042;
  int4D.2 D.1040;
  int4D.2 D.1039;
  int4D.2 S.10D.1038;
  int4D.2[0:] * D.1036;
  voidD.16 * D.1035;
  int4D.2 D.1086;
  int4D.2 D.1085;
  int4D.2 D.1084;
  int4D.2 D.1083;
  int4D.2 D.1082;
  int4D.2 D.1081;
  struct FRAME.MAIN__ FRAME.11D.1074;

<bb 2>:
  #   SFT.47D.1141_114 = V_MAY_DEF <SFT.47D.1141_42>;
  #   SFT.54D.1148_115 = V_MAY_DEF <SFT.54D.1148_110>;
  #   SFT.55D.1149_116 = V_MAY_DEF <SFT.55D.1149_111>;
  #   SFT.56D.1150_117 = V_MAY_DEF <SFT.56D.1150_112>;
  #   NONLOCAL.62D.1156_118 = V_MAY_DEF <NONLOCAL.62D.1156_113>;
  _gfortran_set_std (70, 127, 0);
  #   SFT.51D.1145_16 = V_MUST_DEF <SFT.51D.1145_15>;
  atmp.0D.1005.dtypeD.998 = 265;
  #   SFT.50D.1144_18 = V_MUST_DEF <SFT.50D.1144_17>;
  atmp.0D.1005.dimD.1003[0].strideD.999 = 1;
  #   SFT.49D.1143_20 = V_MUST_DEF <SFT.49D.1143_19>;
  atmp.0D.1005.dimD.1003[0].lboundD.1000 = 0;
  #   SFT.48D.1142_22 = V_MUST_DEF <SFT.48D.1142_21>;
  atmp.0D.1005.dimD.1003[0].uboundD.1001 = 2;
  #   SFT.53D.1147_24 = V_MUST_DEF <SFT.53D.1147_23>;
  atmp.0D.1005.dataD.996 = &A.1D.1006;
  #   SFT.52D.1146_26 = V_MUST_DEF <SFT.52D.1146_25>;
  atmp.0D.1005.offsetD.997 = 0;
  #   VUSE <SFT.53D.1147_24>;
  D.1035_27 = atmp.0D.1005.dataD.996;
  D.1036_28 = (int4D.2[0:] *) D.1035_27;
  #   SFT.54D.1148_119 = V_MAY_DEF <SFT.54D.1148_115>;
  #   SFT.55D.1149_120 = V_MAY_DEF <SFT.55D.1149_116>;
  #   SFT.56D.1150_121 = V_MAY_DEF <SFT.56D.1150_117>;
  (*D.1036_28)[0] = 1;
  #   VUSE <SFT.53D.1147_24>;
  D.1035_29 = atmp.0D.1005.dataD.996;
  D.1036_30 = (int4D.2[0:] *) D.1035_29;
  #   SFT.54D.1148_122 = V_MAY_DEF <SFT.54D.1148_119>;
  #   SFT.55D.1149_123 = V_MAY_DEF <SFT.55D.1149_120>;
  #   SFT.56D.1150_124 = V_MAY_DEF <SFT.56D.1150_121>;
  (*D.1036_30)[1] = 2;
  #   VUSE <SFT.53D.1147_24>;
  D.1035_31 = atmp.0D.1005.dataD.996;
  D.1036_32 = (int4D.2[0:] *) D.1035_31;
  #   SFT.54D.1148_125 = V_MAY_DEF <SFT.54D.1148_122>;
  #   SFT.55D.1149_126 = V_MAY_DEF <SFT.55D.1149_123>;
  #   SFT.56D.1150_127 = V_MAY_DEF <SFT.56D.1150_124>;
  (*D.1036_32)[2] = 3;
  S.3D.1008_33 = 0;

  # S.3D.1008_13 = PHI <S.3D.1008_33(2), S.3D.1008_41(4)>;
  # bD.995_12 = PHI <bD.995_34(2), bD.995_40(4)>;
<L0>:;
  if (S.3D.1008_13 > 2) goto L.1L.2; else goto <L1>;

<L1>:;
  S.10D.1038_35 = S.3D.1008_13;
  #   VUSE <SFT.53D.1147_24>;
  D.1035_36 = atmp.0D.1005.dataD.996;
  D.1036_37 = (int4D.2[0:] *) D.1035_36;
  S.10D.1038_38 = S.3D.1008_13;
  #   VUSE <SFT.54D.1148_125>;
  #   VUSE <SFT.55D.1149_126>;
  #   VUSE <SFT.56D.1150_127>;
  D.1039_39 = (*D.1036_37)[S.10D.1038_38];
  #   bD.995_40 = V_MAY_DEF <bD.995_12>;
  bD.995[S.10D.1038_38] = D.1039_39;
  S.3D.1008_41 = S.3D.1008_13 + 1;
  goto <bb 3> (<L0>);

L.1L.2:;
  #   SFT.47D.1141_43 = V_MUST_DEF <SFT.47D.1141_114>;
  FRAME.11D.1074.cntD.1076 = 0;
  #   SFT.47D.1141_128 = V_MAY_DEF <SFT.47D.1141_43>;
  #   SFT.54D.1148_129 = V_MAY_DEF <SFT.54D.1148_125>;
  #   SFT.55D.1149_130 = V_MAY_DEF <SFT.55D.1149_126>;
  #   SFT.56D.1150_131 = V_MAY_DEF <SFT.56D.1150_127>;
  #   NONLOCAL.62D.1156_132 = V_MAY_DEF <NONLOCAL.62D.1156_118>;
  D.1040_44 = bar (&C.1010) [static-chain: &FRAME.11D.1074];
  D.1011_45 = D.1040_44;
  D.1012_46 = D.1011_45 + -1;
  S.4D.1013_47 = 1;

  # S.4D.1013_14 = PHI <S.4D.1013_47(5), S.4D.1013_54(7)>;
  # aD.994_6 = PHI <aD.994_48(5), aD.994_53(7)>;
<L3>:;
  if (S.4D.1013_14 > 3) goto L.2L.5; else goto <L4>;

<L4>:;
  D.1042_49 = S.4D.1013_14 + D.1012_46;
  D.1043_50 = D.1042_49 + -1;
  D.1044_51 = S.4D.1013_14 + -1;
  #   VUSE <bD.995_12>;
  D.1045_52 = bD.995[D.1044_51];
  #   aD.994_53 = V_MAY_DEF <aD.994_6>;
  aD.994[D.1043_50] = D.1045_52;
  S.4D.1013_54 = S.4D.1013_14 + 1;
  goto <bb 6> (<L3>);

L.2L.5:;
  #   VUSE <SFT.47D.1141_128>;
  D.1081_55 = FRAME.11D.1074.cntD.1076;
  if (D.1081_55 != 1) goto <L6>; else goto <L7>;

<L6>:;
  #   VUSE <SFT.47D.1141_128>;
  #   VUSE <SFT.54D.1148_129>;
  #   VUSE <SFT.55D.1149_130>;
  #   VUSE <SFT.56D.1150_131>;
  #   VUSE <NONLOCAL.62D.1156_132>;
  _gfortran_abort ();

<L7>:;
  #   SFT.47D.1141_56 = V_MUST_DEF <SFT.47D.1141_128>;
  FRAME.11D.1074.cntD.1076 = 0;
  S.5D.1016_57 = 1;

  # aD.994_7 = PHI <aD.994_6(10), aD.994_61(12)>;
  # S.5D.1016_1 = PHI <S.5D.1016_57(10), S.5D.1016_62(12)>;
<L8>:;
  if (S.5D.1016_1 > 3) goto L.3L.10; else goto <L9>;

<L9>:;
  D.1047_58 = S.5D.1016_1 + -1;
  D.1047_59 = S.5D.1016_1 + -1;
  #   VUSE <bD.995_12>;
  D.1048_60 = bD.995[D.1047_59];
  #   aD.994_61 = V_MAY_DEF <aD.994_7>;
  aD.994[D.1047_59] = D.1048_60;
  S.5D.1016_62 = S.5D.1016_1 + 1;
  goto <bb 11> (<L8>);

L.3L.10:;
  #   VUSE <SFT.47D.1141_56>;
  D.1082_63 = FRAME.11D.1074.cntD.1076;
  if (D.1082_63 != 1) goto <L11>; else goto <L12>;

<L11>:;
  #   VUSE <SFT.47D.1141_56>;
  #   VUSE <SFT.54D.1148_129>;
  #   VUSE <SFT.55D.1149_130>;
  #   VUSE <SFT.56D.1150_131>;
  #   VUSE <NONLOCAL.62D.1156_132>;
  _gfortran_abort ();

<L12>:;
  #   SFT.47D.1141_64 = V_MUST_DEF <SFT.47D.1141_56>;
  FRAME.11D.1074.cntD.1076 = 0;
  #   SFT.47D.1141_133 = V_MAY_DEF <SFT.47D.1141_64>;
  #   SFT.54D.1148_134 = V_MAY_DEF <SFT.54D.1148_129>;
  #   SFT.55D.1149_135 = V_MAY_DEF <SFT.55D.1149_130>;
  #   SFT.56D.1150_136 = V_MAY_DEF <SFT.56D.1150_131>;
  #   NONLOCAL.62D.1156_137 = V_MAY_DEF <NONLOCAL.62D.1156_132>;
  D.1049_65 = bar (&C.1018) [static-chain: &FRAME.11D.1074];
  D.1019_66 = D.1049_65;
  D.1020_67 = 1 - D.1019_66;
  S.6D.1021_68 = 1;

  # aD.994_8 = PHI <aD.994_7(15), aD.994_74(17)>;
  # S.6D.1021_2 = PHI <S.6D.1021_68(15), S.6D.1021_75(17)>;
<L13>:;
  if (S.6D.1021_2 > 3) goto L.4L.15; else goto <L14>;

<L14>:;
  D.1051_69 = S.6D.1021_2 * D.1019_66;
  D.1052_70 = D.1051_69 + D.1020_67;
  D.1053_71 = D.1052_70 + -1;
  D.1054_72 = S.6D.1021_2 + -1;
  #   VUSE <bD.995_12>;
  D.1055_73 = bD.995[D.1054_72];
  #   aD.994_74 = V_MAY_DEF <aD.994_8>;
  aD.994[D.1053_71] = D.1055_73;
  S.6D.1021_75 = S.6D.1021_2 + 1;
  goto <bb 16> (<L13>);

L.4L.15:;
  #   VUSE <SFT.47D.1141_133>;
  D.1083_76 = FRAME.11D.1074.cntD.1076;
  if (D.1083_76 != 1) goto <L16>; else goto <L17>;

<L16>:;
  #   VUSE <SFT.47D.1141_133>;
  #   VUSE <SFT.54D.1148_134>;
  #   VUSE <SFT.55D.1149_135>;
  #   VUSE <SFT.56D.1150_136>;
  #   VUSE <NONLOCAL.62D.1156_137>;
  _gfortran_abort ();

<L17>:;
  #   SFT.47D.1141_77 = V_MUST_DEF <SFT.47D.1141_133>;
  FRAME.11D.1074.cntD.1076 = 0;
  #   SFT.47D.1141_138 = V_MAY_DEF <SFT.47D.1141_77>;
  #   SFT.54D.1148_139 = V_MAY_DEF <SFT.54D.1148_134>;
  #   SFT.55D.1149_140 = V_MAY_DEF <SFT.55D.1149_135>;
  #   SFT.56D.1150_141 = V_MAY_DEF <SFT.56D.1150_136>;
  #   NONLOCAL.62D.1156_142 = V_MAY_DEF <NONLOCAL.62D.1156_137>;
  D.1056_78 = bar (&C.1023) [static-chain: &FRAME.11D.1074];
  D.1024_79 = D.1056_78;
  D.1025_80 = D.1024_79 + -1;
  S.7D.1026_81 = 1;

  # aD.994_9 = PHI <aD.994_8(20), aD.994_86(22)>;
  # S.7D.1026_3 = PHI <S.7D.1026_81(20), S.7D.1026_87(22)>;
<L18>:;
  if (S.7D.1026_3 > 3) goto L.5L.20; else goto <L19>;

<L19>:;
  D.1058_82 = S.7D.1026_3 + -1;
  D.1059_83 = S.7D.1026_3 + D.1025_80;
  D.1060_84 = D.1059_83 + -1;
  #   VUSE <bD.995_12>;
  D.1061_85 = bD.995[D.1060_84];
  #   aD.994_86 = V_MAY_DEF <aD.994_9>;
  aD.994[D.1058_82] = D.1061_85;
  S.7D.1026_87 = S.7D.1026_3 + 1;
  goto <bb 21> (<L18>);

L.5L.20:;
  #   VUSE <SFT.47D.1141_138>;
  D.1084_88 = FRAME.11D.1074.cntD.1076;
  if (D.1084_88 != 1) goto <L21>; else goto <L22>;

<L21>:;
  #   VUSE <SFT.47D.1141_138>;
  #   VUSE <SFT.54D.1148_139>;
  #   VUSE <SFT.55D.1149_140>;
  #   VUSE <SFT.56D.1150_141>;
  #   VUSE <NONLOCAL.62D.1156_142>;
  _gfortran_abort ();

<L22>:;
  #   SFT.47D.1141_89 = V_MUST_DEF <SFT.47D.1141_138>;
  FRAME.11D.1074.cntD.1076 = 0;
  S.8D.1028_90 = 1;

  # aD.994_10 = PHI <aD.994_9(25), aD.994_94(27)>;
  # S.8D.1028_4 = PHI <S.8D.1028_90(25), S.8D.1028_95(27)>;
<L23>:;
  if (S.8D.1028_4 > 3) goto L.6L.25; else goto <L24>;

<L24>:;
  D.1063_91 = S.8D.1028_4 + -1;
  D.1063_92 = S.8D.1028_4 + -1;
  #   VUSE <bD.995_12>;
  D.1064_93 = bD.995[D.1063_92];
  #   aD.994_94 = V_MAY_DEF <aD.994_10>;
  aD.994[D.1063_92] = D.1064_93;
  S.8D.1028_95 = S.8D.1028_4 + 1;
  goto <bb 26> (<L23>);

L.6L.25:;
  #   VUSE <SFT.47D.1141_89>;
  D.1085_96 = FRAME.11D.1074.cntD.1076;
  if (D.1085_96 != 1) goto <L26>; else goto <L27>;

<L26>:;
  #   VUSE <SFT.47D.1141_89>;
  #   VUSE <SFT.54D.1148_139>;
  #   VUSE <SFT.55D.1149_140>;
  #   VUSE <SFT.56D.1150_141>;
  #   VUSE <NONLOCAL.62D.1156_142>;
  _gfortran_abort ();

<L27>:;
  #   SFT.47D.1141_97 = V_MUST_DEF <SFT.47D.1141_89>;
  FRAME.11D.1074.cntD.1076 = 0;
  #   SFT.47D.1141_143 = V_MAY_DEF <SFT.47D.1141_97>;
  #   SFT.54D.1148_144 = V_MAY_DEF <SFT.54D.1148_139>;
  #   SFT.55D.1149_145 = V_MAY_DEF <SFT.55D.1149_140>;
  #   SFT.56D.1150_146 = V_MAY_DEF <SFT.56D.1150_141>;
  #   NONLOCAL.62D.1156_147 = V_MAY_DEF <NONLOCAL.62D.1156_142>;
  D.1065_98 = bar (&C.1030) [static-chain: &FRAME.11D.1074];
  D.1031_99 = D.1065_98;
  D.1032_100 = 1 - D.1031_99;
  S.9D.1033_101 = 1;

  # aD.994_11 = PHI <aD.994_10(30), aD.994_107(32)>;
  # S.9D.1033_5 = PHI <S.9D.1033_101(30), S.9D.1033_108(32)>;
<L28>:;
  if (S.9D.1033_5 > 3) goto L.7L.30; else goto <L29>;

<L29>:;
  D.1067_102 = S.9D.1033_5 + -1;
  D.1068_103 = S.9D.1033_5 * D.1031_99;
  D.1069_104 = D.1068_103 + D.1032_100;
  D.1070_105 = D.1069_104 + -1;
  #   VUSE <bD.995_12>;
  D.1071_106 = bD.995[D.1070_105];
  #   aD.994_107 = V_MAY_DEF <aD.994_11>;
  aD.994[D.1067_102] = D.1071_106;
  S.9D.1033_108 = S.9D.1033_5 + 1;
  goto <bb 31> (<L28>);

L.7L.30:;
  #   VUSE <SFT.47D.1141_143>;
  D.1086_109 = FRAME.11D.1074.cntD.1076;
  if (D.1086_109 != 1) goto <L31>; else goto <L32>;

<L31>:;
  #   VUSE <SFT.47D.1141_143>;
  #   VUSE <SFT.54D.1148_144>;
  #   VUSE <SFT.55D.1149_145>;
  #   VUSE <SFT.56D.1150_146>;
  #   VUSE <NONLOCAL.62D.1156_147>;
  _gfortran_abort ();

<L32>:;
  return;

}




More information about the Fortran mailing list