Displaying 5 results from an estimated 5 matches for "getmodref".
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...his 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 getModRefInf...
2017 Oct 09
2
Expose aliasing information in getModRefInfo (or viceversa?)
...om>
> 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...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...we could do the same.
If we determine it's a must-alias 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 Arg...
2017 Nov 28
1
Expose aliasing information in getModRefInfo (or viceversa?)
> In your new proposal, doing & on the result of getModRef() may yield
unexpected results.
Agreed. I made the change I proposed locally, and, while it simplifies some
cases, it makes other bit-wise operations look unintuitive.
> Maybe we should just hide all that in inline functions or something and
make it an enum class
Noted, and looking into this op...
2017 Oct 10
4
Expose aliasing information in getModRefInfo (or viceversa?)
...as a major problem. Please feel free to fix these places
> by replacing the equality checks with mask checks.
>
Ok, thank you!
>
>
> -Hal
>
> So I guess my question is, what's the right approach here? I feel like I'm
> not on the right path.
>
>
>> In getModRefInfo(CS, Loc), the MRI_Must bit would then be set if
>>> doesAccessArgPointees and ArgAlias == MustAlias for all Args, which seems
>>> correct.
>>>
>>
>>
>> alias == MustAlias for Loc, not for all args.
>> (IE It it returns a singular result about L...