前言 编译指的是将源程序翻译为等价的目标代码的过程。编译往往有五个阶段,即词法分析,语法分析,语义分析,中间代码优化与目标代码生成。编译器前端通常指生成中间代码之前的步骤。高级语言的源程序在计算机的角度来看仅仅是一串字符串,并不能直接在计算机上执行。需要靠编译器去分析这些字符串,理解程序员的意图,并将...
函数插桩指利用编译器,在程序中特定的位置插入函数调用。比如当我们希望统计某个函数运行所花的时间时,可以使用如下的Routine void some_function(int arg1, int arg2) { unsigned long long tik,tok; tik =...
Git基础使用 1. 创建 在本地创建一个git仓库:git init克隆一个远程仓库:git clone <网址> 2. 文件跟踪、修改与提交 仅在本地使用时,git可分为三个区域:工作区、暂存区(stage)与本地仓库(repository)。工作区就是当前目录,使用git...
TableGen是LLVM后端用于保存机器平台信息的一种工具语言。与架构相关的各类优化常需要知道指令的某些“特性”,比如指令调度器需要知道指令是否存在读、写延迟;寄存器分配器需要知道指令是否绑定某个物理寄存器……...
CMake是非常流行的构建系统(更准确地讲,是构建系统的“生成器”)。尤其是在C++项目中,现代CMake(3.10+版本)几乎已经成为事实上的标准(standard de...