Optimization 确定性函数的编译器优化

Optimization 确定性函数的编译器优化,optimization,compiler-construction,deterministic,Optimization,Compiler Construction,Deterministic,我读过关于确定性执行的书,也就是说,对于相同的输入,你有相同的输出。我想知道是否有编译器编写人员考虑过在运行时优化确定性函数。 例如,以阶乘函数为例。如果在运行时检测到使用相同的输入值连续调用,编译器可以缓存输出值,而不是执行阶乘函数,可以直接使用该输出值。看起来是个不错的研究课题。有关于这个主题的论文或工作吗?可以做,但据我所知,编译器做这件事并不常见。问题是,用户可以定义任意多的类型,并以任何方式定义相等,而使用堆分配和其他方法,很难证明这一点。基本上,这是可以做到的,但只有当你的函数涉及到

我读过关于确定性执行的书,也就是说,对于相同的输入,你有相同的输出。我想知道是否有编译器编写人员考虑过在运行时优化确定性函数。
例如,以阶乘函数为例。如果在运行时检测到使用相同的输入值连续调用,编译器可以缓存输出值,而不是执行阶乘函数,可以直接使用该输出值。看起来是个不错的研究课题。有关于这个主题的论文或工作吗?

可以做,但据我所知,编译器做这件事并不常见。问题是,用户可以定义任意多的类型,并以任何方式定义相等,而使用堆分配和其他方法,很难证明这一点。基本上,这是可以做到的,但只有当你的函数涉及到直接的数值计算时,这是很少见的,因此它通常没有很高的价值。

你说的是参考透明度。这是函数式编程的重要组成部分

)

谈论配置文件引导优化


本身不回答您的问题,但总体上讲是关于使用运行时行为优化程序集的。

这通常被称为,在函数式语言中是一种相当常见的优化。

您似乎把这个网站错当成了谷歌。