Skip to content

Commit f1abe8f

Browse files
committed
zz
1 parent d9b6223 commit f1abe8f

File tree

5 files changed

+59
-6
lines changed

5 files changed

+59
-6
lines changed
27.4 KB
Loading

docs/public/talks/ssa-bug/index.html

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ <h3>主题大纲</h3>
9696
<li>一个Issue引发的争议</li>
9797
<li>深挖Φ指令10年坑</li>
9898
<li>结果及思考</li>
99+
<li>Φ指令进化</li>
99100
</ul>
100101

101102

@@ -436,7 +437,7 @@ <h3>Phi指令并行并非多大的共识</h3>
436437
<h3>在战争中学习战争</h3>
437438
<p>通过这次事件,我们:</p>
438439
<ul>
439-
<li>学习到了 SSA 中 Phi 指令的特殊约束,并通过本文在中文社区传播这一知识</li>
440+
<li>学习到了 SSA 中 Phi 指令的特殊约束,并通过本文在中文社区传播这一知识并引起讨论</li>
440441
<li>构造了可以稳定触发 <strong>Phi并发</strong> 的测试用例;</li>
441442
<li>协助 Golang 解决了存在于 SSA 解释执行器中的错误。</li>
442443
</ul>
@@ -448,6 +449,30 @@ <h3>在战争中学习战争</h3>
448449

449450

450451

452+
<article >
453+
454+
<h2>Phi指令再进化</h2>
455+
456+
<span class="pagenumber">27</span>
457+
</article>
458+
459+
460+
461+
<article >
462+
463+
<h3>Phi指令进化为Block参数</h3>
464+
<p>在更新的MLIR和SwiftIR都引入了Block参数,通过提前计算以避免Phi指令并行的干扰。</p>
465+
466+
<div class="image">
467+
<img src="images/mlir-block-args.png" height="500" width="600">
468+
</div>
469+
470+
471+
<span class="pagenumber">28</span>
472+
</article>
473+
474+
475+
451476
<article >
452477

453478
<h3>参考链接</h3>
@@ -458,10 +483,12 @@ <h3>参考链接</h3>
458483
<li><a href="https://github.com/wa-lang/wa/commit/8138ee" target="_blank" rel="noopener">凹语言: 修正 Phi 未并行执行的问题</a></li>
459484
<li><a href="https://en.wikipedia.org/wiki/Static_single-assignment_form" target="_blank" rel="noopener">https://en.wikipedia.org/wiki/Static_single-assignment_form</a></li>
460485
<li><a href="https://homes.luddy.indiana.edu/achauhan/Teaching/B629/2006-Fall/CourseMaterial/1998-spe-briggs-ssa_improv.pdf" target="_blank" rel="noopener">Practical Improvements to the Construction and Destruction of Static Single Assignment Form</a></li>
486+
<li><a href="https://mlir.llvm.org/docs/LangRef/#blocks" target="_blank" rel="noopener">https://mlir.llvm.org/docs/LangRef/#blocks</a></li>
487+
<li><a href="https://apple-swift.readthedocs.io/en/latest/SIL.html#basic-blocks" target="_blank" rel="noopener">https://apple-swift.readthedocs.io/en/latest/SIL.html#basic-blocks</a></li>
461488
</ul>
462489

463490

464-
<span class="pagenumber">27</span>
491+
<span class="pagenumber">29</span>
465492
</article>
466493

467494

docs/public/talks/ssa-bug/index.slide

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ https://wa-lang.org
2929
- 一个Issue引发的争议
3030
- 深挖Φ指令10年坑
3131
- 结果及思考
32-
32+
- Φ指令进化
3333

3434
// --------------------------------------------------------
3535
## 凹语言简介
@@ -212,12 +212,23 @@ Alan Donovan 迅速提交了修正 `golang.org/x/tools/go/ssa/interp` 包的 pr
212212

213213
通过这次事件,我们:
214214

215-
- 学习到了 SSA 中 Phi 指令的特殊约束,并通过本文在中文社区传播这一知识
215+
- 学习到了 SSA 中 Phi 指令的特殊约束,并通过本文在中文社区传播这一知识并引起讨论
216216
- 构造了可以稳定触发 **Phi并发** 的测试用例;
217217
- 协助 Golang 解决了存在于 SSA 解释执行器中的错误。
218218

