gpt4 book ai didi

c++ - C++编译器能自动剔除重复代码吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:50 25 4
gpt4 key购买 nike

代码重复 is usually bad并且通常很容易被发现。我想编译器可以在最简单的情况下自动检测到它 - 他们已经解析了文本并获得了他们以各种方式分析的中间表示 - 检测可疑模式,如未初始化的变量,优化发出的代码等。我猜他们经常可以检测到功能重复也以这种方式编码,并在发出机器代码时考虑到这一点。

是否有 C++ 编译器可以检测重复代码,并且只发出一次相应的机器代码,而不是源文本中的每个重复代码?

最佳答案

有的有,有的没有。

来自 LLVM 优化页面:-mergefunc ( MergeFunctions pass, how it works )

函数在 LLVM 中间表示中被分成小块,这个优化过程试图合并相似的 block 。但不能保证一定会成功。

您会在此页面上找到许多其他优化,尽管其中一些乍一看可能显得晦涩难懂。

不过我要补充一点,重复代码对编译器/可执行文件来说并不是那么糟糕,从维护的角度来看它很糟糕,而且编译器对此无能为力.

关于c++ - C++编译器能自动剔除重复代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3855604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com