逸翎清晗🌈
个人笔记
408申博笔记
后端Pass简介——CallBrPrepare
CallBrPrepare 这个 Pass 在 IR 级别拆分 callbr 的关键边,并在每个间接目标块开头插入 llvm.callbr.landingpad intrinsic,以便为后端生成时在各条跳转路径上正确地复制并映射返回值。 这个 Pass 不需要调参,但需要 DominatorTreeAnalysis 介入。 这里的“landingpad”有两种常见含义: 在异常处理(C++/LLVM EH)里的 landingpad 语句,用于描述 catch/finally 块的入口。 在这个 callbr pass 里,landingpad 指的是用 llvm.callbr.landingpad intrinsic 人工插入的一个 SSA 值定义点,专门用来在每个间接跳转目标块开头产生 callbr 的返回值副本。 例子: 准备前: entry: %res = callbr i32 asm(...), label %def, [label %tgt1, label %tgt2] def: ; ... 默认目标块 ... tgt1: ; ... 间接跳 ...
后端辅助类——CalcSpillWeights
寄存器辅助类
胶东半岛
后端Pass简介——BreakFalseDeps
一个简单Pass的介绍
后端Pass简介——BranchRelaxation
BranchRelaxtionPass简介
后端Pass简介——BranchFolding
后端Pass,BranchFolding
主流通用大语言模型forCode
来自BigCodeBench的大语言模型排行榜
TorchRL学习
TorchRL实战
后端Pass简介——BasicBlockPathClothing,BasicBlockSections
BasicBlockPathClothing 该 Pass 目的是 -fbasic-block-sections=list 编译选项,它的目标是: 根据运行时 profile 或离线分析的热点路径对基本块进行聚类; 通过克隆热路径,让热点路径在 layout 上连续,优化分支预测和指令缓存命中率; 后续 BasicBlockSections Pass 会根据克隆后 block 的 BBID 来创建 section,对每段代码独立放置、优化布局。 一句话: BasicBlockPathCloning 是一个 LLVM 中的 MachineFunction-level pass,依据 profile 指定的基本块执行路径克隆 CFG 中的基本块序列,从而支持后续的 layout 优化和 section 分离。
后端Pass简介——AtomicExpandPass
AtomicExpandPass 基本概念 INITIALIZE_PASS_BEGIN(AtomicExpandLegacy, DEBUG_TYPE, "Expand Atomic instructions", false, false) INITIALIZE_PASS_DEPENDENCY(TargetPassConfig) INITIALIZE_PASS_END(AtomicExpandLegacy, DEBUG_TYPE, "Expand Atomic instructions", false, false) 本文件定义了一个 IR 级别的 Pass,用于将原子指令替换为__atomic_* 库函数调用,或者替换为实现相同语义、但更适合目标后端的特定指令。这些替代方式可能包括:基于 intrinsic 的 load-linked/store-conditional 循环、AtomicCmpXchg,或者类型强制转换等。 典型的原子指令如下: @x = global i32 ...
计算机论文词汇
计算机论文词汇临时集中点
avatar
💦非常忙碌!
逸翎清晗🌈
Talk is cheap, show me the code.💎
GitHub
公告栏
--- 主域名 ---
www.yangzi.world | yangzi.world
推荐实用资料工具目录
yangzi.world/pages/opensources.html
--- 旅游分享 ---
🍧yangzi.world/iternery/index.html
--- 安卓APP ---
🍧点此下载🍧

最新文章
公开数据
文章数目 :
168
本站总字数 :
27.5w
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面