Post proceso `objdump --disassemble` con recuentos de ciclos ARM

¿Hay un script disponible para el procesamiento posterior de algunosobjdump --disassemble ¿Salida para anotar con recuentos de ciclos? Especialmente para la familia ARM.La mayoría de las veces esto solo sería una coincidencia de patrón con una búsqueda de tabla para el recuento. Supongo que las anotaciones como+5M para cinco ciclos de memoria puede ser necesario. Perl, pitón, bash,C, etc estan bien. Creo que esto se puede hacer de manera genérica, pero estoy interesado en elBRAZO, que tiene unortogonal conjunto de instrucciones. Aquí hay un hilo en el68HC11 haciendo lo mismo El script necesitaría una CPUmodelo opción para seleccionar los recuentos de ciclos apropiados; Creo que estas cuentas ya existen en elgcc Descripción de la máquina.

No creo que haya unobjdump cambiar por esto, pero RTFM sería genial.

Editar: Para aclarar, las suposiciones como el subsistema de memoria del mejor caso, como será el caso cuando el código se ejecute desde la memoria caché, están bien. El objetivo no es un recuento de ciclos 100% preciso según una máquina en ejecución. Es posible obtener una estimación razonable, de lo contrario el diseño del compilador sería imposible.

ComoDWelch señala, un simple total acumulado no es posible con una arquitectura profunda, como los chips Cortex más recientes. losobjdump El procesamiento posterior tendría que mirar los códigos de operación circundantes. Es más probable que un complemento de gcc pueda lograr esto y, como es nuevo (4.5+), no creo que exista tal cosa. Un script para el ARM926 es ciertamente posible y bastante simple.

La latencia de la memoria no importa. El controlador de memoria es como otroCPU. Está haciendo su trabajo mientras que la CPU está haciendo aritmética, etc. Un algoritmo bueno / bien afinadoparalela La memoria accede con los cálculos. Al contar las cargas / almacenamiento y los ciclos, puede determinar la cantidad de paralelismo que se logra, cuando realiza un perfil activo con un temporizador. La tubería es significativa debido a los interbloqueos entre registros, pero un recuento de ciclos parabloques basicos se puede calcular y utilizar de manera confiable incluso en los modernos procesadores ARM; Esto es demasiado complejo para un simple script.

Respuestas a la pregunta(2)

Su respuesta a la pregunta