|
1
5
是的,这是一个有趣的错过优化。 看起来它决定优化向量存储/标量重新加载到向量提取,这通常是好的。 但是它没有考虑调用约定,调用约定没有保留调用的向量寄存器。这段代码在Windows x64上就可以了,例如,它可以使用xmm6。
GCC有多个进程,在程序逻辑的通用表示上操作的与体系结构无关的中间进程有时无法利用直到寄存器分配时间才知道的全部细节。对于gcc来说,有些优化是很困难的,因为它不能看到它们。
|