LLVM - Запуск собственного прохода автоматически с Clang

Я написал несколько пропусков для llvm, чтобы использовать их с clang.

Я интегрировал их в llvm (не загружается динамически). Они даже перечислены вДоступные оптимизации: раздел, когда я печатаю:

opt --help-hidden

Я хочу автоматически запустить один из моих пропусков какпоследний когда я звоню Clang:

clang ./hello.bc -o ./hello

или даже с c-кодом:

clang ./hello.c -o ./hello

Когда я запускаю свой проход с помощью opt вручную, модифицированный ByteCode генерируется и записывается в новый файл .bc:

opt -my-pass < ./hello.bc > ./hello_optimized.bc

Когда я компилирую модифицированный файл .bc с помощью clang, снова запускаются обычные оптимизации clang, которые уничтожают оптимизации моего выполненного вручную прохода:

clang -O0 -m32 ./hello_optimized.bc -o ./hello_optimized

Мой вопрос:

Как я могу запустить свой собственный письменный проход автоматически с Clang в качестве последнего прохода всех?Другое возможное решение - полная деактивация всех проходов или, по крайней мере, устранение мертвого кода / функции clang / opt. Как я мог это сделать?

Ответы на вопрос(2)

Ваш ответ на вопрос