This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, MPX, 2/X] Pointers Checker [16/25] Tail recursion
- From: Ilya Enkovich <enkovich dot gnu at gmail dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 19 Nov 2013 01:03:01 +0400
- Subject: Re: [PATCH, MPX, 2/X] Pointers Checker [16/25] Tail recursion
- Authentication-results: sourceware.org; auth=none
- References: <20131118103733 dot GJ21297 at msticlxl57 dot ims dot intel dot com> <528A52E9 dot 6090102 at redhat dot com> <CAMbmDYbdst13nF7cKaWiwDDg41mOY8bCDLsQBXgTZ0iEKcM=NQ at mail dot gmail dot com> <528A5D18 dot 8040404 at redhat dot com> <CAMbmDYY4xnFhw6qpgJWk=EG-HwvjurR0b0BjQiVakMxexUyKkQ at mail dot gmail dot com> <528A7AE7 dot 7080902 at redhat dot com>
2013/11/19 Jeff Law <law@redhat.com>:
> On 11/18/13 12:16, Ilya Enkovich wrote:
>>
>> With current recursion elimination we will have:
>>
>> test (int *param1)
>> {
>> <bb1>:
>>
>> <bb2>:
>> _7 = PHI<param1(D) (bb1), _6 (bb2)>
>> bounds2 = __builtin_arg_bounds (_7) -- WRONG
>
> I wouldn't say it's wrong. It's conservatively correct if properly
> implemented. Why precisely do you consider this wrong? If your code can't
> handle it, it really should be fixed.
It is wrong because __builtin_arg_bounds is used to get bounds of
input parameter and PHI node here is not an input parameter. Correctl
handling of __builtin_arg_bounds in this 'wrong' example requires
adding it a PHI node semantics based on it's arg. For me it seems
more complex then generating a regular PHI node for bounds and makes
GIMPLE less readable.
Ilya
>
> Jeff
>
>
- References:
- [PATCH, MPX, 2/X] Pointers Checker [16/25] Tail recursion
- Re: [PATCH, MPX, 2/X] Pointers Checker [16/25] Tail recursion
- Re: [PATCH, MPX, 2/X] Pointers Checker [16/25] Tail recursion
- Re: [PATCH, MPX, 2/X] Pointers Checker [16/25] Tail recursion
- Re: [PATCH, MPX, 2/X] Pointers Checker [16/25] Tail recursion
- Re: [PATCH, MPX, 2/X] Pointers Checker [16/25] Tail recursion