我正在玩LLVM C-API,我不知何故被LLVMBuildIndirectBr()困住,或者更确切地说与LLVMBlockAddress(),因为我不知道它的第一个参数是什么,更重要的是我该如何创建它。这是一个LLVMValueRef,它应该代表'函数',但我发现的文档没有提供更多信息。什么是LLVMBlockAddress()第一个参数?
1
A
回答
1
根据its code,这个函数只是一个用于BlockAddress::get()的C包装。所以,第一个参数是包含BB的Function
,我假设。
没有为BlockAddress::get()
过载只服用BB参数没有C API,所以必须调用LLVMGetBasicBlockParent()对BB第一以获得它属于Function
基准,然后把它作为第一个参数LLVMBlockAddress()
。作为在这种情况下的一个经验法则,试着弄清楚你使用的“本地”C++方法,然后查找它的文档。
0
显然它是通过LLVMFunctionType()和LLVMAddFunction()。
相关问题
- 1. WordPress wp_get_nav_menu_items - 第一个参数是什么?
- 2. Firebase.Auth.GoogleAuthProvider.GetCredential的第一个参数是什么?
- 3. 第二个参数是什么?
- 4. MySQL的Decimal函数的第一个参数是做什么的?
- 5. 是什么TapTarget.forBounds的第一个参数,它是什么的意思矩形
- 6. wordpress:add_action:为什么第二个参数是一个数组而不是函数名
- 7. “type”的第一个参数是做什么的?
- 8. Array.apply在JavaScript中的第一个参数是什么?
- 9. 什么是可以接受的glPolygonMode第一个参数值?
- 10. zip_source_zip在libzip中:第一个参数是什么?
- 11. 'JOptionPane.showConfirmDialog()'中的第一个参数是什么?
- 12. 第三什么是bean.fire事件中的第三个参数?
- 13. T应该是一个参数,一个函数还是什么?
- 14. 什么把默认的第一个参数,而不是在Python中第二?
- 15. glBufferData第二个参数是GLsizeiptr而不是GLsizei,为什么?
- 16. date函数中的第二个参数是什么意思?
- 17. 什么是Python2.5的Python2.5翻译与无作为第一参数?
- 18. 什么是Angularjs $编译功能,第二个和第三个参数
- 19. getline中第二个参数的用途是什么?
- 20. jQuery.proxy中使用的第三个参数是什么?
- 21. waitpid()的第二个参数是什么意思?
- 22. 茉莉花toBeClose什么是第二个参数?
- 23. 在libgdx中用于VertexAttribute()的第三个参数是什么?
- 24. CONVERT()中的第三个参数是做什么的?
- 25. 模型中的第二个参数是什么(“pagemodel”,'pages')
- 26. 警报方法的第二个参数是什么意思?
- 27. savedInstanceState.getInt中的第二个参数是什么?
- 28. Ruby中TCPSocket.send的第二个参数是什么?
- 29. Android,Drawable.createFromStream(is,srcname):第二个参数的含义是什么?
- 30. ListView中的AddHeaderView中的第二个参数是做什么的?
当然,但问题是关于从这个函数创建一个LLVMValueRef,看着C++ API对此没有帮助。 – lucvoo
@lucvoo好吧,'BlockAddress :: get()'有一个只有BB的重载,并用'bb-> GetParent()'发现它所属的'Function'。所以,我想你可以使用[LLVMGetBasicBlockParent()](http://llvm.org/docs/doxygen/html/group__LLVMCCoreValueBasicBlock.html#ga94bcbe957389c2c2219d6a02e72691ef)。 – arrowd
太棒了,这正是我在寻找的!你可以编辑你的答案或为这个LLVMGetBasicBlockParent()创建另一个? – lucvoo