Skip to content

Indices for FOR loops #99

@jespb

Description

@jespb

Take into consideration this SCOP:
(The commentary on the code regards the last example in the issue)

#pragma scop
  for (int i = 0; i < _PB_NI; i++) {         //"FO"
    for (int j = 0; j < _PB_NJ; j++)         //"F0_F0"
      C[i][j] *= beta;
    for (int k = 0; k < _PB_NK; k++) {       //"F0_F1"
      for (int j = 0; j < _PB_NJ; j++)       //"F0_F1_F0"
        C[i][j] += alpha * A[i][k] * B[k][j];
    }
  }
#pragma endscop

If I want to tile both inner loops, I need a transformation list like this:

transformation_list = [
    [77, "TILE2D", 32, 32],
    [74, "TILE2D", 32, 32],
]

However, although equivalent, the following list is invalid, since the first transformation modifies the indices of the other lists:

transformation_list = [
    [74, "TILE2D", 32, 32],
    [77, "TILE2D", 32, 32],
]

Adding string indices to the FOR loops, rather than numerical ones, would reduce the number of invalid transformation lists, eg:

transformation_list = [
    [“F0_F0”, "TILE2D", 32, 32],
    [“F0_F1”, "TILE2D", 32, 32],
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions