0
我用我的pass生成了一個IR,在這個IR的函數內部,我想跳回到調用者函數的basicblock,在調用者函數內部調用ext_callee函數這個:LLVM IR跳轉到另一個函數內的基本塊
%4 = call i1 @ext_callee(i32 32, i32 %3, i32 -4, i8* blockaddress(@tobecalled, %5), i8* blockaddress(@tobecalled, %7)).
最後兩個參數是我想跳到這個ext_callee函數內的基本塊地址。 我嘗試使用帶有blockaddress參數之一的indirectbr指令,但是當我運行IR時它會提示段錯誤。我搜索了LLVM文檔,但沒有找到如何跳轉到另一個函數的基本塊。有人有線索嗎?非常感謝!
謝謝,我認爲功能範圍規則可能首先在IR中被打破。那有點棘手。 :( – shikai
考慮例如函數提取。它會如何工作呢? –