From 35a7afe1ac9543bcbe7ef1b6e3431896ecc23370 Mon Sep 17 00:00:00 2001 From: Ilya Enkovich Date: Thu, 26 Nov 2015 12:28:57 +0000 Subject: [PATCH] backport: re PR target/68416 ([MPX] GCC emits a lot of redundant bndmov instructions) gcc/ Backport from mainline r230938. 2015-11-26 Vladimir Makarov PR target/68416 * config/i386/i386.h (enum reg_class): Add bounds registers to ALL_REGS. gcc/testsuite/ Backport from mainline r230938. 2015-11-26 Ilya Enkovich PR target/68416 * gcc.target/i386/mpx/pr68416.c: New test. From-SVN: r230945 --- gcc/ChangeLog | 9 +++++++++ gcc/config/i386/i386.h | 2 +- gcc/testsuite/ChangeLog | 8 ++++++++ gcc/testsuite/gcc.target/i386/mpx/pr68416.c | 9 +++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/i386/mpx/pr68416.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 68e2787156ef..c226f1d91145 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2015-11-26 Ilya Enkovich + + Backport from mainline r230938. + 2015-11-26 Vladimir Makarov + + PR target/68416 + * config/i386/i386.h (enum reg_class): Add + bounds registers to ALL_REGS. + 2015-11-26 Kyrylo Tkachov Backport from mainline diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 9637ce3e9aed..d5a52631081f 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1429,7 +1429,7 @@ enum reg_class { 0x1ff1ffff,0xffffffe0, 0x1f }, /* FLOAT_INT_SSE_REGS */ \ { 0x0, 0x0, 0x1fc0 }, /* MASK_EVEX_REGS */ \ { 0x0, 0x0, 0x1fe0 }, /* MASK_REGS */ \ -{ 0xffffffff,0xffffffff, 0x1fff } \ +{ 0xffffffff,0xffffffff,0x1ffff } \ } /* The same information, inverted: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c2bef9538d28..c65569aa3f4a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2015-11-26 Ilya Enkovich + + Backport from mainline r230938. + 2015-11-26 Ilya Enkovich + + PR target/68416 + * gcc.target/i386/mpx/pr68416.c: New test. + 2015-11-26 Jakub Jelinek PR rtl-optimization/68249 diff --git a/gcc/testsuite/gcc.target/i386/mpx/pr68416.c b/gcc/testsuite/gcc.target/i386/mpx/pr68416.c new file mode 100644 index 000000000000..10587edf251f --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/mpx/pr68416.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mmpx -fcheck-pointer-bounds" } */ +/* { dg-final { scan-assembler-not "bndmov" } } */ + +int +foo(int **arr, int i) +{ + return (*arr)[i]; +}