search for: modrefinfo

Displaying 13 results from an estimated 13 matches for "modrefinfo".

2017 Oct 09
3
Expose aliasing information in getModRefInfo (or viceversa?)
Hi, This came up in https://reviews.llvm.org/D38569, and I'd like some input on what's the best way to get alias and mod-ref info without having two alias calls. A couple of ideas: (a) Extend the getModRefInfo interface (+getModRefBehavior, +gerArgModRefInfo) to return a pair {ModRefInfo, AliasResult}. The AliasResult can be optional based on an argument e.g.: struct MRI_AR { ModRefInfo MRI, AliasResult AR }; MRI_AR getModRefInfoAlias (LoadInst *LI, MemoryLocation Loc, bool SetAliasResultFi...
2017 Oct 09
2
Expose aliasing information in getModRefInfo (or viceversa?)
...gt; > wrote: > >> Hi, >> >> This came up in https://reviews.llvm.org/D38569, and I'd like some input >> on what's the best way to get alias and mod-ref info without having two >> alias calls. >> >> A couple of ideas: >> (a) Extend the getModRefInfo interface (+getModRefBehavior, >> +gerArgModRefInfo) to return a pair {ModRefInfo, AliasResult}. >> >> The AliasResult can be optional based on an argument >> e.g.: >> struct MRI_AR { ModRefInfo MRI, AliasResult AR }; >> MRI_AR getModRefInfoAlias (Lo...
2017 Oct 09
1
Expose aliasing information in getModRefInfo (or viceversa?)
...mail.com>> wrote: > > Hi, > > This came up in https://reviews.llvm.org/D38569, and I'd like some > input on what's the best way to get alias and mod-ref info without > having two alias calls. > > A couple of ideas: > (a) Extend the getModRefInfo interface (+getModRefBehavior, > +gerArgModRefInfo) to return a pair {ModRefInfo, AliasResult}. > > The AliasResult can be optional based on an argument > e.g.: > struct MRI_AR { ModRefInfo MRI, AliasResult AR }; > MRI_AR getModRefInfoAlias (LoadIn...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...is odd. On my clang.bc Without: 2.2967 ( 53.8%) 0.0242 ( 26.4%) 2.3210 ( 53.2%) 2.3227 ( 53.2%) Memory SSA 2.3364 ( 53.7%) 0.0246 ( 25.7%) 2.3610 ( 53.1%) 2.3636 ( 53.1%) Memory SSA 2.3353 ( 54.0%) 0.0258 ( 27.0%) 2.3611 ( 53.4%) 2.3632 ( 53.3%) Memory SSA With two getModRefInfo calls: 3.0302 ( 58.8%) 0.0328 ( 29.9%) 3.0630 ( 58.2%) 3.0858 ( 58.2%) Memory SSA 3.0097 ( 58.9%) 0.0325 ( 30.0%) 3.0422 ( 58.3%) 3.0590 ( 58.3%) Memory SSA 3.0486 ( 58.8%) 0.0317 ( 29.4%) 3.0804 ( 58.2%) 3.1331 ( 58.3%) Memory SSA with alias followed by getModRefInfo...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...Are we instead looking to set a MRI_Must bit, disjunct of MRI_Mod, and >> test for MRI_Ref&MRI_Must or MRI_Mod&MRI_Must? >> > > Yes. > I didn't mean to pick on the example, sorry if that's how it came through. Since the consensus is to expose the Must info in ModRefInfo, I'm trying to figure out how to add it in a way that makes sense to me. The way I see ModRefInfo is designed right now is to lower the lattice to NoModRef as fast as possible (start with ModRef as top, get to NoModRef as bottom). The implementation is based on having either Mod or Ref and mask...
2017 Oct 10
4
Expose aliasing information in getModRefInfo (or viceversa?)
...ust bit, disjunct of MRI_Mod, and >>> test for MRI_Ref&MRI_Must or MRI_Mod&MRI_Must? >>> >> >> Yes. >> > > I didn't mean to pick on the example, sorry if that's how it came through. > > Since the consensus is to expose the Must info in ModRefInfo, I'm trying > to figure out how to add it in a way that makes sense to me. > The way I see ModRefInfo is designed right now is to lower the lattice to > NoModRef as fast as possible (start with ModRef as top, get to NoModRef as > bottom). The implementation is based on having either...
2015 Jul 28
1
[LLVMdev] AliasSetTracker and UnknownInst's (callsites mostly) problem
...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 Alia...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...r fp in this example is: isMustAlias (CallSite argument a, Value a) && getModRefBehavior(CallSite)== onlyReadsMemory. So adding a MRI_MustMod is insufficient? Are we instead looking to set a MRI_Must bit, disjunct of MRI_Mod, and test for MRI_Ref&MRI_Must or MRI_Mod&MRI_Must? In getModRefInfo(CS, Loc), the MRI_Must bit would then be set if doesAccessArgPointees and ArgAlias == MustAlias for all Args, which seems correct. I may be missing something here, I don't want to dive into the wrong implementation. On Tue, Oct 10, 2017 at 9:16 AM, Alina Sbirlea <alina.sbirlea at gmail.c...
2017 Nov 28
1
Expose aliasing information in getModRefInfo (or viceversa?)
...l Finkel <hfinkel at anl.gov>; Daniel Berlin <dberlin at dberlin.org>; >> George Burgess IV <george.burgess.iv at gmail.com>; Sanjoy Das < >> sanjoy at playingwithpointers.com> >> >> >> *Subject:* Re: [llvm-dev] Expose aliasing information in getModRefInfo >> (or viceversa?) >> >> >> >> Hi Nuno, >> >> >> >> Thanks for taking the time to look over this! >> >> >> >> Here's the reasoning I reached after going over this again. >> >> >> >> > "...
2015 Jun 13
7
[LLVMdev] AliasAnalysis refactoring for the new pass manager
...9;t *just* results, so I don't like the current name. Whatever convention we use, we should use a similar one for the ModRef stuff. ModRefBehavior there already seems to have good names if it were switched to an enum class outside of AA. ModRefResult I would probably make ModRefKind, but maybe ModRefInfo? We call the methods getModRefInfo.... Please suggest patterns that you like! -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150613/d7e8f2ce/attachment.html>
2016 Aug 29
2
GVN / Alias Analysis issue with llvm.masked.scatter/gather intrinsics
this is definitely a bug in AA. 225 for (auto I = CS2.arg_begin(), E = CS2.arg_end(); I != E; ++I) { 226 const Value *Arg = *I; 227 if (!Arg->getType()->isPointerTy()) -> 228 continue; 229 unsigned CS2ArgIdx = std::distance(CS2.arg_begin(), I); 230 auto CS2ArgLoc = MemoryLocation::getForArgument(CS2, CS2ArgIdx, TLI);
2016 Aug 29
2
GVN / Alias Analysis issue with llvm.masked.scatter/gather intrinsics
...llvm-dev/attachments/20160829/db3748fd/attachment.html> -------------- next part -------------- diff --git a/lib/Analysis/AliasAnalysis.cpp b/lib/Analysis/AliasAnalysis.cpp index f931b6f..ee51067 100644 --- a/lib/Analysis/AliasAnalysis.cpp +++ b/lib/Analysis/AliasAnalysis.cpp @@ -155,7 +155,7 @@ ModRefInfo AAResults::getModRefInfo(ImmutableCallSite CS, if (doesAccessArgPointees(MRB)) { for (auto AI = CS.arg_begin(), AE = CS.arg_end(); AI != AE; ++AI) { const Value *Arg = *AI; - if (!Arg->getType()->isPointerTy()) + if (!Arg->getType()->isPtrOrPtrVectorTy...
2015 Jun 15
2
[LLVMdev] AliasAnalysis refactoring for the new pass manager
...Unknown, Partial, Complete }; > Whatever convention we use, we should use a similar one for the ModRef stuff. ModRefBehavior there already seems to have good names if it were switched to an enum class outside of AA. ModRefResult I would probably make ModRefKind, but maybe ModRefInfo? We call the methods getModRefInfo.... > > Please suggest patterns that you like! > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev &g...