首页
›
AI智能与边缘计算工程
›
146-MLIR与LLVM编译器开发
›
《LLVM中间表示与Pass编写实战》
VIP6
本课程属于:146-MLIR与LLVM编译器开发
AI智能与边缘计算工程 · 共 6 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
📘
LLVM中间表示与Pass编写实战
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导入
LLVM整体架构 · IR与Pass的作用 · 学习路径与工具链概览
课程导入
LLVM
02
环境搭建
LLVM源码编译 · 预编译包安装 · Clang与opt工具使用
环境搭建
LLVM
03
LLVM IR基础语法
模块 · 函数 · 基本块
LLVM
IR
04
LLVM IR高级特性
控制流指令 · phi节点 · 异常处理
LLVM
IR
05
IR生成与查看
使用Clang生成IR · 优化级别对IR的影响 · IR的可读性分析
IR
生成
06
Pass基础概念
Pass的类型(ModulePass · FunctionPass等) · Pass管理器与执行流程
Pass
基础概念
07
编写第一个Pass
创建FunctionPass · 注册Pass · 使用opt运行
Pass
编写第一个
08
Pass的调试与测试
使用debug输出 · 验证IR变换 · 编写简单测试用例
Pass
的调试
09
Pass的依赖与交互
Pass依赖声明 · 分析Pass与变换Pass的区别 · Pass间通信
Pass
的依赖
10
分析Pass实战
实现指令计数 · 基本块统计 · 循环检测等静态分析
Pass
分析
11
变换Pass实战
实现死代码消除 · 常量传播 · 指令合并等优化
Pass
变换
12
Pass的合法性检查
使用verify模块 · 确保IR一致性 · 常见错误与修复
Pass
的合法性检查
13
Pass的注册与扩展
使用Pass插件 · 动态加载Pass · 自定义Pass注册机制
Pass
的注册
14
Pass管理器新架构
New Pass Manager与L… · 迁移方法
Pass
管理器新架构
15
IRBuilder与指令创建
在Pass中创建指令 · 插入位置控制 · 更新支配关系
IRBuilder
指令创建
16
类型与常量处理
在Pass中操作类型 · 创建常量 · 处理向量与聚合类型
类型
常量处理
17
控制流图分析
构建CFG · 遍历基本块 · 支配树与支配边界
控制流图分析
CFG
18
数据流分析框架
到达定义 · 活跃变量 · 可用表达式等经典分析实现
数据流分析框架
到达定义
19
循环分析与优化
识别循环 · 循环不变量外提 · 强度削减等实战
循环分析
优化
20
函数内联与调用图分析
实现内联Pass · 构建调用图 · 处理间接调用
函数内联
调用图分析
21
全局优化Pass
全局常量传播 · 全局死代码消除 · 全局变量优化
Pass
全局优化
22
目标相关Pass
了解目标特定Pass · 指令选择与寄存器分配在IR层面的影响
Pass
目标相关
23
Pass性能优化
减少Pass开销 · 使用缓存 · 并行化分析
Pass
性能优化
24
Pass测试框架
使用lit与FileCheck编写P… · 测试用例设计
Pass
测试框架
25
常见问题与陷阱
Pass顺序问题 · 迭代不稳定 · IR修改导致的分析失效
常见问题
陷阱
26
综合实战一
实现一个自定义优化Pass组合 · 完成从源码到优化后IR的流程
综合实战一
Pass
27
综合实战二
开发一个静态分析工具 · 基于Pass提取程序特征并输出报告
综合实战二
开发一个静态分析…
28
综合实战三
为特定场景(如安全加固)编写Pass · 实现代码变换
综合实战三
Pass
29
项目实践
设计并实现一个完整的Pass插件 · 集成到构建系统 · 编写文档
项目实践
Pass
30
课程总结
回顾核心知识 · 常见模式 · 学习资源与进阶方向
课程总结
回顾核心知识
所属VIP或分类
同VIP:LLVM与TVM深度学习编译优化
同VIP:MLIR中间表示与AI编译器优化
同VIP:MLIR框架核心Dialect与Pass开发实战