1Salut,
2
3J'essaye d'utiliser CLooG pour g�n�rer le code d'une boucle strip-min�e.
4
5Le code de d�part (avant stripmine) est
6
7for(i=0;i<=999;i++
8{ S1(i);
9}
10
11et est correctement g�n�r� par cloog.
12
13Apres un strip mine de p, j'esperais arriver a qqch du genre
14
15for(i=0;i<=999;i+=p)
16{ for(j=i;j<min(i+p,999);j++)
17  { S1(i)
18  }
19}
20
21Mais j'obtiens un assez laid
22
23for(i=-9;i<=999;i++)
24{ for(j=max(0,i);j<=min(i+p,999);j++)
25  { if(i%p == 0)
26    { S1(i)
27    }
28  }
29}
30
31avec le cacul d'un modulo dans la boucle interne qui detruit toutes les
32perfs.
33
34Y a t'il moyen d'am�liorer les choses avec une des options de cloog, ou en
35changeant qqch dans mon fichier d'entree ?
36Albert m'a dit qu'il y avait qqch pour les strides.
37
38Pour info, j'utilise
39Piplib 1.3.2
40ClooG 0.12.1
41
42Merci d'avance,
43Sylvain.
44
45et le fichier d'entree pour cloog est:
46
47c # language is C
48# ---------- CONTEXT ----------
491 # Context (no constraints on parameters)
501    2     # 1 lines, 2 columns
510    0
52
530 # Automatically find parameter names
54
55# ---------- STATEMENTS ----------
565 # Number of statements
57
581 # Statement has a non resticted domain
591    2
601    0
610    0    0
62
631 # Statement has a non resticted domain
641    2
651    0
660    0    0
67
681 # Statement has 1 domain STATEMENT QUI ME PAUSE PB
696    5
70#    i    j    p    1
711    0    1    0    0    # 0 <= j <= 999
721    0    -1   0    999
731    -1   1    0    0    # j <= i <= j + 9
741    1    -1   0    9
751    -1   0    10   0    #  i = 10 * p
761    1    0    -10  0
770    0    0
78
791 # Statement has a non resticted domain
801    2
811    0
820    0    0
83
841 # Statement has a non resticted domain
851    2
861    0
870    0    0
88
890 # Automatically find iterator names.
90
91# ---------- SCATTERING FUNCTIONS ----------
925 # Number of scattering functions
93
945    7
95#    p0   p1   p2   p3   p4
960    1    0    0    0    0                   0     # Beta 0
970    0    1    0    0    0                   0     # Alpha & Gamma 1
980    0    0    1    0    0                   0     # Beta 1
990    0    0    0    1    0                   0     # Alpha & Gamma 2
1000    0    0    0    0    1                   0     # Beta 2
101
1025    7
103#    p0   p1   p2   p3   p4
1040    1    0    0    0    0                   -1    # Beta 0
1050    0    1    0    0    0                   0     # Alpha & Gamma 1
1060    0    0    1    0    0                   0     # Beta 1
1070    0    0    0    1    0                   0     # Alpha & Gamma 2
1080    0    0    0    0    1                   0     # Beta 2
109
1105    10
111#    p0   p1   p2   p3   p4
1120    1    0    0    0    0         0    0           0     -2    # Beta 0
1130    0    1    0    0    0         -1   0           0      0     # Alpha & Gamma 1
1140    0    0    1    0    0         0    0           0      0     # Beta 1
1150    0    0    0    1    0         0    -1          0      0     # Alpha & Gamma 2
1160    0    0    0    0    1         0    0           0      0     # Beta 2
117
1185    7
119#    p0   p1   p2   p3   p4
1200    1    0    0    0    0                   -3    # Beta 0
1210    0    1    0    0    0                   0     # Alpha & Gamma 1
1220    0    0    1    0    0                   0     # Beta 1
1230    0    0    0    1    0                   0     # Alpha & Gamma 2
1240    0    0    0    0    1                   0     # Beta 2
125
1265    7
127#    p0   p1   p2   p3   p4
1280    1    0    0    0    0                   -4    # Beta 0
1290    0    1    0    0    0                   0     # Alpha & Gamma 1
1300    0    0    1    0    0                   0     # Beta 1
1310    0    0    0    1    0                   0     # Alpha & Gamma 2
1320    0    0    0    0    1                   0     # Beta 2
133
1341 # Set the scattering parameter names.
135p0 p1 p2 p3 p4
136