Hi,

The first patch of this set:
  Fix PR47653: do not handle loops using wrapping semantics in graphite
follows the recommendation from Tobias:
> As a first step to make Graphite correct, I would just bail out if
> overflows can occur.

Not handling induction variables of unsigned types has some minor
impact on the testsuite: several testcases of graphite have to be
adjusted.

As one of the graphite-auto-par testcases started failing, I went to
investigate the problem, and I found out that the parallelized loops
are all transformed into canonical loops that unfortunately iterate
using an unsigned induction variable.  The second patch:
  canonicalize_loop_ivs should not generate unsigned types.
fixes the canonicalization pass to generate unsigned types only when
the largest IV in the loop has an unsigned type.  This change may have
a positive effect on the vectorize-ability of parallelized loops.

Finally, in the last patch, I'm removing one more call to a lang_hooks
from the data dependence analysis code:
  Avoid use of lang_hooks.types.type_for_size.

The patch set passed bootstrap and regression test on amd64-linux.
Ok for trunk?

Thanks,
Sebastian

Reply via email to