On 30/07/2014 09:56, Roman Gareev wrote:
Blindly converting type sizes is not a good idea and may be problematic when
>we switch to smaller types. As we can obviously only improve this when we
>have the appropriate support in isl, I think the attached patch is fine.
>However, please add a fixme that states that this should
>be looked at again at the moment when we get isl support to derive the
>optimal types.
I've attached a patch, which contains the fixme.

OK. I proposed a slightly longer description. With the updated description, you can commit this patch.

>Please have a look at the original bug report:
>
>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35356
>
>The isl ast generator should produce something like:
>
>   for (i = 0; i < min (n, k); i++)
>      a[i] = i;
>   if (k >= 0 && k < n)
>      a[k] = 1;
>   for (i = max(k+1,0); i < n; i++)
>      a[i] = i;
>
>CLooG does not generate optimal code either, but the code generated by isl
>is a regression compared to CLooG.
>
>Can you generate an isl_codegen input for this test case and verify that the
>latest public version of isl does not generate this optimal code either. If
>it does not, please report this as an optimization bug to the isl mailing
>list.
>
>After you got feedback, I think it is OK to disable this test and to
>add a FIXME explaining why this test is disabled and if we can expect a fix
>in later versions of isl.
I've generated the code using the isl-0.13

if (n >= k + 1) {
   for (int c1 = 0; c1 < n; c1 += 1) {
     if (c1 >= k + 1) {
       S_7(c1);
     } else if (k >= c1 + 1) {
       S_7(c1);
     } else
       S_6(k);
   }
} else
   for (int c1 = 0; c1 < n; c1 += 1)
     S_7(c1);

If I'm not mistaken it's also a regression compared to ClooG and it's
better to report this to the isl mailing list.

That's what I suggested earlier, no? The only thing I would like you to check beforehand is if the very same problem still exists with isl trunk. For this you need to generate an input file for the 'isl_codegen' tool as it comes with isl that allows to reproduce the bug. The very same input file can then be submitted to the isl mailing list as a bug report. Could you do the reporting (and CC me)?

>What is the problem with this last test case?
It is related to checking for the loop parallelism, which is not yet
implemented in the current version of graphite-isl-ast-to-gimple.c.

OK. So yes, you are right that we need the parallelism test soon.

Cheers,
Tobias

Reply via email to