search for: mri_mustmod

Displaying 8 results from an estimated 8 matches for "mri_mustmod".

2017 Oct 10
4
Expose aliasing information in getModRefInfo (or viceversa?)
...ite: start lattice at > bottom, set to top. > > What I was trying, that *somewhat* made sense: > enum ModRefInfo { > MRI_NoModRef = 0, > MRI_Ref = 1, > MRI_Mod = 2, > MRI_ModRef = MRI_Ref | MRI_Mod, > MRI_Must = 4, > MRI_MustRef = MRI_Ref | MRI_Must, > MRI_MustMod = MRI_Mod | MRI_Must, > MRI_MustModRef = MRI_ModRef | MRI_Must > }; > // + shift values in FunctionModRefLocation to 8, 16, 32. > > Recursive masking of MRI_Ref/MRI_Mod would get replaced by > MRI_MustRef/MRI_MustMod. > But the top of the lattice is still MRI_ModRef. > Whi...
2017 Nov 28
1
Expose aliasing information in getModRefInfo (or viceversa?)
...> ’t know enough about this specific code to help with this respect. >> >> >> >> My concern was with the users of getModReg(). In your new proposal, >> doing & on the result of getModRef() may yield unexpected results. >> >> E.g., “getModRef() & MRI_MustMod != 0” doesn’t imply that the >> instruction will write because the result might have been MRI_Mod (= >> NoModRef | MustMod). >> >> As long as this fact is properly document, I’m good :) (btw, thanks for >> fixing the documentation of the old MRI_* values; it was reall...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...is conservative) and then preserving it, so the opposite: start lattice at bottom, set to top. What I was trying, that *somewhat* made sense: enum ModRefInfo { MRI_NoModRef = 0, MRI_Ref = 1, MRI_Mod = 2, MRI_ModRef = MRI_Ref | MRI_Mod, MRI_Must = 4, MRI_MustRef = MRI_Ref | MRI_Must, MRI_MustMod = MRI_Mod | MRI_Must, MRI_MustModRef = MRI_ModRef | MRI_Must }; // + shift values in FunctionModRefLocation to 8, 16, 32. Recursive masking of MRI_Ref/MRI_Mod would get replaced by MRI_MustRef/MRI_MustMod. But the top of the lattice is still MRI_ModRef. While the implementation details *may* be...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...s of a set of things, we could do the same If we determine it's a must-alias of the live on entry def, etc If I understand correctly, the necessary info for 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...
2017 Oct 09
3
Expose aliasing information in getModRefInfo (or viceversa?)
...adInst *LI, MemoryLocation Loc, bool SetAliasResultField); Add wrapper APIs to preserve current calls. e.g.: ModRefInfo getModRefInfo (LoadInst *LI, MemoryLocation Loc) { return getModRefInfoAlias (LI, Loc, false).MRI; } (b) From talking offline with George, introducing a MRI_MustMod in ModRefInfo. Open question: How to handle callsites. In terms of whether this is worth doing, as a preliminary timing test I timed the llvm bootstrap build with 1 vs 2 alias calls in D38569: instructionClobbersQuery:296, and got the following: 2 alias calls: real 62m52.627s user 2769m46...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...s. >>>> e.g.: >>>> ModRefInfo getModRefInfo (LoadInst *LI, MemoryLocation Loc) { >>>> return getModRefInfoAlias (LI, Loc, false).MRI; >>>> } >>>> >>>> (b) From talking offline with George, introducing a MRI_MustMod in >>>> ModRefInfo. >>>> >>>> >>>> Open question: How to handle callsites. >>>> >>>> >>>> In terms of whether this is worth doing, as a preliminary timing test I >>>> timed the llvm bootstrap build with...
2017 Oct 09
2
Expose aliasing information in getModRefInfo (or viceversa?)
...t;> Add wrapper APIs to preserve current calls. >> e.g.: >> ModRefInfo getModRefInfo (LoadInst *LI, MemoryLocation Loc) { >> return getModRefInfoAlias (LI, Loc, false).MRI; >> } >> >> (b) From talking offline with George, introducing a MRI_MustMod in >> ModRefInfo. >> >> >> Open question: How to handle callsites. >> >> >> In terms of whether this is worth doing, as a preliminary timing test I >> timed the llvm bootstrap build with 1 vs 2 alias calls in D38569: >> instructionClobbersQuery:...
2017 Oct 09
1
Expose aliasing information in getModRefInfo (or viceversa?)
...; > Add wrapper APIs to preserve current calls. > e.g.: > ModRefInfo getModRefInfo (LoadInst *LI, MemoryLocation Loc) { > return getModRefInfoAlias (LI, Loc, false).MRI; > } > > (b) From talking offline with George, introducing a MRI_MustMod in > ModRefInfo. > > > Open question: How to handle callsites. > > > In terms of whether this is worth doing, as a preliminary timing > test I timed the llvm bootstrap build with 1 vs 2 alias calls in > D38569: instructionClobbersQuery:296, and got the...