https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111683

--- Comment #20 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
That is true.  I've been also wondering whether e.g. for the pr71083.c case we
couldn't just look through all COMPONENT_REFs of the DR_REF (and maybe
ARRAY_REFs with constant indexes) and check type size of the aggregate it is in
against the size.  That could perhaps fix the predcom of pr71083.c, because it
is a 24-bit bitfield in 4 byte structure.

Will you take this over, or should I tweak my patch?

Note, statistics I've gathered with the above posted patch was that the patch
did something in
/home/jakub/src/gcc/gcc/testsuite/c-c++-common/torture/pr101636.c bar
/home/jakub/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr32399.c f
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/autopar/pr69109-2.c f
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/graphite/pr71575-2.c fn1
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/loop-versioning-6.c f1
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr111683-1.c main
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr111683-2.c main
but only changed the generated code in the last 2 (those are intentional).
The older patch with wi::multiple_of_p affected
/home/jakub/src/gcc/gcc/testsuite/c-c++-common/torture/pr101636.c bar
/home/jakub/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr32399.c f
/home/jakub/src/gcc/gcc/testsuite/gcc.c-torture/execute/pr71083.c bar
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/autopar/pr69109-2.c f
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/graphite/pr71575-2.c fn1
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/loop-versioning-6.c f1
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr111683-1.c main
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr111683-2.c main
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/torture/pr112736.c fn1
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/torture/pr68379.c fn1
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/tree-ssa/pr87022.c main
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/vect/pr101445.c foo
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/vect/pr68502-2.c reset_nodes
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/vect/pr81740-2.c main
/home/jakub/src/gcc/gcc/testsuite/gcc.dg/vect/vect-avg-16.c f
/home/jakub/src/gcc/gcc/testsuite/g++.dg/vect/pr95297.cc test
and changed code generation of the 2 expected tests and pr71083.c.  All this
statistics was solely from make check-gcc check-g++.

Reply via email to