将循环不变代码放在循环外是一种好习惯吗?

时间:2018-05-24 14:42:53

标签: performance compiler-optimization

我正在学习循环不变代码运动作为编译器设计中的代码优化方法。使用的示例是:

for ( i=0; i<n; i++ )
buffer[i] = 10*i + x*x;

可能会优化为:

tmp = x*x
for (i=0; i<n; i++ )
buffer[i] = 10*i + tmp;

避免多次计算x * x。

在课程示例中,这由编译器后端处理。

我的问题是,在源代码中明确地执行此操作通常是一种好习惯(在某些语言中它是否比其他语言更有利)?

0 个答案:

没有答案