Gcc 什么';是不是要对较小的堆栈边界进行权衡?

Gcc 什么';是不是要对较小的堆栈边界进行权衡?,gcc,memory-management,Gcc,Memory Management,在GCC4.5中,调用函数时堆栈必须与16字节边界对齐(以前的版本只需要4字节对齐) 对于32位机器,4字节是合理的。 16字节很容易通过“和0xfffffff0,%esp”对齐 但它可能比4字节边界占用更多内存,不是吗? 简而言之,我的问题是为什么GCC4.5默认使用16字节?它值钱吗 非常感谢 现代处理器的许多向量扩展需要16字节的加载/存储对齐。有些体系结构提供未对齐的负载,但通常这些负载的速度要慢得多 memcpy和其他类似的低级别操作更频繁地遇到严格一致的源/目的地,这种一致性可能会带

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

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

但它可能比4字节边界占用更多内存,不是吗? 简而言之,我的问题是为什么GCC4.5默认使用16字节?它值钱吗


非常感谢

现代处理器的许多向量扩展需要16字节的加载/存储对齐。有些体系结构提供未对齐的负载,但通常这些负载的速度要慢得多

memcpy和其他类似的低级别操作更频繁地遇到严格一致的源/目的地,这种一致性可能会带来一些好处

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