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. Как я мог это сделать?