]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
role aliasing: unify map update code
authorJustin Viiret <justin.viiret@intel.com>
Thu, 23 Jun 2016 01:07:39 +0000 (11:07 +1000)
committerMatthew Barr <matthew.barr@intel.com>
Fri, 8 Jul 2016 00:59:40 +0000 (10:59 +1000)
src/rose/rose_build_role_aliasing.cpp

index d611f5d3a080bf9d042b2749f3005c8059805ff8..a0416ac5210a82ddaf82ae3789821e82368389e9 100644 (file)
@@ -490,16 +490,6 @@ size_t hashRightRoleProperties(RoseVertex v, const RoseGraph &g) {
     return val;
 }
 
-static
-void removeVertexFromMaps(RoseVertex v, RoseBuildImpl &build,
-                          RoseAliasingInfo &rai) {
-    if (build.g[v].left) {
-        const left_id left(build.g[v].left);
-        assert(contains(rai.rev_leftfix[left], v));
-        rai.rev_leftfix[left].erase(v);
-    }
-}
-
 static
 void mergeEdgeAdd(RoseVertex u, RoseVertex v, const RoseEdge &from_edge,
                   const RoseEdge *to_edge, RoseGraph &g) {
@@ -580,8 +570,13 @@ void mergeLiteralSets(RoseVertex a, RoseVertex b, RoseBuildImpl &tbi) {
 }
 
 static
-void updateGhostMap(RoseBuildImpl &build, RoseAliasingInfo &rai, RoseVertex a,
-                    RoseVertex b) {
+void updateAliasingInfo(RoseBuildImpl &build, RoseAliasingInfo &rai,
+                        RoseVertex a, RoseVertex b) {
+    if (build.g[a].left) {
+        const left_id left(build.g[a].left);
+        assert(contains(rai.rev_leftfix[left], a));
+        rai.rev_leftfix[left].erase(a);
+    }
     if (contains(build.ghost, a)) {
         auto ghost = build.ghost.at(a);
         assert(contains(build.ghost, b) && ghost == build.ghost.at(b));
@@ -628,8 +623,7 @@ void mergeVertices(RoseVertex a, RoseVertex b, RoseBuildImpl &tbi,
     }
 
     mergeEdges(a, b, g);
-    updateGhostMap(tbi, rai, a, b);
-    removeVertexFromMaps(a, tbi, rai);
+    updateAliasingInfo(tbi, rai, a, b);
 }
 
 /**
@@ -658,7 +652,7 @@ void mergeVerticesDiamond(RoseVertex a, RoseVertex b, RoseBuildImpl &tbi,
     g[b].max_offset = max(g[a].max_offset, g[b].max_offset);
 
     mergeLiteralSets(a, b, tbi);
-    removeVertexFromMaps(a, tbi, rai);
+    updateAliasingInfo(tbi, rai, a, b);
 }
 
 static never_inline