mirror of
https://github.com/github/codeql.git
synced 2025-12-23 20:26:32 +01:00
C++: Better join-order fix.
This commit is contained in:
@@ -153,9 +153,11 @@ library class SSAHelper extends int {
|
|||||||
* Modern Compiler Implementation by Andrew Appel.
|
* Modern Compiler Implementation by Andrew Appel.
|
||||||
*/
|
*/
|
||||||
private predicate frontier_phi_node(StackVariable v, BasicBlock b) {
|
private predicate frontier_phi_node(StackVariable v, BasicBlock b) {
|
||||||
exists(BasicBlock x | dominanceFrontier(pragma[only_bind_into](x), b) and ssa_defn_rec(v, x)) and
|
exists(BasicBlock x |
|
||||||
|
dominanceFrontier(x, pragma[only_bind_into](b)) and ssa_defn_rec(pragma[only_bind_into](v), x)
|
||||||
|
) and
|
||||||
/* We can also eliminate those nodes where the variable is not live on any incoming edge */
|
/* We can also eliminate those nodes where the variable is not live on any incoming edge */
|
||||||
live_at_start_of_bb(v, b)
|
live_at_start_of_bb(pragma[only_bind_into](v), b)
|
||||||
}
|
}
|
||||||
|
|
||||||
private predicate ssa_defn_rec(StackVariable v, BasicBlock b) {
|
private predicate ssa_defn_rec(StackVariable v, BasicBlock b) {
|
||||||
|
|||||||
Reference in New Issue
Block a user