Message ID | 87o9refrvv.fsf@linaro.org |
---|---|
State | Accepted |
Commit | f8c770ddb4b5499780a5e2d58c861a9c903cdd29 |
Headers | show |
On Thu, Aug 17, 2017 at 11:47 AM, Richard Sandiford <richard.sandiford@linaro.org> wrote: > This patch adds missing ECF_NOTHROW flags to the vectorisable > integer internal functions. I noticed it while doing some SVE > work but don't have a testcase that's useful now. > > Tested on aarch64-linux-gnu and x86_64-linux-gnu. OK to install? ECF_LEAF is missing as well. Ok with adding them change. Richard. > Richard > > > 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org> > > gcc/ > * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add > missing ECF_NOTHROW flags. > > Index: gcc/internal-fn.def > =================================================================== > --- gcc/internal-fn.def 2017-08-10 14:36:08.046471664 +0100 > +++ gcc/internal-fn.def 2017-08-17 09:05:10.128942687 +0100 > @@ -135,12 +135,12 @@ DEF_INTERNAL_OPTAB_FN (XORSIGN, ECF_CONS > DEF_INTERNAL_FLT_FN (LDEXP, ECF_CONST, ldexp, binary) > > /* Unary integer ops. */ > -DEF_INTERNAL_INT_FN (CLRSB, ECF_CONST, clrsb, unary) > -DEF_INTERNAL_INT_FN (CLZ, ECF_CONST, clz, unary) > -DEF_INTERNAL_INT_FN (CTZ, ECF_CONST, ctz, unary) > -DEF_INTERNAL_INT_FN (FFS, ECF_CONST, ffs, unary) > -DEF_INTERNAL_INT_FN (PARITY, ECF_CONST, parity, unary) > -DEF_INTERNAL_INT_FN (POPCOUNT, ECF_CONST, popcount, unary) > +DEF_INTERNAL_INT_FN (CLRSB, ECF_CONST | ECF_NOTHROW, clrsb, unary) > +DEF_INTERNAL_INT_FN (CLZ, ECF_CONST | ECF_NOTHROW, clz, unary) > +DEF_INTERNAL_INT_FN (CTZ, ECF_CONST | ECF_NOTHROW, ctz, unary) > +DEF_INTERNAL_INT_FN (FFS, ECF_CONST | ECF_NOTHROW, ffs, unary) > +DEF_INTERNAL_INT_FN (PARITY, ECF_CONST | ECF_NOTHROW, parity, unary) > +DEF_INTERNAL_INT_FN (POPCOUNT, ECF_CONST | ECF_NOTHROW, popcount, unary) > > DEF_INTERNAL_FN (GOMP_USE_SIMT, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL) > DEF_INTERNAL_FN (GOMP_SIMT_ENTER, ECF_LEAF | ECF_NOTHROW, NULL)
Richard Biener <richard.guenther@gmail.com> writes: > On Thu, Aug 17, 2017 at 11:47 AM, Richard Sandiford > <richard.sandiford@linaro.org> wrote: >> This patch adds missing ECF_NOTHROW flags to the vectorisable >> integer internal functions. I noticed it while doing some SVE >> work but don't have a testcase that's useful now. >> >> Tested on aarch64-linux-gnu and x86_64-linux-gnu. OK to install? > > ECF_LEAF is missing as well. Ok with adding them change. That's added automatically for all directly-mapped functions by: #ifndef DEF_INTERNAL_OPTAB_FN #define DEF_INTERNAL_OPTAB_FN(NAME, FLAGS, OPTAB, TYPE) \ DEF_INTERNAL_FN (NAME, FLAGS | ECF_LEAF, NULL) #endif Thanks, Richard > > Richard. > >> Richard >> >> >> 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org> >> >> gcc/ >> * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add >> missing ECF_NOTHROW flags. >> >> Index: gcc/internal-fn.def >> =================================================================== >> --- gcc/internal-fn.def 2017-08-10 14:36:08.046471664 +0100 >> +++ gcc/internal-fn.def 2017-08-17 09:05:10.128942687 +0100 >> @@ -135,12 +135,12 @@ DEF_INTERNAL_OPTAB_FN (XORSIGN, ECF_CONS >> DEF_INTERNAL_FLT_FN (LDEXP, ECF_CONST, ldexp, binary) >> >> /* Unary integer ops. */ >> -DEF_INTERNAL_INT_FN (CLRSB, ECF_CONST, clrsb, unary) >> -DEF_INTERNAL_INT_FN (CLZ, ECF_CONST, clz, unary) >> -DEF_INTERNAL_INT_FN (CTZ, ECF_CONST, ctz, unary) >> -DEF_INTERNAL_INT_FN (FFS, ECF_CONST, ffs, unary) >> -DEF_INTERNAL_INT_FN (PARITY, ECF_CONST, parity, unary) >> -DEF_INTERNAL_INT_FN (POPCOUNT, ECF_CONST, popcount, unary) >> +DEF_INTERNAL_INT_FN (CLRSB, ECF_CONST | ECF_NOTHROW, clrsb, unary) >> +DEF_INTERNAL_INT_FN (CLZ, ECF_CONST | ECF_NOTHROW, clz, unary) >> +DEF_INTERNAL_INT_FN (CTZ, ECF_CONST | ECF_NOTHROW, ctz, unary) >> +DEF_INTERNAL_INT_FN (FFS, ECF_CONST | ECF_NOTHROW, ffs, unary) >> +DEF_INTERNAL_INT_FN (PARITY, ECF_CONST | ECF_NOTHROW, parity, unary) >> +DEF_INTERNAL_INT_FN (POPCOUNT, ECF_CONST | ECF_NOTHROW, popcount, unary) >> >> DEF_INTERNAL_FN (GOMP_USE_SIMT, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL) >> DEF_INTERNAL_FN (GOMP_SIMT_ENTER, ECF_LEAF | ECF_NOTHROW, NULL)
Index: gcc/internal-fn.def =================================================================== --- gcc/internal-fn.def 2017-08-10 14:36:08.046471664 +0100 +++ gcc/internal-fn.def 2017-08-17 09:05:10.128942687 +0100 @@ -135,12 +135,12 @@ DEF_INTERNAL_OPTAB_FN (XORSIGN, ECF_CONS DEF_INTERNAL_FLT_FN (LDEXP, ECF_CONST, ldexp, binary) /* Unary integer ops. */ -DEF_INTERNAL_INT_FN (CLRSB, ECF_CONST, clrsb, unary) -DEF_INTERNAL_INT_FN (CLZ, ECF_CONST, clz, unary) -DEF_INTERNAL_INT_FN (CTZ, ECF_CONST, ctz, unary) -DEF_INTERNAL_INT_FN (FFS, ECF_CONST, ffs, unary) -DEF_INTERNAL_INT_FN (PARITY, ECF_CONST, parity, unary) -DEF_INTERNAL_INT_FN (POPCOUNT, ECF_CONST, popcount, unary) +DEF_INTERNAL_INT_FN (CLRSB, ECF_CONST | ECF_NOTHROW, clrsb, unary) +DEF_INTERNAL_INT_FN (CLZ, ECF_CONST | ECF_NOTHROW, clz, unary) +DEF_INTERNAL_INT_FN (CTZ, ECF_CONST | ECF_NOTHROW, ctz, unary) +DEF_INTERNAL_INT_FN (FFS, ECF_CONST | ECF_NOTHROW, ffs, unary) +DEF_INTERNAL_INT_FN (PARITY, ECF_CONST | ECF_NOTHROW, parity, unary) +DEF_INTERNAL_INT_FN (POPCOUNT, ECF_CONST | ECF_NOTHROW, popcount, unary) DEF_INTERNAL_FN (GOMP_USE_SIMT, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL) DEF_INTERNAL_FN (GOMP_SIMT_ENTER, ECF_LEAF | ECF_NOTHROW, NULL)