LLVM GEP note

来源:互联网 发布:ubuntu 装mysql数据库 编辑:程序博客网 时间:2024/06/03 11:51

LLVM中,数组和向量看起来像是一个东西,其实是不一样的。

在LLVM里面如果想从线性数据结构中提取元素或者元素的指针的话,

可以使用IRBuilder的CreateExtractValue和CreateExtracElement。

但是他们的参数里面都需要确切的数字作为一个参数。

所以如果取不出参数的话,就需要使用GetElementPtr类。

或者使用IRBuilder的api CreateGEP这一系列的。

需要注意的是:GEP的使用仅仅是对指针的操作,

所以在使用完了之后,如果需要元素的确切值,

就需要添加一条load指令。