"Bug 47046 - gcc.target/i386/sse4_1-movntdqa.c ICEs with -fgraphite-identity" The problem here is that we are left with the following code to be translated in the new representation following the transform that Graphite has chosen: D.2709_14 = j_33 * i_32; D.2710_15 = D.2709_14 * i_32; D.2711_16 = D.2710_15 * sign_34; *D.2708_13 = D.2711_16; In this particular case we have a nonlinear expression "i * i" for which we have to generate code following the new graphite_iv variables. The patch fixes the function that detects whether we are passing non linear stuff to graphite: evolution_function_is_affine_p. It seems like for the moment evolution_function_is_affine_p is testing whether an evolution function is affine only in the innermost loop, without looking recursively at what happens in outer loops. The chrec for this case is: {0, +, {0, +, {1, +, 2}_1}_1}_2 and we are testing whether the evolution is affine only for the loop_2, which is true as we have {0, +, blah}_2 with blah invariant in loop_2. The patch adds the recursive call to evolution_function_is_affine_p. Bootstrapped and tested on amd64-linux. 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/47046 * tree-chrec.h (evolution_function_is_affine_p): Recursively call evolution_function_is_affine_p on CHREC_RIGHT. * gcc.dg/graphite/id-pr47046.c: New. From-SVN: r176805
Name |
Last commit
|
Last update |
---|---|---|
INSTALL | Loading commit data... | |
boehm-gc | Loading commit data... | |
config | Loading commit data... | |
contrib | Loading commit data... | |
fixincludes | Loading commit data... | |
gcc | Loading commit data... | |
gnattools | Loading commit data... | |
include | Loading commit data... | |
intl | Loading commit data... | |
libada | Loading commit data... | |
libcpp | Loading commit data... | |
libdecnumber | Loading commit data... | |
libffi | Loading commit data... | |
libgcc | Loading commit data... | |
libgfortran | Loading commit data... | |
libgo | Loading commit data... | |
libgomp | Loading commit data... | |
libiberty | Loading commit data... | |
libjava | Loading commit data... | |
libmudflap | Loading commit data... | |
libobjc | Loading commit data... | |
libquadmath | Loading commit data... | |
libssp | Loading commit data... | |
libstdc++-v3 | Loading commit data... | |
lto-plugin | Loading commit data... | |
maintainer-scripts | Loading commit data... | |
zlib | Loading commit data... | |
ABOUT-NLS | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
COPYING.RUNTIME | Loading commit data... | |
COPYING3 | Loading commit data... | |
COPYING3.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.tree-ssa | Loading commit data... | |
MAINTAINERS | Loading commit data... | |
Makefile.def | Loading commit data... | |
Makefile.in | Loading commit data... | |
Makefile.tpl | Loading commit data... | |
README | Loading commit data... | |
compile | Loading commit data... | |
config-ml.in | Loading commit data... | |
config.guess | Loading commit data... | |
config.rpath | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.ac | Loading commit data... | |
depcomp | Loading commit data... | |
install-sh | Loading commit data... | |
libtool-ldflags | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltgcc.m4 | Loading commit data... | |
ltmain.sh | Loading commit data... | |
ltoptions.m4 | Loading commit data... | |
ltsugar.m4 | Loading commit data... | |
ltversion.m4 | Loading commit data... | |
lt~obsolete.m4 | Loading commit data... | |
missing | Loading commit data... | |
mkdep | Loading commit data... | |
mkinstalldirs | Loading commit data... | |
move-if-change | Loading commit data... | |
symlink-tree | Loading commit data... | |
ylwrap | Loading commit data... |