0
我正在編寫LLVM IR代碼,我可以在另一個.ll文件中調用函數嗎?LLVM IR:如何在另一個.ll文件中調用函數
例如: 在a.ll文件中,有一個函數foo(); 我可以在b.ll中使用這個函數,就像調用foo一樣嗎?如果是這樣,我怎麼能包括a.ll
感謝
我正在編寫LLVM IR代碼,我可以在另一個.ll文件中調用函數嗎?LLVM IR:如何在另一個.ll文件中調用函數
例如: 在a.ll文件中,有一個函數foo(); 我可以在b.ll中使用這個函數,就像調用foo一樣嗎?如果是這樣,我怎麼能包括a.ll
感謝
您需要添加函數foo的聲明,在其中你調用它的LL文件,然後像往常一樣轉換鏈接LL文件生成可執行
llvm-link a.ll b.ll -o a.out
例如 a.ll
declare i32 @foo(i32)
define i32 @main() {
start:
%0 = call i32 @foo(i32 0)
ret i32 %0
}
b.ll
define i32 @foo(i32) {
start:
ret i32 %0
}
非常感謝。但是,如果我在a.ll中有函數foo2(),它使用b.ll中的foo(),我可以使用C++ API parseIRFile來提取foo2()函數,並使其在C++代碼中運行?如果是這樣,怎麼樣?謝謝。 –