Как получить пропуска O1, O2, O3 в LLVM?

#compiler-construction #llvm #compiler-optimization

Вопрос:

Я новичок в llvm.

Интересно, как получить пропуска на.

Я знаю, что есть флаг opt -O3 -debug-pass-manager , чтобы получить подробную информацию, но это слишком «подробно», и я просто хочу знать порядок пропусков ПРИ использовании.

С другой стороны, как узнать о пропусках в форме, подобной mem2reg, due, always-inline... или где находится документ, в котором об этом говорится?

Я не могу его найти. Эта проблема занимает у меня слишком много времени. Я хочу сравнить заказы между ними и моими.

Комментарии:

1. Я обнаружил это, обратившись к нескольким именам, которые я использовал. Каждый пропуск был упомянут в нескольких файлах: некоторые тестовые файлы, сам пропуск и только несколько других. Я посмотрел на этих других и довольно скоро нашел большую функцию с несколькими if (), которая добавляла проходы для O1/O2/O3. Я уверен, что он сдвинулся с тех пор, как я это сделал, но это было просто.

2. -debug-pass=Arguments флаг должен делать то, что вы хотите.