Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8149543

range check CastII nodes should not be split through Phi

    Details

    • Subcomponent:
    • Resolved In Build:
      b108

      Backports

        Description

        Reported by Michael Berg for vectorization optimizations.
        In cases like this:

          public static float sumListReduction(float[] a, float[] b, float[] c, float[] d, float total, int process_len)
          {
            for(int i = 0; i < process_len; i++)
            {
              d[i]= (a[i] * b[i]) + (a[i] * c[i]) + (b[i] * c[i]);
            }

            total += d[0];
            total += d[process_len-1];
            return total;
          }

        Range check CastII nodes are split through Phis which causes new Phis to be created that are unrelated to the trip Phi and prevent further optimization:

        Phi 735 718 43 384 [ 784 384 ] bci = 10 debug_orig = dump_spec = #int:>=1:www #tripcount debug_idx = 17200735 line = 32 type = int:

        Phi 921 718 43 384 [ 727 ] bci = 16 debug_orig = dump_spec = #int:1..max-1:www debug_idx = 23800921 line = 32 type = int:

        ILW=M(prevent optimization)M(some code with loops)H(none)=P3

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  roland Roland Westrelin
                  Reporter:
                  roland Roland Westrelin
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: