标签: 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。
在课程示例中,这由编译器后端处理。
我的问题是,在源代码中明确地执行此操作通常是一种好习惯(在某些语言中它是否比其他语言更有利)?