-O1 with clang and gcc


The binary gotten via clang’s -O1 runs much slower (3x) than that gotten via GCC’s -O1.

Reproducible with:


We are seeing this difference between gcc and clang at other places as well.

The -O0 and -O2 times are comparable, however. Are there some compile time flags one could add to make the -O1 times comparable?

Apologies if this has been discussed somewhere already.

Thank you,

What are you trying to achieve? If faster runs is the goal, why not
compile with -O2?


Thanks for the quick reply.

-O0 is too slow with Valgrind and -O2 is not recommended. We use -O1 in Valgrind runs.

Use of -O2 and above is not recommended as Memcheck occasionally reports uninitialised-value errors which don’t really exist.

I recommend using -fsanitize=address / -fsanitize=memory which should
be faster and more accurate than valgrind.