LLVM - Executar próprio passe automaticamente com clang

Escrevi alguns passes para o llvm, para usá-los com clang.

Eu os integrei no llvm (não carregado dinamicamente). Eles ainda estão listados noOtimizações disponíveis: seção quando digito:

opt --help-hidden

Quero executar um dos meus passes agora automaticamente como oúltimo quando eu chamo clang:

clang ./hello.bc -o ./hello

ou mesmo com o código c:

clang ./hello.c -o ./hello

Quando executo meu passe com opt manualmente, o ByteCode modificado é gerado e gravado em um novo arquivo .bc:

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

Quando eu compilo o .bc modificado com o clang, as otimizações normais do clang são executadas novamente, o que destrói as otimizações do meu passo executado manualmente:

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

Minha pergunta é:

Como posso executar meu próprio passe escrito automaticamente com clang como o último passe de todos?Outra solução possível é desativar todas as passagens completamente, ou pelo menos a eliminação do código morto / função do clang / opt. Como eu pude fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion