Clang和LLVM教程
这个档案主要是关于clang和llvm的一些有趣示例。其中一些是我研究生课程的作业,一些是其他的,其中大多数是toy code
内容
AST口译员
lang抽象语法树的解释器,玩具代码,现在仅支持整数类型。 它支持编程语言的基本模块,例如ifstmt,whilestmt,函数调用,malloc和数组。有关更多信息,请参见
功能指针传递
基于LLVM IR和位码的use-def链的实现,现在它支持直接函数调用和函数指针。 对于函数指针,计算可能调用的函数(如果确定),将其替换为直接函数调用,然后写入位码文件。 还应考虑将函数指针存储在内存中的情况。
值范围分析
Value range analysis是一种data flow analysis ,它跟踪数值变量在程序执行的每个点可以采用的值的范围(间隔)。 产生的信息可用于优化,例如redundancy elimi
1