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