]> git.ipfire.org Git - thirdparty/gcc.git/commit
openacc: Disable pass_pre on outlined functions analyzed by Graphite
authorFrederik Harwath <frederik@codesourcery.com>
Tue, 16 Nov 2021 15:20:56 +0000 (16:20 +0100)
committerFrederik Harwath <frederik@codesourcery.com>
Wed, 17 Nov 2021 07:50:55 +0000 (08:50 +0100)
commit50d4be1d4dfefa739bdd06567700281afcb4f068
treed20f552ab20e5d90db5ff5bc2600ebea93236dc0
parent2da00a40daf6dd5aac10f0c5616a6cee7f960e5f
openacc: Disable pass_pre on outlined functions analyzed by Graphite

The additional dependences introduced by partial redundancy
elimination proper and by the code hoisting step of the pass very
often cause Graphite to fail on OpenACC functions. On the other hand,
the pass can also enable the analysis of OpenACC loops (cf. e.g. the
loop-auto-transfer-4.f90 testcase), for instance, because full
redundancy elimination removes definitions that would otherwise
prevent the creation of runtime alias checks outside of the SCoP.

This commit disables the actual partial redundancy elimination step as
well as the code hoisting step of pass_pre on OpenACC functions that
might be handled by Graphite.

gcc/ChangeLog:

        * tree-ssa-pre.c (insert): Skip any insertions in OpenACC
functions that might be processed by Graphite.
gcc/tree-ssa-pre.c