Observing cases where folding a icmp into phi can be beneficial. Particularly if the above fold results in the icmp argument of type BinaryOperator, it may enable more folding.
Need to understand if there is reason why the folding of icmp into phi happens within the same BB only.
Can this be done under additional checks.
Ran all tests. Looks Ok to me.
Thanks nikic and bipmis for checking this change with me :)
The point of the test is that tainted_cond should have taint labels propagated from above. This change would invalidate this test, and break the behavior this is testing for.
I wonder, what is the IR for ((DataI * DataJ) != 1) before and after this change? I suspect this is where the taint label is being lost.