On Tue, Feb 9, 2010 at 12:34, Cristianno Martins
<cristiannomart...@gmail.com> wrote:
> Hi,
>
> Thanks for the fast reply. Only one more thing: is there some way that
> I could force it to be signed??

I guess that you should wait the fixes from Tobias and Ramakrishna to
CLooG and Graphite to have the type of the IV exposed by CLooG, rather
than having the original IV type set to the generated IV.

Sebastian

>
> On Tue, Feb 9, 2010 at 3:17 PM, Richard Guenther
> <richard.guent...@gmail.com> wrote:
>> On Tue, Feb 9, 2010 at 6:01 PM, Cristianno Martins
>> <cristiannomart...@gmail.com> wrote:
>>> Hi everyone,
>>>
>>> First of all, I already find [and fix] the problem that I had
>>> described in the last email.
>>> Now, I need a help with a pretty intriguing issue, described below.
>>>
>>> Well, such as I told in the last email, I'm working on a
>>> implementation of a heuristic for loop skewing transformation. To
>>> expose the issue, I will show how it happens with an example.
>>>
>>> First, the code used to compile is very simple, and can be seen below
>>> (the matrix dimensions were minimized for simplification).
>>> <code>
>>>  #define m 20
>>>  #define n 30
>>>  int a[m][n];
>>>  int main() {
>>>     int i, j;
>>>     for(i = 0; i < m; i++)
>>>        for(j = 0; j < n; j++)
>>>           a[i][j] = 1;
>>>
>>>     return a[1][1] + a[2][2];
>>>  }
>>> </code>
>>>
>>> After the skewing pass, if I call
>>>
>>> <code>
>>>  cloog_prog_clast pc = scop_to_clast (scop);
>>>  printf ("\nCLAST generated by CLooG: \n");
>>>  print_clast_stmt (stdout, pc.stmt);
>>> </code>
>>>
>>> I get the following result:
>>>
>>> <terminal>
>>>  CLAST generated by CLooG:
>>>  for (scat_1=0;scat_1<=48;scat_1++) {
>>>     for (scat_3=max(scat_1-29,0);scat_3<=min(scat_1,19);scat_3++) {
>>>        b[scat_3][scat_1-scat_3] = 1 ;
>>>     }
>>>  }
>>> <terminal>
>>>
>>> Going ahead with this, such as can be seen in
>>> simple_test.c.105t.graphite [attached], the code is correctly
>>> generated (in gimple), but the important bb is:
>>>
>>> <file>
>>>  <bb 3>:
>>>      # graphite_IV.5_17 = PHI <0(2), graphite_IV.5_5(9)>
>>>      # .MEM_37 = PHI <.MEM_13(D)(2), .MEM_38(9)>
>>>      D.3185_12 = graphite_IV.5_17 + 0x0ffffffe3;
>>>      D.3186_11 = MAX_EXPR <D.3185_12, 0>; # this is the line in question
>>
>> It looks like D.3185 is unsigned.
>>
>> Richard.
>>
>>>      D.3187_23 = MIN_EXPR <graphite_IV.5_17, 19>;
>>>      D.3188_24 = D.3187_23 + 1;
>>>      D.3189_25 = D.3186_11 < D.3188_24;
>>>      if (D.3189_25 != 0)
>>>        goto <bb 4>;
>>>      else
>>>        goto <bb 8>;
>>> </file>
>>>
>>> Curiously, the line marked above doesn't work in assembly. The
>>> D.3186_11 is assigned to -29, although zero is greater than that, and
>>> the code inside the loop body never runs.
>>> Moreover, If I get the clast code generated by cloog after the skewing
>>> (above), and put it on the source file (compiling without skeking),
>>> the max expr appears in gimple as an if statement, and the code
>>> executes perfectly.
>>>
>>> Does someone have any idea how could I fix it??
>>>
>>> Thanks in advance,
>>>
>>> On Sun, Feb 7, 2010 at 7:31 PM, Cristianno Martins
>>> <cristiannomart...@gmail.com> wrote:
>>>>
>>>> Hello everyone,
>>>>
>>>> I've working on graphite lately, and I did an loop skewing
>>>> implementation, starting from the loop interchange code [in
>>>> gcc/graphite-interchange.c].
>>>> However, after the transformation, if I print the clast generated by
>>>> Cloog, what I get is a almost the same loop as the original one.
>>>> Moreover, if I write the pbb transformed domain and scattering into a
>>>> file, and run the cloog command with that file, the result is exactly
>>>> what I want from the beggining.
>>>> For better comprehension of the problem, some interesting data are showed 
>>>> below.
>>>>
>>>> But, first, for short, my question is: am I forgetting something
>>>> important that I must be doing (like a function call)?
>>>>
>>>>
>>>>> [...]
>>>>
>>>> Thanks in advance,
>>>>
>>>> --
>>>> Cristianno Martins
>>>
>>> --
>>> Cristianno Martins
>>>
>>
>
>
>
> --
> Cristianno Martins
> Mestrando em Computação
> Universidade Estadual de Campinas
> cristianno.mart...@students.ic.unicamp.br
>
> cel: (19) 8825-5731 [oi]
>      (19) 8240-3217 [tim]
> skype: cristiannomartins
> gTalk: cristiannomartins
> msn: cristiannomart...@hotmail.com
>

Reply via email to