JumpThreading shouldn't duplicate a convergent call, because that would move a convergent call into a control-inequivalent location. For example,
if (cond) {
...
} else {
...
}
convergent_call();
if (cond) {
...
} else {
...
}should not be optimized to
if (cond) {
...
convergent_call();
...
} else {
...
convergent_call();
...
}Test Plan: test/Transforms/JumpThreading/basic.ll
Patch by Xuetian Weng.
s/CHECK/CHECK-LABEL