llvm
adream307
这个作者很懒,什么都没留下…
展开
-
[LLVM]在汇编语言上插入指令
问题:LLVM如何实现在汇编语言的.s 文件中所有call指令前后添加2行固定指令?答:LLVM中function相关的pass用于修改ir,而machine function相关的pas用于修改mir,也就相当于修改生成的汇编编写machine function pass然后遍历每个指令,在call之前调用buildMI函数插入需要的指令,这个pass必须在code emit之前,指令调度之...原创 2020-01-08 10:01:58 · 929 阅读 · 0 评论 -
[llvm]IR函数传递struct参数,并且返回struct
原始IR%struct.tm = type {i32, i32, i32}define %struct.tm @foo(%struct.tm %val){ %val_ptr = alloca %struct.tm %a = extractvalue %struct.tm %val, 0 %a1 = add i32 %a, 1 %a_ptr = getelementptr %struct...原创 2018-04-20 17:29:51 · 1123 阅读 · 0 评论 -
[LLVM]How to Read and Write Metadata in LLVM
http://jiten-thakkar.com/posts/how-to-read-and-write-metadata-in-llvmThis is a small post to demonstrate working code for writng and reading metadata information from LLVM IR. I couldn’t find any good...转载 2018-05-07 00:16:18 · 869 阅读 · 0 评论 -
[llvm]查看O3使用了哪些pass
opt -O3 -debug-pass=Arguments t1.ll -o t2.o3.ll -S原创 2018-07-23 23:42:27 · 3360 阅读 · 0 评论 -
[llvm]在llvm的codegen代码中调用printf函数
为了调试方便,有时我们需要在codegen代码中添加printf函数,打印调试信息PrintTest.cpp//clang++ PrintTest.cpp `llvm-config --cxxflags --ldflags --system-libs --libs core mcjit native` -o p #include <iostream>#include "llvm...原创 2018-11-07 11:30:19 · 2497 阅读 · 1 评论