首页 > 解决方案 > 可以在函数之间应用公共子表达式消除吗?

问题描述

我想知道两个相似函数的某些部分是否相同并且函数使用相同的参数顺序执行,或者循环内的函数具有相同的计算,编译器是否会做一些优化,如 CSE(公共子表达式消除)或循环不变代码减少冗余的议案?

当然,如果函数被内联,编译器会找到机会进行优化。但是如果函数没有内联,编译器还能找到消除冗余的机会吗?

换句话说,编译器将尝试在基本块中或跨基本块中查找公共子表达式。功能层面呢?

标签: optimizationcompiler-construction

解决方案


推荐阅读