LLVM insere chamadas de função pthread em IR
Estou escrevendo um passe LLVM (é umLoopPass
) que precisa inserir chamadas de funções pthread como pthread_create () e pthread_join () no IR. Eu sei como criar e inserir uma chamada de função em IR, mas estou tendo problemas para obter a representação pthread deFunction*
em LLVM.
Aqui está o que eu tenho:
Function *pthread_create_func = currentModule->getFunction("pthread_create");
mas retorna NULL.
Como uma comparaçãoFunction *printf_func = currentModule->getFunction("printf");
irá devolver o corretoFunction*
que me permite inserir uma nova chamada de função para printf em IR.
eu tenho#include "pthread.h"
no meu passe e-pthread
logo depoisclang -emit-llvm
mas ainda não consegue encontrarpthread_create
ou outropthread_*
funções de alguma forma.