llvm GEP第一种类型的目的是什么

时间:2019-05-17 13:02:02

标签: llvm llvm-ir

我是llvm的新手,在GEP指令中想知道指定的第一个类型的目的是什么。如果将其更改为与MyType不同的任何其他类型,则会收到以下错误消息。那么为什么我需要完全明确地指定它,它的目的是什么?

error: explicit pointee type doesn't match operand's pointee type

getelementptr %MyType, %MyType* %7, i64 0, i32 0

1 个答案:

答案 0 :(得分:0)

有一个最终删除第二种类型的总体计划,使“指针”成为唯一的指针类型。 LLVM当前包含一些过渡机制,这些机制仅在该过渡的情况下才有意义。

此转换完成时(今年?下一年?谁知道),GEP的结果类型将取决于其第一个参数。在此过渡期间,GEP会检查第一和第二自变量是否暗示不同的结果类型。