search for: mri_mustref

Displaying 4 results from an estimated 4 matches for "mri_mustref".

2017 Oct 10
4
Expose aliasing information in getModRefInfo (or viceversa?)
...ive) 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 the top of...
2017 Nov 28
1
Expose aliasing information in getModRefInfo (or viceversa?)
...sion >> 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: >> >> enum ModRefInfo { >> >> MRI_Must = 0, >> >> MRI_MustR...
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
...s 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 the top of the lattice is still MRI_ModRef. While...
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);