- 博客(2)
- 收藏
- 关注
原创 LLVM-Analysis-LoopInfo
LLVM中对循环的识别是十分的简单。他是一种类似于Tarjan的可规约流图识别(《Testing flow graph reducibility》),不同的是LLVM是基于dom-tree的遍历,这有点像区域分析。因为这个原因,LoopInfo这个模块是没法找到不可规约结构的,因为不可规约循环的循环头不支配循环体。其实这点也可以理解,不可规约循环本来就少见,LLVM也不是什么高性能计算编译器。...
2019-07-27 10:31:48 2196 3
原创 LLVM-TransformUtils-Mem2Reg
众所周知LLVM IR其实在clang的codegen后并不是strict-SSA结构,因为这时候局部变量表现为alloca指令,同时对局部变量通过load和store进行读写操作,这会导致局部变量可能会存在多个def(多个store指令),而SSA要求每个变量只能有一个def。这时LLVM会通过标准的SSA构造算法来将原始IR转换成minimal-SSA并最终转换成prune-SSA,这一切...
2019-07-25 06:57:56 2675
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人