search for: mustmod

Displaying 7 results from an estimated 7 matches for "mustmod".

2017 Oct 09
3
Expose aliasing information in getModRefInfo (or viceversa?)
...st *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 09
2
Expose aliasing information in getModRefInfo (or viceversa?)
...obably not a good test of this, there are bugs filed > where we end up with tons of loads and stores to test against each other. > That's actually fairly rare in bootstrap, as you can see. > Let me get you some test cases. > SG, thanks! > > My guess is that we should go with mustmod. > > > As for callsites, adding mustmod works for call, memloc and call, call > testing. > > > > On Mon, Oct 9, 2017, 4:48 PM Alina Sbirlea <alina.sbirlea at gmail.com> > wrote: > >> Hi, >> >> This came up in https://reviews.llvm.org/D38569, a...
2017 Oct 09
1
Expose aliasing information in getModRefInfo (or viceversa?)
...Bootstrap is probably not a good test of this, there are bugs > filed where we end up with tons of loads and stores to test against > each other. That's actually fairly rare in bootstrap, as you can see. > Let me get you some test cases. > > My guess is that we should go with mustmod. I agree. -Hal > > > As for callsites, adding mustmod works for call, memloc and call, call > testing. > > > On Mon, Oct 9, 2017, 4:48 PM Alina Sbirlea <alina.sbirlea at gmail.com > <mailto:alina.sbirlea at gmail.com>> wrote: > > Hi, > >...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...s. Timings, average > over 5-10 runs (s): > 100 / 8.99 / 8.87 > 200 / 9.24 / 9.113 > 500 / 48.228 / 48.453 > > Larger case hits it 1872 times. Timings, average over 5 runs (s): > 100 / 23.575 / 23.962 > 200 / 23.874 / 23.848 > > > My guess is that we should go with mustmod. >>> >>> >>> As for callsites, adding mustmod works for call, memloc and call, call >>> testing. >>> >> >>> >> >>> >>> On Mon, Oct 9, 2017, 4:48 PM Alina Sbirlea <alina.sbirlea at gmail.com> >>> wrote...
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
4
Expose aliasing information in getModRefInfo (or viceversa?)
...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 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...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...