This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: TODO_rebuild_alias and -O0
On Mon, Oct 8, 2012 at 3:32 PM, Ludovic Courtès <ludo@gnu.org> wrote:
> Richard Guenther <richard.guenther@gmail.com> skribis:
>
>> On Mon, Oct 8, 2012 at 1:42 PM, Ludovic Courtès <ludo@gnu.org> wrote:
>>> Richard Guenther <richard.guenther@gmail.com> skribis:
>>>
>>>> On Mon, Oct 8, 2012 at 11:58 AM, Ludovic Courtès <ludo@gnu.org> wrote:
>>>>> Richard Guenther <richard.guenther@gmail.com> skribis:
>>>>>
>>>>>> At -O0 no virtual operands are produced. TODO_rebuild_alias only computes
>>>>>> points-to sets which are in itself not useful.
>>>>>>
>>>>>> What do you want to achieve with TODO_rebuild_alias?
>>>>>
>>>>> I basically want to use ‘ptr_derefs_may_alias_p’ in this particular pass.
>>>>
>>>> That should work.
>>>
>>> It actually does, except that ‘ptr_derefs_may_alias_p’ returns true for
>>> two SSA names in cases like this:
>>>
>>> double *p, *q;
>>> p = malloc (123);
>>> q = malloc (234);
>>>
>>> (Where ‘malloc’ has the ‘malloc’ attribute.)
>>>
>>> For some reason, there’s no such false positive when using TODO_rebuild_alias.
>>
>> Well, "that should work" means it works non-conservatively with
>> TODO_rebuild_alias, of course.
>
> Right. :-) So how can I get maximum accuracy, while avoid the assertion
> failure on -O0?
You have to analyze the assert more. From the backtrace I cannot see
anything suspicious.
> Thanks,
> Ludo’.