Как использовать проход -block-размещения в LLVM - PullRequest
0 голосов
/ 22 января 2019

Сейчас я работаю над проектом, включающим оптимизацию по профилю. Я нахожу документацию на http://llvm.org/docs/Passes.html#id49 с именем LLVM pass -block-placement для выполнения простого PGO. Мне интересно, какой инструмент и флаги мне следует использовать для запуска этого прохода.

Я обнаружил, что этот проход находится в llvm/lib/CodeGen/MachineBlockPlacement.cpp, и MachineFunctionPass нельзя запустить из opt или bugpoint. Согласно справочной странице llc , я не могу напрямую использовать -block-placement, вместо этого используя -print-after=block-placement или -print-before=block-placement. Однако использование этих флагов не дает никаких других результатов. Я также использовал --debug-pass=Executions до llc и видел, что -block-placement передан в качестве аргумента, но передача не была выполнена. Мне интересно, если проход -block-placement запускается автоматически, и я должен дать другие флаги pgo-файла для его запуска, или проход может выполняться индивидуально.

...