This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Add missing ECF_NOTHROW flags to internal.def
- From: Richard Sandiford <richard dot sandiford at linaro dot org>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 17 Aug 2017 11:39:20 +0100
- Subject: Re: Add missing ECF_NOTHROW flags to internal.def
- Authentication-results: sourceware.org; auth=none
- References: <87o9refrvv.fsf@linaro.org> <CAFiYyc0xU-7Fu_quiG8xRP3wjjQxDKnp1Y==Jog3taW8rohGZg@mail.gmail.com>
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)