On 26/07/2014 14:59, Roman Gareev wrote:
I've tried to compile your example and had the similar problem. It
generates the following ISL AST


{
   for (int c1 = 0; c1 <= 49; c1 += 1) {
     S_6(c1);
     if (c1 <= 48) {
       S_3(c1);
       S_9(c1);
       if (c1 >= 24)
         S_4(c1);
       S_5(c1);
     }
   }
   S_7();
}


where S_9 has pbb->domain and pbb->transformed of S_3. A pointer to a
Gimple basic block is not NULL now, but it leads to the wrong answer.

What do you mean by wrong answer? Is there still a bug in the code generation or the AST is just more complex as expected.

I've tried different examples, which generate ISL AST, but they have
same problems. Could you please advise me another one?

To my understanding bb copies are introduced in case reductions are seen. You could try to just initialize an array (maybe a little bit more complex, but without += statements):

for i:
  A[i] = ...

You could do the summation/verfication outside of the scop e.g. in the main function.

Cheers
Tobias



Reply via email to