Optimization

Different optimization levels result in different assembly. Can be the same program but look completely different, including different function calls.

Read this for more info, but don't read the whole thing, just enough to get an appreciation: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html