3 ms·
The real problem is when different VMs branch differently. You essentially have to run both sides of a branch in serial with masked lanes. The author mentions t
by vnorilo 8y ago
The real problem is when different VMs branch differently. You essentially have to run both sides of a branch in serial with masked lanes. The author mentions this and states that the method works only because the VMs are very deterministic. I don't understand how he deals with indirect jumps.
- DSingularity 8y agoYou mean the possibility that the branch target is different on the different VMs? He can fork the vectorization if the targets diverge. I’m not sure what he does though.
- vnorilo 8y agoSure, but how does that not utterly destroy performance as the fork would probably lead to multiple sub-forks down the line.. or lane? :)
- DSingularity 8y agoWhen you are fuzzing the ultimate goal is to explore as much as you can of the entire search space. Forks cant hurt performance. They are just another potential execution path to be vectorized.
- OskarS 8y agoHe writes that he's using a special type of IL for this technique, presumably he forbids indirect jumps in it.