Al compilar con la opción -O3 lo que hace el compilador es optimizar nuestro código al máximo. También esta la opción -O2 que lo que hace es optimizar nuestro código sin aumentar el tamaño del ejecutable. Con la opción -O1 se intenta reducir tanto el tamaño del código, como el tiempo de ejecución.