2012-08-08 53 views
5

我正在为SSE内联编写几个包装类 - 主要是为了获得类型安全的几何操作,还要添加一些方便的功能。我所有的功能和操作员都是内联的。理论上,它们都将直接编译为原始SSE程序集(无函数调用),并且我的电子永远不会离开XMM寄存器。我应该如何将SSE数据传递给我的功能/操作员?

如何传递我的SSE类作为参数来确保这个结果?

我从不修改我的参数,所以选择主要是通过值传递或通过const引用传递。我假设一个好的编译器会根据相同的代码优化两种样式。但我确实不知道。能否在该领域拥有更多经验的人士阐述最佳实践?

在此先感谢!

回答

4

对大多数编译器来说都不错,但是如果你想让代码用Visual Studio进行编译,那么就应该使用const引用,因为Visual Studio编译器有些脑死亡,即使函数是内联的,也会引入不必要的ABI限制。

+1

谢谢 - 我现在只是GCC,但它很好兼容。 Const引用它。干杯! – 2012-08-09 03:47:09

相关问题