Muchas veces cuando vemos en la web parametros de compilacion como "-march" y "-mtune", se han preguntado que significan?
Bien, básicamente son flags de compilación que indican el procesador del sistema donde ejecutaremos la aplicación compilada...
Veamos los posibles valores que pueden tomar en la siguiente tabla:
Valores | CPU |
generic | Produce un código binario optimizado para la mayor parte de procesadores existentes. Utilizar este valor si no sabemos el nombre del procesador que tenemos en nuestro equipo. Este valor sólo es aplicable en la opción '-mtune='. Esta opción está disponible a partir de GCC 4.2.x. |
i386 | Intel i386. |
i486 | Intel i486. |
i586, pentium | Intel Pentium sin soporte de instrucciones MMX. |
pentium-mmx | Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX. |
pentiumpro | Intel PentiumPro. |
i686 | Produce un código binario optimizado para la mayor parte de procesadores compatibles con la serie 80686 de Intel. Todos los actuales lo son. |
pentium2 | Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX. |
pentium3, pentium3m | Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE. |
pentium-m | Versión de bajo consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2. Utilizado por los portátiles Centrino. |
pentium4, pentium4m | Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2. |
prescott | Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
nocona | Versión mejorada de Intel Pentium4 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
core2 | Intel Core2 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3 y SSSE3. Esta opción está disponible a partir de GCC 4.3.x. |
corei7 | Intel Core i7 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y SSE4.2. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible a partir de GCC 4.6.x. |
corei7-avx | Intel Core i7 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES y PCLMUL. Soporta también los procesadores Intel Core i3 e i5. Esta opción está disponible a partir de GCC 4.6.x. |
atom | Intel Atom con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3 y SSSE3. Esta opción está disponible a partir de GCC 4.5.x. |
k6 | AMD K6 con soporte de instrucciones MMX. |
k6-2, k6-3 | Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!. |
athlon, athlon-tbird | AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch. |
athlon4, athlon-xp, athlon-mp | Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE. |
k8, opteron, athlon64, athlon-fx | Procesadores basados en AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, 3DNow!, enhanced 3DNow! y extensiones 64-bit). |
k8-sse3, opteron-sse3, athlon64-sse3 | Versiones mejoradas de AMD K8 core con soporte de instrucciones SSE3. Esta opción está disponible a partir de GCC 4.3.x. |
amdfam10, barcelona | Procesadores basados en AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones 64-bit). Esta opción está disponible a partir de GCC 4.3.x. |
btver1 | AMD Bobcat (family 14). Esta opción está disponible a partir de GCC 4.6.x. |
winchip-c6 | IDT Winchip C6, que equivale a un i486 con soporte de instrucciones MMX. |
winchip2 | IDT Winchip2, que equivale a un i486 con soporte de instrucciones MMX y 3DNow!. |
c3 | Via C3 con soporte de instrucciones MMX y 3DNow!. |
c3-2 | Via C3-2 con soporte de instrucciones MMX y SSE. |
geode | AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3.x. |
native | Produce un código binario optimizado para el procesador que tengamos en nuestro sistema, siendo éste detectado utilizando la instrucción cpuid. Procesadores antiguos pueden no ser detectados utilizando este valor. Esta opción está disponible a partir de GCC 4.2.x. |
Como pueden ver hay una gran variedad según la arquitectura y como me es imposible recordarlos a todos los dejo acá también para el resto de los navegantes!