Я оптимизировал мой компилятор для создания меньшего кода. Тем не менее, несмотря на создание меньшего количества инструкций и более короткого пути кода, и, в частности, меньшее количество загрузок и хранилищ, код, созданный для небольшой демонстрационной программы, работает медленнее.
Я подозреваю, что проблема заключается в «хранилище попаданий при загрузке». Как мне это проверить? Очевидный ответ - в профиль. Прочитав различную документацию AIX, можно было бы найти ответ: tprof с соответствующим событием, указывающим на «хранилище попаданий загрузки». Что-то вроде
tprof -a -usek -E PM_CMPLU_STALL_REJECT -y my_benchmark_program
Однако - это выдает сообщение об ошибке
A group with events PM_CMPLU_STALL_REJECT and PM_INST_CMPL cannot be found.
В документации tprof упоминается, что выбранное событие должно быть в той же группе, что и PM_INST_CMPL. Однако - это не указывает на то, что еще нужно сделать.
Итак - как я могу проверить свою теорию о том, что «хранилище попаданий при загрузке» является причиной снижения производительности?