-O1 with clang and gcc

Hi,

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

Reproducible with:

https://github.com/m-chaturvedi/test_valgrind_slowdown

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,
Mmanu

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

Michael

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.
http://valgrind.org/docs/manual/quick-start.html

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

Michael