[LLVMdev] alias set collapse and LICM

Hal Finkel
Mon, 27 Apr 2015 22:57:13 -0000

----- Original Message -----
> From: "Sanjoy Das" <sanjoy at playingwithpointers.com>
> To: "Charles R Caldarale" <Chuck.Caldarale at unisys.com>
> Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
> Sent: Monday, April 27, 2015 5:44:18 PM
> Subject: Re: [LLVMdev] alias set collapse and LICM
>
> > Can you explain why the alias sets are collapsed into one here?
>
> If I'm reading the code correctly, it is because the readonly call
> aliases all of %a, %b and %c.  Since two pointers can be in two
> different alias sets only if they do not alias, %a has to be in the
> same alias set as the read only call and so does %b and %c.
> Therefore, all of them have to be in the same alias set.

That's correct. OTOH, I think we can loosen this somewhat (having separate
Mod and Ref alias sets, for example). We'd need to change the interface,
however, and update the clients. Luckily, there are very few clients.

 -Hal

>
> >  Can that collapsing simply be avoided for read-only calls without
> >  creating a second alias set?
>
> I have not yet come up with a simple scheme to solve that problem
> within AliasSetTracker.  Obviously, that does not mean that there
> isn't one.
>
> -- Sanjoy
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>

--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory