Displaying 5 results from an estimated 5 matches for "mri_modref".
Did you mean:
mri_nomodref
2017 Oct 10
4
Expose aliasing information in getModRefInfo (or viceversa?)
..., means setting it occasionally (since May 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 r...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...out everything else.
Introducing a Must bit, means setting it occasionally (since May 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...
2017 Nov 28
1
Expose aliasing information in getModRefInfo (or viceversa?)
...>> So talking offline is Sanjoy, we reached a slightly different conclusion
>> which makes more sense to me.
>>
>>
>>
>> Current patch has:
>>
>> 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
>> };
>>
>>
>>
>> Proposed change:
>>
>> enu...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
I'm trying to understand what is the result we'd seek in the example
in D38569 (pasting here for quick access)
double f(double a)
{
double b;
double c,d;
double (*fp) (double) __attribute__ ((const));
/* Partially redundant call */
if (a < 2.0)
{
fp = sin;
c = fp (a);
}
else
{
c = 1.0;
fp = cos;
}
d = fp (a);
2015 Aug 10
2
load instruction erroneously removed by GVN
Hi,
On 08/07/2015 10:30 PM, Nick Lewycky wrote:
[...]
> Depends. What is the exact declaration of format_long?
>
>
> In the input .ll file it is:
>
> ; Function Attrs: minsize optsize
> define internal i16 @format_long(i16* %res.8.par, i16 %base.9.par,
> i32 %x.10.par) #3 {
>
> which is later changed somewhere in opt to:
>
> ;