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...