cyclegraph: propagate RMW atomicity edges down the chain
authorBrian Norris <banorris@uci.edu>
Wed, 20 Mar 2013 20:44:24 +0000 (13:44 -0700)
committerBrian Norris <banorris@uci.edu>
Wed, 20 Mar 2013 20:44:24 +0000 (13:44 -0700)
commitd62cd6e5bbba2975923540d99bae0587fe03b791
tree52b49088a2ee3ccac948ec1aa7ca0f0585e40345
parentcfbcbb33437af392cea2a5092d89cfed47506b75
cyclegraph: propagate RMW atomicity edges down the chain

When we add an edge between 'rmwnode' and 'tonode', we are trying to
ensure RMW atomicity. But 'rmwnode' may itself be read by another RMW
(or, in fact, a chain). So we must follow this chain down before
propagating the atomicity edge.

Also, we have the potential to run into the same problem in
addRMWEdge(), except that in that function, we assume that the RMW is
newly-explored and so does not yet have an outgoing RMW edge. This adds
an ASSERT() to check this property.
cyclegraph.cc