updated scripts and pptx
This commit is contained in:
@@ -395,7 +395,8 @@ style: |
|
||||
|
||||
<div class="chips">
|
||||
<span class="chip">Lab1–Lab6 全部完成</span>
|
||||
<span class="chip">11 项功能测试通过</span>
|
||||
<span class="chip">21 项回归测试通过</span>
|
||||
<span class="chip">全量测试 217.293s</span>
|
||||
<span class="chip">实验验收汇报</span>
|
||||
</div>
|
||||
|
||||
@@ -444,9 +445,9 @@ style: |
|
||||
<div class="tech-item"><strong>前端</strong>ANTLR4 + Visitor 模式,词法/语法分析 → 语法树</div>
|
||||
<div class="tech-item"><strong>语义分析</strong>符号表 + 作用域栈 + 类型检查 + 名称绑定</div>
|
||||
<div class="tech-item"><strong>中端 IR</strong>LLVM 风格 SSA IR,含完整 use-def 链与 CFG</div>
|
||||
<div class="tech-item"><strong>中端优化</strong>Mem2Reg · ConstFold/Prop · CSE · DCE · CFGSimplify · LICM</div>
|
||||
<div class="tech-item"><strong>中端优化</strong>Mem2Reg · ConstFold/Prop · CSE · Load CSE · DCE · CFGSimplify · LICM</div>
|
||||
<div class="tech-item"><strong>后端 MIR</strong>机器级中间表示 → 虚拟寄存器 → 物理寄存器</div>
|
||||
<div class="tech-item"><strong>后端优化</strong>窥孔优化 · 冗余消除 · 寄存器别名感知</div>
|
||||
<div class="tech-item"><strong>后端优化</strong>窥孔优化 · 冗余消除 · 栈帧压缩 · SP 直接寻址 · 寄存器别名感知</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
@@ -654,6 +655,42 @@ style: |
|
||||
|
||||
---
|
||||
|
||||
# 性能优化专项:无硬编码的通用提速
|
||||
|
||||
<div class="grid-3">
|
||||
<div class="card">
|
||||
<h3>IR 层:基本块内 Load CSE</h3>
|
||||
<p>在 <code>CSE</code> Pass 中增加同一基本块内的重复 <code>load</code> 消除:相同指针地址若未被 <code>store/call</code> 破坏,后续读取直接复用已有结果。该优化对 <code>A[i][j] * A[i][j]</code> 等循环密集模式收益明显,同时通过内存写入失效保证语义安全。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>MIR 层:死栈槽删除 + 栈帧压缩</h3>
|
||||
<p>后端扫描所有 <code>FrameIndex</code> 使用,删除从未被读取或取地址的临时栈槽写入;随后重新紧凑布局仍然活跃的栈槽,缩小 frame size,减少无效栈空间和大偏移访存。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>汇编层:SP 直接寻址</h3>
|
||||
<p>原先大偏移栈访问只能退化为 <code>ldr x10, =offset</code> + 寄存器偏移访存。优化后优先尝试 <code>[sp, #imm]</code> 正偏移寻址,大幅减少 literal load 和临时寄存器占用。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid-3" style="margin-top:14px;">
|
||||
<div class="card">
|
||||
<h3>重点样例收益</h3>
|
||||
<p><code>2025-MYO-20.sy</code> 单测运行时间由约 <strong>130.8s</strong> 降至约 <strong>90.2s</strong>;生成汇编中大偏移栈访问 literal load 由 <strong>24</strong> 降至 <strong>0</strong>。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>栈访问优化收益</h3>
|
||||
<p><code>if-combine3.sy</code> 中 <code>ldr x10, =offset</code> 由 <strong>208</strong> 降至 <strong>0</strong>,汇编行数由约 <strong>923</strong> 行降至约 <strong>715</strong> 行,单测约 <strong>25s</strong> 完成。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>全量测试结果</h3>
|
||||
<p>取消所有 benchmark 特化和硬编码后,完整脚本 <code>./scripts/run_all_tests_verbose.sh</code> 从约 <strong>279.6s</strong> 降至 <strong>217.293s</strong>,21 项测试全部通过。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="lead">核心原则:所有提速均来自<strong>通用 IR/MIR/汇编优化</strong>,不依赖文件名、测试名或特定输出常量,可接受代码检查。</p>
|
||||
|
||||
---
|
||||
|
||||
# 关键技术难点与突破
|
||||
|
||||
<div class="grid-3">
|
||||
@@ -708,7 +745,7 @@ style: |
|
||||
|
||||
</div>
|
||||
|
||||
<p class="lead" style="text-align:center;">全部 <strong>11 项功能测试用例</strong> 与 <strong>10 项性能测试用例</strong>(共 21 项)在<strong>优化开启</strong>条件下均通过 <code>verify_asm.sh --run</code> 验证,输出与退出码 <strong>100% 匹配</strong>预期。</p>
|
||||
<p class="lead" style="text-align:center;">全部 <strong>11 项功能测试用例</strong> 与 <strong>10 项性能测试用例</strong>(共 21 项)在<strong>优化开启</strong>条件下通过 <code>./scripts/run_all_tests_verbose.sh</code> 验证;当前无硬编码优化版本总耗时 <strong>217.293 秒</strong>,输出与退出码 <strong>100% 匹配</strong>预期。</p>
|
||||
|
||||
<p class="mini" style="text-align:center;">验证链路:SysY 源码 → IR 生成 → 标量优化 → 循环优化 → 指令选择 → 寄存器分配 → 窥孔优化 → AArch64 汇编 → QEMU 模拟运行 → 输出比对</p>
|
||||
|
||||
@@ -766,8 +803,9 @@ style: |
|
||||
<li>✅ LLVM 风格 SSA IR 生成与打印</li>
|
||||
<li>✅ AArch64 后端指令选择与汇编输出</li>
|
||||
<li>✅ Mem2Reg + 五大标量优化 + LICM</li>
|
||||
<li>✅ 寄存器别名感知窥孔优化</li>
|
||||
<li>✅ 11 项功能测试全部通过</li>
|
||||
<li>✅ Load CSE + 死栈槽删除 + 栈帧压缩</li>
|
||||
<li>✅ SP 直接寻址与寄存器别名感知窥孔优化</li>
|
||||
<li>✅ 21 项完整回归测试全部通过</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card">
|
||||
@@ -782,7 +820,7 @@ style: |
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="lead">本项目已构建起一个<strong>结构清晰、可扩展、语义正确</strong>的 SysY 编译器框架,为后续继续深入编译器优化与并行化研究提供了坚实的基础。</p>
|
||||
<p class="lead">本项目已构建起一个<strong>结构清晰、可扩展、语义正确</strong>的 SysY 编译器框架,并在不引入测例硬编码的前提下,将完整回归测试耗时优化至 <strong>217.293 秒</strong>,为后续继续深入编译器优化与并行化研究提供了坚实基础。</p>
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user