From 2b075b848855b31f832932bf07d900580b86be71 Mon Sep 17 00:00:00 2001 From: yeom Date: Mon, 25 Oct 2010 22:04:28 +0000 Subject: [PATCH] changes: handle correctly the case when a coarse grain conflict is associated with effects on different allocation sites. --- .../src/Analysis/OoOJava/ConflictGraph.java | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) 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; + } } } } -- 2.34.1