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
clangtime 5.70509sgcctime 9.15563sclang-O2 time 6.0618sgcc-O2 time 5.17978sclang-march=native -O2 time 1.39697sgcc-march=native -O2 time 9.14826s