summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
c3240e7)
mo_may_allow() actually performs two optimizations, not just the one
that is documented in its header.
* require compiler support):
*
* If X --hb-> Y --mo-> Z, then X should not read from Z.
* require compiler support):
*
* If X --hb-> Y --mo-> Z, then X should not read from Z.
+ * If X --hb-> Y, A --rf-> Y, and A --mo-> Z, then X should not read from Z.
*/
bool ModelExecution::mo_may_allow(const ModelAction *writer, const ModelAction *reader)
{
*/
bool ModelExecution::mo_may_allow(const ModelAction *writer, const ModelAction *reader)
{