optimization - 表达式优化

  显示原文与译文双语对照的内容
0 0

我有一个包含 REAL的表达式:


xf=w1*x1 + w2*x2 + w3*x3 + w1*y1 + w2*y2 + w3*y3

我想知道( 。英特尔 Fortran ) 编译器是否将它的优化为:


xf=w1*(x1+y1) + w2*(x2+y2) + w3*(x3+y3)

如何查看为此表达式生成的表达式树?

时间: 原作者:

0 0

标准的公共子表达式方案不会执行上述转换,有些语言将转换视为非法转换,因为它可能会导致不同的副作用。

但是高性能的FORTRAN编译器( 可能不包括 Intel ) 可能会做它。

原作者:
0 0

如何查看为此表达式生成的表达式树?

如果编译器具有在给定优化阶段后显示树的选项,则可以使用该选项。 要了解是否存在这种情况,请参考你的编译器优化。

如果编译器没有这样的选项,你将无法看到在运行期间编译器生成的树( 或者其他内部表示形式) 。 在这种情况下,最好只是查看生成的程序集,看看哪些算术操作会被执行。

原作者:
...