This is more common in phis with constants and arguments, as they have no associated node in the interference graph and thus will always need critical edges to be split.
Repro:
static int SSA_MultiPreds1(int x, int y) {
int r = 1;
if (x > 0 && y < 100 && x * 3 < y) {
r = 2;
}
return r;
}
This is more common in phis with constants and arguments, as they have no associated node in the interference graph and thus will always need critical edges to be split.
Repro:
Reg allocated CFG: