XCode, LLVM y Optimización de código: el más rápido, el más pequeño vs ninguno

Hay algunas descripciones muy buenas en SO, así como en toda la web, sobre cómo LLVM optimiza el código. Pero estos no responden a mi pregunta específica.

En Xcode, hay varias opciones para la optimization del código en la configuration del proyecto y el destino. Comprendo la necesidad de que no haya optimization durante el desarrollo, pero ¿por qué elegiría algo más que el Fastest,Smallest[-Os] al comstackr una compilation de versión.

Solutions Collecting From Web of "XCode, LLVM y Optimización de código: el más rápido, el más pequeño vs ninguno"

En la mayoría de las situaciones, -Os es una buena opción. Tiene una buena combinación de optimization para el espacio y optimization de la velocidad.

Sin embargo, las otras opciones tienen algo de atractivo:

  • -O / -O1: "Me gustaría tener un poco más de capacidad para depurar el código optimizado"
  • -O2: (ok, honestamente no estoy seguro de por qué elegiría -O2 over -Os. Tal vez si una optimization de tamaño de código en particular -Os hace perjudica mucho el performance?)
  • -O3: "Esta parte del código debe ser rápida, y responde lo suficientemente bien como para la inclusión agresiva y el desenrollamiento de loops para compensar la penalización del tamaño del código"