On Thu, 28 Jun 2018 at 05:11, Jeff Law <l...@redhat.com> wrote: > > On 06/19/2018 08:11 AM, Tamar Christina wrote: > > Hi All, > > > > Previously GCC's no-op detection could would consider something a no-op > > even when the > > mode change is not directly possible. This caused subregs that shouldn't > > be removed > > to be treated as a no-op and deleted. > > > > Regtested on armeb-none-eabi and no regressions. > > Bootstrapped on arm-none-linux-gnueabihf and no issues. > > > > Ok for trunk? and for backport to GCC 8? > > > > Thanks, > > Tamar > > > > gcc/ > > 2018-06-19 Tamar Christina <tamar.christ...@arm.com> > > > > PR target/84711 > > * rtlanal.c (set_noop_p): Constrain on mode change, > > include hard-reg-set.h > > > OK. Though please include a testcase. I believe you had > big-endian-subreg.c in the original target specific approach to fixing > this problem. That'd be fine to re-use here. >
Hi, It looks like this new test fails on x86_32 (i686-pc-linux-gnu): /gcc/testsuite/gcc.dg/vect/pr84711.c: In function 'fn1': /gcc/testsuite/gcc.dg/vect/pr84711.c:8:5: note: The ABI for passing parameters with 16-byte alignment has changed in GCC 4.6 /gcc/testsuite/gcc.dg/vect/pr84711.c:8:5: warning: SSE vector argument without SSE enabled changes the ABI [-Wpsabi] FAIL: gcc.dg/vect/pr84711.c -flto -ffat-lto-objects (test for excess errors) Excess errors: /gcc/testsuite/gcc.dg/vect/pr84711.c:8:5: warning: SSE vector argument without SSE enabled changes the ABI [-Wpsabi] > jeff