C++: Fix join-order in 'phi_node' predicate.

This commit is contained in:
Mathias Vorreiter Pedersen
2021-12-17 07:50:04 +00:00
parent b49ca6a24c
commit d840796494

View File

@@ -153,7 +153,7 @@ library class SSAHelper extends int {
* Modern Compiler Implementation by Andrew Appel.
*/
private predicate frontier_phi_node(StackVariable v, BasicBlock b) {
exists(BasicBlock x | dominanceFrontier(x, b) and ssa_defn_rec(v, x)) and
exists(BasicBlock x | dominanceFrontier(pragma[only_bind_into](x), b) and ssa_defn_rec(v, x)) and
/* We can also eliminate those nodes where the variable is not live on any incoming edge */
live_at_start_of_bb(v, b)
}