我不确定如何将数据从cfe插件转发到llvm pass?
我有一个clang前端插件,可以聚合反射数据并将其保存到向量中。我也有一个llvm通道,它通过JIT编译某些用户代码函数并在编译时对其进行评估。现在,我想将聚合的反射数据传递给LLVM传递,以便可以将其用作JIT编译函数的参数。
我想出了一些主意,但我真的不相信它们有什么好处,甚至可能:
public class TableAWriter implements ItemWriter<TableA>{
@Autowired
private TableARepository TableARepository;
@Override
public void write(List<? extends TableA> items) throws Exception {
TableARepository.saveAll(items);
}
}
将所有数据转储到实际的LLVM IR全局变量中,并在llvm传递期间将其提取
我想我可以序列化数据并在llvm传递中反序列化它,但是我不确定这是否也是一种好方法?
还有其他/更好的解决方案吗?
我实质上希望用户能够将元程序作为代码库的一部分来编写。 类似于Jonathan Blow在他的编程语言Jai中所做的事情。 这是他演示的演示文稿:https://www.youtube.com/watch?v=gWv_vUgbmug