【发布时间】:2013-11-22 07:16:57
【问题描述】:
上下文:我正在编写的 Objective-C 库中有几个循环,用于处理大型文本数组。我可以看到它现在以单线程方式运行。
我了解 LLVM 现在能够自动矢量化循环,如 Apple 在 WWDC 上的会议所述。然而,它的处理方式非常谨慎,原因之一是由于 CPU 流水线可能会修改变量。
我的问题:我如何才能看到 LLVM 对我的代码进行了矢量化处理,更有用的是,我如何接收调试消息来解释为什么它不能对我的代码进行矢量化处理?我确定它是否可以看到为什么它不能自动矢量化它,它可以向我指出这一点,我可以进行必要的手动调整以使其可矢量化。
如果我没有指出这个问题已经或多或少地被问过,但相当迟钝,here。
【问题讨论】:
-
上周在 LLVM 开发者会议上对 LLVM 和矢量化进行了很好的讨论。视频/幻灯片应该很快就会上传:llvm.org/devmtg/2013-11
标签: objective-c c loops llvm vectorization