In this update I’ll go over the progress I have made in the last couple of days.
I am changing my plan slightly.
Instead of changing the compiler options, I plan on testing to see if any of the -O3
options can improve performance.
As shown in my previous blogs -O3
on average has a worse performance then -O2
but some of the compiler options in -O3
can boost performance.
There are a couple of optimizations turned on when enabling -O3
.
Here are the options:
-finline-functions
-funswitch-loops
-fpredictive-commoning
-fgcse-after-reload
-ftree-loop-vectorize
-ftree-loop-distribution
-ftree-loop-distribute-patterns
-floop-interchange
-fsplit-paths
-ftree-slp-vectorize
-fvect-cost-model
-ftree-partial-pre
-fpeel-loops
-fipa-cp-clone
Link to what each optimization does: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
In my next blog post I’ll make bash script that runs through each option and give my analysis of the results.