The solution is to perform this transformation late, when we know that the LogicalNot cannot be used by OSR.
Created attachment 188019 [details] the wrong way I started by assuming that we should just introduce CompareNotEq and friends. I think this is not a good idea. I will do it a better way.
Created attachment 188024 [details] another wrong way
Created attachment 188027 [details] the patch I went for the brute force way. Still need to test if this is OK for performance... I'm also still running tests, will have expectations file soon.
Comment on attachment 188027 [details] the patch Attachment 188027 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/16530028 New failing tests: fast/js/dfg-branch-logical-not-peephole-around-osr-exit.html
Comment on attachment 188027 [details] the patch Attachment 188027 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://queues.webkit.org/results/16454796 New failing tests: fast/js/dfg-branch-logical-not-peephole-around-osr-exit.html
Comment on attachment 188027 [details] the patch r=me with test expectations.
Landed in http://trac.webkit.org/changeset/142779