随笔分类 -  complier

learning notes about complier
摘要:后台处理流程如下: 图中灰色矩形代表的操作也被称为superpass——其内部实现也是更小的pass,对于后台的成功执行十分重要;而白色矩形中的pass则主要为了提高代码的效率。 llc是后台的主要工具,相关命令如下: 与后台相关的代码都在lib目录下以及其子目录CodeGen,MC,TableGe 阅读全文
posted @ 2017-09-06 14:14 glob 阅读(1116) 评论(0) 推荐(0)
摘要:官方的IR是由Instruction类产生的。IR有三种存在形式: 生成bitcode文件: 生成汇编表示: 二者之间可以相互转化: 从bitcode文件中提取某个函数: IR的内存中表示 内存中表示的相关头文件在include/llvm/IR目录下,下面是几个最为重要的类: 可以用IRBuilde 阅读全文
posted @ 2017-09-05 17:22 glob 阅读(421) 评论(0) 推荐(0)
摘要:Clang将源码转换为LLVM IR 比特码(bitcode)的流程如下: 词法分析(Lexical analysis): 词法分析将代码分解成单词和记号,删除注释,空格,和制表符,根据include/clang/Basic/TokenKinds.def将保留字转化为编译器的内部表示。 此外,词法分 阅读全文
posted @ 2017-09-05 14:10 glob 阅读(858) 评论(0) 推荐(0)