Salut,

J'essaye d'utiliser CLooG pour générer le code d'une boucle strip-minée.

Le code de départ (avant stripmine) est

for(i=0;i<=999;i++
{ S1(i);
}

et est correctement généré par cloog.

Apres un strip mine de p, j'esperais arriver a qqch du genre

for(i=0;i<=999;i+=p)
{ for(j=i;j<min(i+p,999);j++)
  { S1(i)
  }
}

Mais j'obtiens un assez laid

for(i=-9;i<=999;i++)
{ for(j=max(0,i);j<=min(i+p,999);j++)
  { if(i%p == 0)
    { S1(i)
    }
  }
}

avec le cacul d'un modulo dans la boucle interne qui detruit toutes les
perfs.

Y a t'il moyen d'améliorer les choses avec une des options de cloog, ou en
changeant qqch dans mon fichier d'entree ?
Albert m'a dit qu'il y avait qqch pour les strides.

Pour info, j'utilise
Piplib 1.3.2
ClooG 0.12.1

Merci d'avance,
Sylvain.

et le fichier d'entree pour cloog est:

c # language is C
# ---------- CONTEXT ----------
1 # Context (no constraints on parameters)
1    2     # 1 lines, 2 columns
0    0

0 # Automatically find parameter names

# ---------- STATEMENTS ----------
5 # Number of statements

1 # Statement has a non resticted domain
1    2
1    0
0    0    0

1 # Statement has a non resticted domain
1    2
1    0
0    0    0

1 # Statement has 1 domain STATEMENT QUI ME PAUSE PB
6    5
#    i    j    p    1
1    0    1    0    0    # 0 <= j <= 999
1    0    -1   0    999
1    -1   1    0    0    # j <= i <= j + 9
1    1    -1   0    9
1    -1   0    10   0    #  i = 10 * p
1    1    0    -10  0
0    0    0

1 # Statement has a non resticted domain
1    2
1    0
0    0    0

1 # Statement has a non resticted domain
1    2
1    0
0    0    0

0 # Automatically find iterator names.

# ---------- SCATTERING FUNCTIONS ----------
5 # Number of scattering functions

5    7
#    p0   p1   p2   p3   p4
0    1    0    0    0    0                   0     # Beta 0
0    0    1    0    0    0                   0     # Alpha & Gamma 1
0    0    0    1    0    0                   0     # Beta 1
0    0    0    0    1    0                   0     # Alpha & Gamma 2
0    0    0    0    0    1                   0     # Beta 2

5    7
#    p0   p1   p2   p3   p4
0    1    0    0    0    0                   -1    # Beta 0
0    0    1    0    0    0                   0     # Alpha & Gamma 1
0    0    0    1    0    0                   0     # Beta 1
0    0    0    0    1    0                   0     # Alpha & Gamma 2
0    0    0    0    0    1                   0     # Beta 2

5    10
#    p0   p1   p2   p3   p4
0    1    0    0    0    0         0    0           0     -2    # Beta 0
0    0    1    0    0    0         -1   0           0      0     # Alpha & Gamma 1
0    0    0    1    0    0         0    0           0      0     # Beta 1
0    0    0    0    1    0         0    -1          0      0     # Alpha & Gamma 2
0    0    0    0    0    1         0    0           0      0     # Beta 2

5    7
#    p0   p1   p2   p3   p4
0    1    0    0    0    0                   -3    # Beta 0
0    0    1    0    0    0                   0     # Alpha & Gamma 1
0    0    0    1    0    0                   0     # Beta 1
0    0    0    0    1    0                   0     # Alpha & Gamma 2
0    0    0    0    0    1                   0     # Beta 2

5    7
#    p0   p1   p2   p3   p4
0    1    0    0    0    0                   -4    # Beta 0
0    0    1    0    0    0                   0     # Alpha & Gamma 1
0    0    0    1    0    0                   0     # Beta 1
0    0    0    0    1    0                   0     # Alpha & Gamma 2
0    0    0    0    0    1                   0     # Beta 2

1 # Set the scattering parameter names.
p0 p1 p2 p3 p4
