9个重大版本发布

0.78.0 2021年10月29日
0.76.0 2021年8月2日
0.75.0 2021年6月9日
0.72.0 2021年3月16日

#1604WebAssembly

每月32次下载

Apache-2.0 WITH LLVM-exception

28KB
615

将Souper优化转换为Peepmatic DSL。

通过直接自顶向下的递归遍历优化表达式的左右表达式DAG,实现从Souper到Peepmatic的转换。大多数Souper指令都有相应的Peepmatic指令。如果遇到不是这种情况的指令,则跳过该Souper优化并继续下一个。

请注意,Souper完全支持DAG,例如

%0 = var
%1 = add 1, %0
%2 = add %1, %1       ;; Two edges to `%1` makes this a DAG.

另一方面,Peepmatic目前仅支持树,因此共享子表达式被重复使用

(iadd (iadd 1 $x)
      (iadd 1 $x))    ;; The shared subexpression is duplicated.

这不会影响正确性。

依赖项

~335KB