[PATCH] D57982: [SanitizierCoverage] Avoid splitting critical edges when destination is a basic block containing unreachable

Matt Morehouse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 27 10:27:52 PST 2019


morehouse added a comment.

In D57982#1412282 <https://reviews.llvm.org/D57982#1412282>, @craig.topper wrote:

> A block can end in unreachable, but still have reachable code at the beginning. If the block calls a function that is known not to return, the next instruction after the call will be UnreachableInst. For example https://godbolt.org/z/6AGtOf


Sure, but that block is generally still not useful to instrument (for fuzzing).  When fuzzing, we save all inputs that either (1) increase coverage as measured by SanitizerCoverage, or (2) crash.  So if case 2 happens every time we touch a block that ends in unreachable, there's no point in instrumenting it so that case 1 happens too.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57982/new/

https://reviews.llvm.org/D57982





More information about the llvm-commits mailing list