From: yeom Date: Mon, 25 Oct 2010 22:04:28 +0000 (+0000) Subject: changes: handle correctly the case when a coarse grain conflict is associated with... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2b075b848855b31f832932bf07d900580b86be71;p=IRC.git changes: handle correctly the case when a coarse grain conflict is associated with effects on different allocation sites. --- diff --git a/Robust/src/Analysis/OoOJava/ConflictGraph.java b/Robust/src/Analysis/OoOJava/ConflictGraph.java index 09ea4687..7d49343b 100644 --- a/Robust/src/Analysis/OoOJava/ConflictGraph.java +++ b/Robust/src/Analysis/OoOJava/ConflictGraph.java @@ -321,7 +321,15 @@ public class ConflictGraph { conflictType = updateConflictType(conflictType, ConflictGraph.COARSE_GRAIN_EDGE); } } else { - return ConflictGraph.COARSE_GRAIN_EDGE; + if (state.RCR) { + // need coarse effects for RCR from just one pass + addCoarseEffect(nodeA, asA, strongUpdateA); + if (!nodeA.equals(nodeB)) { + addCoarseEffect(nodeB, asB, effectB); + } + } else { + return ConflictGraph.COARSE_GRAIN_EDGE; + } } } @@ -425,14 +433,15 @@ public class ConflictGraph { } } } else { - if (state.RCR) { - //need coarse effects for RCR from just one pass - addCoarseEffect(nodeA, asA, effectA); - if (!nodeA.equals(nodeB)) { - addCoarseEffect(nodeB, asB, effectB); - } - } - return ConflictGraph.COARSE_GRAIN_EDGE; + if (state.RCR) { + // need coarse effects for RCR from just one pass + addCoarseEffect(nodeA, asA, effectA); + if (!nodeA.equals(nodeB)) { + addCoarseEffect(nodeB, asB, effectB); + } + } else { + return ConflictGraph.COARSE_GRAIN_EDGE; + } } } }