[LLVMdev] AliasSetTracker and UnknownInst's (callsites mostly) problem (original) (raw)

Philip Reames listmail at philipreames.com
Tue Jul 28 11:01:55 PDT 2015


This was discussed a while back in the thread titled "alias set collapse and LICM".

Philip

On 07/28/2015 06:13 AM, Andrew Zhogin wrote:

Hi all,

There is a problem about how AliasSetTracker merging AliasSet's when meet UnknownInst. When adding new pointer it looks for existing AliasSet's aliased with new pointer. And merging them together. It is ok for pointers: if %A mayalias %B and %B mayalias %C then %A mayalias %C. But the same logic when adding callsite is wrong (findAliasSetForUnknownInst). Callsite may be known to readonly access one pointer and change the content of other pointer. Why to merge together two noalias pointers if they have some mod/ref relationships with common callsite? If modrefinfo(%A, %call1) == REF and modrefinfo(%B, %call1) == MOD it doesn't mean %A may/must alias %B. AliasSet's for %A and %B must stay independent with corrected access lattice: aliasset(%A).Access |= RefAccess, aliasset(%B).Access |= ModAccess. And I think new UnknownInst must be added to both AliasSet's. Or maybe UnknownInst's must be collected in central part - AliasSetTracker, not AliasSet's. Am I right? -- Best regards, Andrew Zhogin


LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150728/b4571eb8/attachment.html>



More information about the llvm-dev mailing list