From 3e538ef764be5b82ef8a58f1fcdf98708cd8aa73 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Wed, 6 Feb 2013 14:42:00 -0800 Subject: [PATCH] cyclegraph: mergeNodes(): return early if we violate RMW To be consistent, and to prevent unecessary merging work, we should simply return from the mergeNodes() function as soon as we know it has failed. --- cyclegraph.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cyclegraph.cc b/cyclegraph.cc index b138372..89fc36c 100644 --- a/cyclegraph.cc +++ b/cyclegraph.cc @@ -147,8 +147,10 @@ bool CycleGraph::mergeNodes(CycleNode *w_node, CycleNode *p_node, /* Transfer the RMW */ CycleNode *promise_rmw = p_node->getRMW(); - if (promise_rmw && promise_rmw != w_node->getRMW() && w_node->setRMW(promise_rmw)) + if (promise_rmw && promise_rmw != w_node->getRMW() && w_node->setRMW(promise_rmw)) { hasCycles = true; + return false; + } /* Transfer back edges to w_node */ while (p_node->getNumBackEdges() > 0) { -- 2.34.1