【发布时间】:2016-03-24 09:42:01
【问题描述】:
我正在编写一些 llvm (3.7) 通行证,我需要一些关于常量类的信息。 在我正在解析的 llvm-IR 中,有“ConstantStruct”或“ConstantArray”实例用作全局变量的初始化程序。例如:
%struct.S = type { i32, i32, i32, i32 }
@s = global [2 x %struct.S] [%struct.S { i32 6, i32 8, i32 -8, i32 -5 }, %struct.S { i32 0, i32 2, i32 -1, i32 2 }], align 4
如果我可以读取那些常量的内存,我的工作会容易得多,而不必递归地遍历所有元素(也可以是 ConstantStructs 或数组)。
例如,我需要一个函数作为
llvm::ConstantStruct* initializer = globalVar->getInitializer();
void* memoryContent;
int sizeInBytes = initializer->getMemoryContent(&memoryContent);
到目前为止,我必须一个一个地阅读元素,这是一个痛苦的(并且容易出错)的过程。
任何提示将不胜感激。
【问题讨论】:
-
对否决票的任何评论将不胜感激......我不认为这是一个微不足道的问题......