Here I'm testing the differences between gcc/llvm with various optimization flags. Both performance and assembly are analyzed.
- To build
./build.sh
- To run
./run.sh
- To generate the asm
./generate.sh
- GCC
- GCC -O2
- GCC -O2 -march=native
- CLANG
- CLANG -O2
- CLANG -O2 -march=native
CPU: Intel(R) Core(TM) i7-7567U CPU @ 3.50GHz
.
OS: Ubuntu 16-04
kernel 4.18.3 custom compiled.
main: dummy pi calculator
.
gcc (Ubuntu 8.1.0-5ubuntu1~16.04) 8.1.0
clang version 7.0.0 (trunk 338359) (llvm/trunk 338357)
iterations 1000000000 value 3.14159
clang
time 5.70893sgcc
time 9.08183sclang
-O2 time 6.01251sgcc
-O2 time 5.13561sclang
-march=native -O2 time 1.21312sgcc
-march=native -O2 time 4.7192s