On Mon, Oct 26, 2015 at 1:26 PM, Tom de Vries <tom_devr...@mentor.com> wrote:
> Hi,
>
> After spending some time looking at ealias/pta dumps, I realized that
> they're hard to understand because we use varinfo names to identify
> varinfos, while those names are not necessarily unique.
>
> F.i., for a function f:
> ...
> void
> f (int *__restrict__ a, int *__restrict__ b)
> {
>   *a = 1;
>   *b = 2;
> }
> ...
>
> we have at ealias the constraints:
> ...
> a = &PARM_NOALIAS
> PARM_NOALIAS = NONLOCAL
> b = &PARM_NOALIAS
> PARM_NOALIAS = NONLOCAL
> derefaddrtmp = &NONLOCAL
> *a = derefaddrtmp
> derefaddrtmp = &NONLOCAL
> *b = derefaddrtmp
> ...
> F.i. PARM_NOALIAS occurs several times, and it's not clear if there are one
> or two varinfos with that name.
>
> Using attached patch, it's clearer what varinfos the constraints relate to:
> ...
> a(8) = &PARM_NOALIAS(9)
> PARM_NOALIAS(9) = NONLOCAL(5)
> b(10) = &PARM_NOALIAS(11)
> PARM_NOALIAS(11) = NONLOCAL(5)
> derefaddrtmp(12) = &NONLOCAL(5)
> *a(8) = derefaddrtmp(12)
> derefaddrtmp(13) = &NONLOCAL(5)
> *b(10) = derefaddrtmp(13)
> ...
>
> It this a good idea, f.i. guarded by (dump_flags & TDF_DETAILS) not to
> disturb scans of current tests?
>
> Or, do we f.i. want to fix the names themselves to be unique?

I think so, on most cases the (n) adds clutter without extra info.

Richard.

>
> Thanks,
> - Tom

Reply via email to