On Thu, Nov 13, 2014 at 3:46 PM, Teresa Johnson <tejohn...@google.com> wrote:
> On Thu, Nov 13, 2014 at 6:36 AM, Jakub Jelinek <ja...@redhat.com> wrote:
>> On Thu, Nov 13, 2014 at 06:20:16AM -0800, Teresa Johnson wrote:
>>> Here is the new patch. Bootstrapped and tested on
>>> x86_64-unknown-linux-gnu. OK for trunk?
>>>
>>> Thanks,
>>> Teresa
>>>
>>> 2014-11-13    <tejohn...@google.com>
>>>
>>> gcc:
>>>         PR tree-optimization/63841
>>>         * tree.c (initializer_zerop): A constructor with no elements
>>>         does not zero initialize.
>>>
>>> gcc/testsuite:
>>>         PR tree-optimization/63841
>>>         * g++.dg/tree-ssa/pr63841.C: New test.
>>>
>>> Index: tree.c
>>> ===================================================================
>>> --- tree.c      (revision 217190)
>>> +++ tree.c      (working copy)
>>> @@ -10330,6 +10330,8 @@ initializer_zerop (const_tree init)
>>>        {
>>>         unsigned HOST_WIDE_INT idx;
>>>
>>> +        if (TREE_CLOBBER_P (init))
>>> +          return false;
>>
>> Wrong formatting.
>
> Sorry, not sure I understand why? My mailer does tend to eat spaces,
> but it is indented the correct amount and I think has the right spaces
> within the line.
>
>>
>> Also, while this perhaps is useful, I'd say the right fix is that 
>> strlen_optimize_stmt
>> should just ignore gimple_clobber_p (stmt) statements (well, call
>> the maybe_invalidate at the end for them).
>> So
>> -  else if (is_gimple_assign (stmt))
>> +  else if (is_gimple_assign (stmt) && !gimple_clobber_p (stmt))
>> in strlen_optimize_stmt.
>
> Ok, I have held off on my commit for now. I considered fixing this in
> tree-ssa-strlen, but thought this was a potentially larger problem
> with initializer_zerop, where it shouldn't be considering a clobber to
> be a zero init and might be affecting other callers as well.

I think it is.

Richard.

> If we make the change to initializer_zerop is it still useful to
> change tree-strlen?
>
> Teresa
>
>>
>>         Jakub
>
>
>
> --
> Teresa Johnson | Software Engineer | tejohn...@google.com | 408-460-2413

Reply via email to