[llvm-dev] how to disable cmov generation?

Marc via llvm-dev llvm-dev at lists.llvm.org
Fri Oct 29 06:57:19 PDT 2021

> On 29/10/2021 08:15, Marc via llvm-dev wrote:
>> I am the maintainer of the afl++ fuzzer, and we write our own llvm
>> plugins for instrumenting the binaries.
>> The problem with cmov is that it hides if () ...; else ... ;and
>> therefore we do not see edges.
> To clarify, are you doing this as an IR transform or a binary rewrite?
> The question has very different answers depending on this.

I am not sure I know what you mean.
Yes I could implement something in your coverage plugins (they run at
EP_OptimizerLast), but that misses the point and is something I would do
as a last resort.

The issue affects all fuzzers, also libfuzzer, honggfuzz etc.
Also if you just use -fsanitize-coverage=trace-pc-guard.
So that not everyone has to implement something for this it would be
beneficial if there would be an option in clang for that - like gcc has
- if it does not have this feature already (and it is currently

So thats why I am asking if there is this feature already and if not if
there is someone who says "right, that is an issue, that feature would
be beneficial to have".


Marc Heuse

PGP: AF3D 1D4C D810 F0BB 977D  3807 C7EE D0A0 6BE9 F573

More information about the llvm-dev mailing list