meaning - Equivalente de-tree-vectorizer-verbose para clang
llvm 3.7 0 (2)
La pregunta es acerca de cómo hacer que la información de impresión de clang
sobre qué bucles (u otras partes del código) se han vectorizado. GCC
tiene un -ftree-vectorizer-verbose=6
línea de comando llamado -ftree-vectorizer-verbose=6
para hacer esto, pero no pude encontrar nada similar para clang
. ¿Es compatible clang
esta o mi única opción es echar un vistazo en el desmontaje?
Mirando a través del código fuente de clang, hay un par de pases de vectorización en Transforms / Vectorize:
- BBVectorize
- LoopVectorize
- SLPVectorizar
Los últimos tres no parecen tener ningún argumento que imprima cosas. Pero dentro de BBVectorize hay un par de opciones para imprimir cosas cuando se crea el debug de clang:
- bb-vectorize-debug-instruction-exam: cuando la depuración está habilitada, genera información sobre el proceso de examen de instrucciones
- bb-vectorize-debug-candidato-selection - Cuando la depuración está habilitada, la información de salida sobre el proceso de selección de candidatos
- bb-vectorize-debug-pair-selection - Cuando la depuración está habilitada, la información de salida sobre el proceso de selección de pares
- bb-vectorize-debug-cycle-check - Cuando la depuración está habilitada, la información de salida sobre el proceso de verificación de ciclo
- bb-vectorize-debug-print-after-every-pair -Cuando se habilita la depuración, volcar el bloque básico después de fusionar cada par
Eso parece que se trata de eso.
clang tiene las siguientes opciones para imprimir diagnósticos relacionados con la vectorización:
-Rpass=loop-vectorize identifies loops that were successfully vectorized.
-Rpass-missed=loop-vectorize identifies loops that failed vectorization and indicates if vectorization was specified.
-Rpass-analysis=loop-vectorize identifies the statements that caused vectorization to fail.