219219
经常有人质问我们:“重复发明轮子有何意义?”,这一经历正好可以用来作为回应。
220220

221+
222+
// --------------------------------------------------------
223+
## Phi指令再进化
224+
// --------------------------------------------------------
225+
226+
## Phi指令进化为Block参数
227+
228+
在更新的MLIR和SwiftIR都引入了Block参数,通过提前计算以避免Phi指令并行的干扰。
229+
230+
.image images/mlir-block-args.png 500 600
231+
221232
## 参考链接
222233

223234
- [Phi并行-凹语言与Golang共有问题的复盘](https://wa-lang.org/smalltalk/st0060.html)
@@ -226,4 +237,6 @@ Alan Donovan 迅速提交了修正 `golang.org/x/tools/go/ssa/interp` 包的 pr
226237
- [凹语言: 修正 Phi 未并行执行的问题](https://github.com/wa-lang/wa/commit/8138ee)
227238
- [https://en.wikipedia.org/wiki/Static_single-assignment_form](https://en.wikipedia.org/wiki/Static_single-assignment_form)
228239
- [Practical Improvements to the Construction and Destruction of Static Single Assignment Form](https://homes.luddy.indiana.edu/achauhan/Teaching/B629/2006-Fall/CourseMaterial/1998-spe-briggs-ssa_improv.pdf)
240+
- [https://mlir.llvm.org/docs/LangRef/#blocks](https://mlir.llvm.org/docs/LangRef/#blocks)
241+
- [https://apple-swift.readthedocs.io/en/latest/SIL.html#basic-blocks](https://apple-swift.readthedocs.io/en/latest/SIL.html#basic-blocks)
229242

27.4 KB
Loading

docs/talks/ssa-bug/index.slide

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ https://wa-lang.org
2929
- 一个Issue引发的争议
3030
- 深挖Φ指令10年坑
3131
- 结果及思考
32-
32+
- Φ指令进化
3333

3434
// --------------------------------------------------------
3535
## 凹语言简介
@@ -212,12 +212,23 @@ Alan Donovan 迅速提交了修正 `golang.org/x/tools/go/ssa/interp` 包的 pr
212212

213213
通过这次事件,我们:
214214

215-
- 学习到了 SSA 中 Phi 指令的特殊约束,并通过本文在中文社区传播这一知识
215+
- 学习到了 SSA 中 Phi 指令的特殊约束,并通过本文在中文社区传播这一知识并引起讨论
216216
- 构造了可以稳定触发 **Phi并发** 的测试用例;
217217
- 协助 Golang 解决了存在于 SSA 解释执行器中的错误。
218218

219219
经常有人质问我们:“重复发明轮子有何意义?”,这一经历正好可以用来作为回应。
220220

221+
222+
// --------------------------------------------------------
223+
## Phi指令再进化
224+
// --------------------------------------------------------
225+
226+
## Phi指令进化为Block参数
227+
228+
在更新的MLIR和SwiftIR都引入了Block参数,通过提前计算以避免Phi指令并行的干扰。
229+
230+
.image images/mlir-block-args.png 500 600
231+
221232
## 参考链接
222233

223234
- [Phi并行-凹语言与Golang共有问题的复盘](https://wa-lang.org/smalltalk/st0060.html)
@@ -226,4 +237,6 @@ Alan Donovan 迅速提交了修正 `golang.org/x/tools/go/ssa/interp` 包的 pr
226237
- [凹语言: 修正 Phi 未并行执行的问题](https://github.com/wa-lang/wa/commit/8138ee)
227238
- [https://en.wikipedia.org/wiki/Static_single-assignment_form](https://en.wikipedia.org/wiki/Static_single-assignment_form)
228239
- [Practical Improvements to the Construction and Destruction of Static Single Assignment Form](https://homes.luddy.indiana.edu/achauhan/Teaching/B629/2006-Fall/CourseMaterial/1998-spe-briggs-ssa_improv.pdf)
240+
- [https://mlir.llvm.org/docs/LangRef/#blocks](https://mlir.llvm.org/docs/LangRef/#blocks)
241+
- [https://apple-swift.readthedocs.io/en/latest/SIL.html#basic-blocks](https://apple-swift.readthedocs.io/en/latest/SIL.html#basic-blocks)
229242

0 commit comments

Comments
 (0)