A useless speculation is one that: 1) Is performed on a value that dies at the point of speculation. 2) Handling the case where the speculation would fail is trivial and takes fewer instructions than an OSR exit trampoline (i.e. <12 bytes on x86). InstanceOf has a SpeculateCell optimization, which is probably great most of the time, but there are times when you do something like: if (o.f instanceof p) The temporary result of o.f dies immediately. Handling the case where it's not a cell is super easy: just return false. So there's little use in speculating cell here.
Created attachment 135717 [details] the patch
Landed in http://trac.webkit.org/changeset/113269