[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
undocumented).

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".

Regards,
Marc

-- 
Marc Heuse
www.mh-sec.de

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


More information about the llvm-dev mailing list