Hi Maxim, short after the initial commit there came two more fix-ups in the same function:
$ svn log -r263896 ------------------------------------------------------------------------ r263896 | law | 2018-08-27 22:31:14 +0200 (Mon, 27 Aug 2018) | 4 lines * tree-ssa-dse.c (compute_trims): Handle case where the reference's type does not have a TYPE_SIZE_UNIT. * gcc.c-torture/compile/dse.c: New test. ------------------------------------------------------------------------ $ svn log -r263906 ------------------------------------------------------------------------ r263906 | law | 2018-08-28 06:02:11 +0200 (Tue, 28 Aug 2018) | 6 lines PR tree-optimization/87110 * tree-ssa-dse.c (compute_trims): Handle non-constant TYPE_SIZE_UNIT. PR tree-optimization/87110 * gcc.c-torture/compile/pr87110.c: New test. ------------------------------------------------------------------------ I believe not having those applied is causing the segfault you are seeing. Bernd. On 10/24/18 7:46 AM, Maxim Kuvyrkov wrote: > Hi Jeff, > Hi Bernd, > > This change (git commit d0eb64b248a9e40dfa633c4e4baebc3b238fd6eb / svn rev. > 263793) causes a segfault when build Linux kernel for AArch64. The exact > configuration is > === > git_repo[linux]=https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git > git_branch[linux]=linux-4.14.y > git_repo[gcc]=git://gcc.gnu.org/git/gcc.git > git_branch[gcc]=master > linux_config=allmodconfig > === > > The bisection artifacts point at this exact commit: > Parent commit 0584c3707994997f5dc9fa79732d01a53c25db6a can build 18083 > objects. > This commit d0eb64b248a9e40dfa633c4e4baebc3b238fd6eb can build 18076 objects > from the same linux tree. > > The relevant error (see [1]): > == > during GIMPLE pass: dse > drivers/md/dm-mpath.c: In function 'multipath_init_per_bio_data': > drivers/md/dm-mpath.c:2032:1: internal compiler error: Segmentation fault > == > > Full bisection artifacts are at [2]. > > Bernd, would you please investigate? > > IMO, this should be easy to reproduce from the bisection logs, but let me > know if it's not straightforward. Best ping on IRC (I'm maximk) or follow up > here. > > FYI, there is another regression (either caused or unmasked by Kugan's gcc > commit b88c25691cf8b153db44108935db871e1d40db89), but it appears orthogonal > to this one. > > [1] > https://ci.linaro.org/view/tcwg_kernel-gnu/job/tcwg_kernel-bisect-gnu-master-aarch64-lts-allmodconfig/8/artifact/artifacts/build-d0eb64b248a9e40dfa633c4e4baebc3b238fd6eb/5-count_linux_objs/console.log/*view*/ > > [2] > https://ci.linaro.org/view/tcwg_kernel-gnu/job/tcwg_kernel-bisect-gnu-master-aarch64-lts-allmodconfig/8/artifact/artifacts/ > > Regards, > > -- > Maxim Kuvyrkov > www.linaro.org > > > >> On Aug 22, 2018, at 2:43 AM, Jeff Law <l...@redhat.com> wrote: >> >> [ I'm still digesting, but saw something in this that ought to be broken >> out... ] >> >> On 08/19/2018 09:55 AM, Bernd Edlinger wrote: >>> diff -Npur gcc/tree-ssa-dse.c gcc/tree-ssa-dse.c >>> --- gcc/tree-ssa-dse.c 2018-07-18 21:21:34.000000000 +0200 >>> +++ gcc/tree-ssa-dse.c 2018-08-19 14:29:32.344498771 +0200 >>> @@ -248,6 +248,12 @@ compute_trims (ao_ref *ref, sbitmap live >>> residual handling in mem* and str* functions is usually >>> reasonably efficient. */ >>> *trim_tail = last_orig - last_live; >>> + /* Don't fold away an out of bounds access, as this defeats proper >>> + warnings. */ >>> + if (*trim_tail >>> + && compare_tree_int (TYPE_SIZE_UNIT (TREE_TYPE (ref->base)), >>> + last_orig) <= 0) >>> + *trim_tail = 0; >>> } >>> else >>> *trim_tail = 0; >> This seems like a good change in and of itself and should be able to go >> forward without further review work. Consider this hunk approved, >> along with any testsuite you have which tickles this code (I didn't >> immediately see one attached to this patch. But I could have missed it). >> >> Jeff >