gpt4 book ai didi

gcc - 较小堆栈边界的权衡是什么?

转载 作者:行者123 更新时间:2023-12-04 20:57:24 25 4
gpt4 key购买 nike

在 gcc 4.5 中,调用函数时堆栈必须与 16 字节边界对齐(以前的版本只需要 4 字节对齐)。

4 字节对于 32 位机器是合理的。
16 字节很容易通过“and 0xfffffff0, %esp”对齐。

但它可能比 4 字节边界花费更多的内存,不是吗?
简而言之,我的问题是为什么 gcc 4.5 默认使用 16 字节?它有值(value)吗?

非常感谢!

最佳答案

现代处理器的许多向量扩展需要 16 字节对齐才能加载/存储。某些架构提供未对齐的负载,但通常这些架构要慢得多。

对于 memcpy 和其他类似的低级操作,更频繁地遇到更严格对齐的源/目标,这种对齐可能有一些好处。

此外,它几乎肯定会增加自动矢量化成功的机会,这是最近的 gcc 版本所包含的。

关于gcc - 较小堆栈边界的权衡是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4024379/

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