search for: mri_modref

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: > > ;