消除错误的依赖关系
我有一个关于错误依赖关系的非常普遍的问题。顾名思义,这些 不是真正的依赖关系,可以消除。我知道一种名为寄存器重命名的技术可以在硬件级别消除此类依赖性。当然,在编写避免错误依赖的汇编代码时,我可以在“更高”级别预先消除这些。
但现在我想知道编译器是否也提供支持以保持较低的错误依赖项数量,或者是否更多地依赖硬件来消除它们?
I have a quite general question regarding false dependencies. As the name implies, these
are not real dependencies and can be eliminated. I am aware of the technique called register renaming that eliminates such dependencies at a hardware level. Of course I could eliminate these beforehand at a "higher" level when writing assembler code that avoids false dependencies.
But now I am wondering whether the compiler also provides support to keep the number of false dependencies low, or whether it relies more on the hardware to eliminate them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
优化编译器通过使用称为“单一静态赋值”(SSA) 的程序表示来执行类似的操作...
Optimizing compilers do something like this through the use of a program representation called Single Static Assignment (SSA)...