原文:LLVM笔记(1) - TableGen

. 什么是tablegen tablegen是llvm用于开发和维护编译器中公共特性的条目 e.g. 指令描述, 寄存器描述 的代码, 使之灵活的描述与构造的自动化工具. 其本质是一个parser, 将输入的td文件转化为特定的数据结构后再输出为易于阅读的cpp代码. 更多介绍可见http: llvm.org docs TableGen index.html或参见docs TableGen 下文 ...

2019-04-07 19:23 0 968 推荐指数:

查看详情

LLVM笔记(8) - tablegen介绍

之前写tablegen的介绍写到一半放弃了, 最近培训需要再拉出来看看, 顺便做个笔记. 1. 语法介绍 官方文档见这里, 以下是文档的翻译. 1.1. 类型系统 tablegen是强类型语言, 其类型系统同时包含low-level(i.e. bit int)与high-level ...

Fri Mar 13 09:47:00 CST 2020 0 1181
LLVM 笔记(五)—— LLVM IR

ilocker:关注 Android 安全(新手) QQ: 2597294287 LLVM 的 IR (Intermediate Representation) 是其设计中的最重要的部分。优化器在进行代码优化时所进行的分析和转换都是针对 IR 的。 在设计 IR 时,考虑到了很多明确的目标 ...

Sun Oct 25 22:29:00 CST 2015 0 2166
LLVM笔记(2) - IR

1. 什么是IR IR(intermediate representation)是LLVM独创的中间表达式. 经典的compiler架构由前端frontend(读入源代码, 通过词法, 语法与语义分析建立AST), 中端optimizer(优化模块)与backend(通过指令选择, 寄存器分配 ...

Thu Apr 11 06:44:00 CST 2019 0 1000
LLVM 笔记(二)—— PHI node

ilocker:关注 Android 安全(新手) QQ: 2597294287 什么是 PHI node? 所有 LLVM 指令都使用 SSA (Static Single Assignment,静态一次性赋值) 方式表示。意思是所有变量都只能被赋值一次,这样做主要是便于后期的代码优化 ...

Wed Oct 21 19:33:00 CST 2015 0 3492
LLVM笔记(6) - CompilerRT之safestack

好久没更新博客了, 最近调研安全编译选项(各类sanitizer), 抽空做个笔记. 本来想系统的分析一下compiler-rt代码, 但是最近实在太懒了, 所以先介绍最简单的安全栈safestack, 之后有空再补上compiler-rt框架以及其它sanitizer工具. 1. ...

Thu Dec 05 09:11:00 CST 2019 1 398
LLVM笔记(20) - AntiDepBreaker

自从年初手断了以后好久不写文字了, 说好的笔耕不辍也忘了(=.=), 今天正好有同学问AntiDepBreaker, 就花点时间看了下代码(顺便水一篇). 背景概述 1. 什么是Anti Depe ...

Wed Jun 30 09:40:00 CST 2021 0 225
LLVM笔记(3) - PASS

1. pass的概念 在LLVM中优化以pass形式实现, 每一个pass代表一种优化. pass分为两类, 一类是分析(analysis)pass, 负责收集信息共其它pass使用, 辅助调试或使程序可视化; 另一类是变换(transform)pass, 改变程序的dataflow ...

Sat Jun 15 06:05:00 CST 2019 4 1564
LLVM笔记(9) - 指令选择(一) 概述

本文最初是基于对新员工培训, 使其快速上手编译器后端代码而写的入门简介. 为方便阅读又根据模块细分为若干章, 内容以分析代码为主, 偶尔也会穿插一些理论扩展. 什么是指令选择 指令选择(instr ...

Sun May 03 23:50:00 CST 2020 1 2764
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM