Skip to content

Commit 0ffba8b

Browse files
authored
Merge pull request #1289 from jbj/dominanceFrontier-iterated-ir
Approved by dave-bartolomeo
2 parents d53f5aa + cd7ba17 commit 0ffba8b

File tree

2 files changed

+12
-10
lines changed
  • cpp/ql/src/semmle/code/cpp/ir/implementation

2 files changed

+12
-10
lines changed

cpp/ql/src/semmle/code/cpp/ir/implementation/raw/internal/reachability/Dominance.qll

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ predicate blockDominates(Graph::Block dominator, Graph::Block block) {
1111
blockStrictlyDominates(dominator, block) or dominator = block
1212
}
1313

14-
pragma[noinline]
1514
Graph::Block getDominanceFrontier(Graph::Block dominator) {
16-
exists(Graph::Block pred |
17-
Graph::blockSuccessor(pred, result) and
18-
blockDominates(dominator, pred) and
19-
not blockStrictlyDominates(dominator, result)
15+
Graph::blockSuccessor(dominator, result) and
16+
not blockImmediatelyDominates(dominator, result)
17+
or
18+
exists(Graph::Block prev | result = getDominanceFrontier(prev) |
19+
blockImmediatelyDominates(dominator, prev) and
20+
not blockImmediatelyDominates(dominator, result)
2021
)
2122
}

cpp/ql/src/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/reachability/Dominance.qll

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ predicate blockDominates(Graph::Block dominator, Graph::Block block) {
1111
blockStrictlyDominates(dominator, block) or dominator = block
1212
}
1313

14-
pragma[noinline]
1514
Graph::Block getDominanceFrontier(Graph::Block dominator) {
16-
exists(Graph::Block pred |
17-
Graph::blockSuccessor(pred, result) and
18-
blockDominates(dominator, pred) and
19-
not blockStrictlyDominates(dominator, result)
15+
Graph::blockSuccessor(dominator, result) and
16+
not blockImmediatelyDominates(dominator, result)
17+
or
18+
exists(Graph::Block prev | result = getDominanceFrontier(prev) |
19+
blockImmediatelyDominates(dominator, prev) and
20+
not blockImmediatelyDominates(dominator, result)
2021
)
2122
}

0 commit comments

Comments
 (0)