On Fri, 7 Apr 2017, Rainer Orth wrote:

> Hi Richard,
> 
> > On Thu, 6 Apr 2017, Rainer Orth wrote:
> >
> >> Hi Richard,
> >> 
> >> > The following patch makes sure to preserve (mis-)alignment of memory
> >> > references when IVOPTs generates TARGET_MEM_REFs for them.
> >> >
> >> > Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.
> >> >
> >> > Richard.
> >> >
> >> > 2017-04-06  Richard Biener  <rguent...@suse.de>
> >> >
> >> >  PR tree-optimization/80334
> >> >  * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
> >> >  preserve alignment of accesses.
> >> >
> >> >  * g++.dg/torture/pr80334.C: New testcase.
> >> 
> >> the new testcase FAILs on 32-bit Solaris/SPARC:
> >> 
> >> +FAIL: g++.dg/torture/pr80334.C   -O0  (test for excess errors)
> >> +FAIL: g++.dg/torture/pr80334.C   -O1  (test for excess errors)
> >> +FAIL: g++.dg/torture/pr80334.C   -O2  (test for excess errors)
> >> +FAIL: g++.dg/torture/pr80334.C   -O2 -flto  (test for excess errors)
> >> +FAIL: g++.dg/torture/pr80334.C -O2 -flto -flto-partition=none (test for
> >> exce
> >> ss errors)
> >> +FAIL: g++.dg/torture/pr80334.C -O3 -fomit-frame-pointer -funroll-loops
> >> -fpeel
> >> -loops -ftracer -finline-functions  (test for excess errors)
> >> +FAIL: g++.dg/torture/pr80334.C   -O3 -g  (test for excess errors)
> >> +FAIL: g++.dg/torture/pr80334.C   -Os  (test for excess errors)
> >> 
> >> Excess errors:
> >> /vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/torture/pr80334.C:11:20:
> >> warning: requested alignment 16 is larger than 8 [-Wattributes]
> >
> > Any suggestion how to mitigate that?  Possible solution includes
> > adding { target { ! ... } } to dg-do run.
> 
> No idea.  However, according to gcc-testresults there are other
> failures: s390-ibm-inux-gnu and s390x-ibm-linux-gnu so far.
> 
> This might argue against just excluding a random list of failing targets.

Hmm.  Does using __BIGGEST_ALIGNMENT__, thus

int
main()
{
  alignas(__BIGGEST_ALIGNMENT__) B b[3];
...

work for you?

Richard.

Reply via email to