0
我正在写一些llvm(3.7)pass,我需要一些关于Constant类的信息。 在我解析的llvm-IR中,存在用作全局变量初始值的“ConstantStruct”或“ConstantArray”实例。例如: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);
到目前为止,我要读通过一个元件的一个,这是一种痛苦的(和错误易发生)的过程。
任何提示将不胜感激。
任何意见downvote将不胜感激...我不认为这是一个微不足道的问题... –