summaryrefslogtreecommitdiff
path: root/Source/Core/LinearSets.cs
diff options
context:
space:
mode:
authorGravatar Nathan Chong <nathan.chong@gmail.com>2013-03-07 18:42:49 +0000
committerGravatar Nathan Chong <nathan.chong@gmail.com>2013-03-07 18:42:49 +0000
commitfb4518948982987d371eb7f14e4879909115e887 (patch)
treef0dfa6c1cd8f829af72859be94eba0443c5170a7 /Source/Core/LinearSets.cs
parentf12ca28f791c1e8cda2f6ff18f7e4605203674c8 (diff)
Fix LeastCommonAncestor method in Graph module
Solves a problem with Uniformity Analysis in GPUVerify. "The least common ancestor of two nodes u and v in a rooted tree T is a node w that is an ancestor of both u and v and that has the greatest depth in T" (CLR). This is needed when computing the control dependence relation of a CFG. In this case, we need the least common ancestor of a pair of nodes in the dominator tree so we can reuse the 'intersect' function given by Cooper et al in "A Simple, Fast Dominance Algorithm." The old code picked the ancestor of both u and v that has the *least* depth in T. This caused uniformity analysis, in GPUVerify, to be imprecise (adding blocks as non-uniform when they were infact uniform).
Diffstat (limited to 'Source/Core/LinearSets.cs')
0 files changed, 0 insertions, 0 deletions