manual recursion, and other join-order

This commit is contained in:
erik-krogh
2023-03-21 11:43:25 +01:00
parent 070468ab68
commit c023af7308

View File

@@ -316,7 +316,7 @@ module AccessPath {
i < j
)
or
otherAccess.getBasicBlock() = getASuccessorBBThatReadsVar(write) // more manual magic - outlined into a helper predicate.
otherAccess.getBasicBlock() = getASuccessorBBThatReadsVar(write)
)
}
@@ -378,10 +378,10 @@ module AccessPath {
getAVariableRef(var) = baseExpr and
var = getARelevantVariable() and
writeNode = write.getWriteNode() and
result.getImmediateDominator+() = writeNode.getBasicBlock() and
// manual magic.
result = getAnAccessInContainer(getARelevantVariable(), _, false).getBasicBlock()
result.getImmediateDominator() = writeNode.getBasicBlock()
)
or
result.getImmediateDominator() = getASuccessorBBThatReadsVar(write) // more manual magic - outlined into a helper predicate.
}
}