我正在看ReST来重写C++代码库,我想知道如何禁用循环展开/矢量化和控制展开计数.在叮当声中,我们将使用:
#pragma clang loop unroll(disable)
#pragma clang loop unroll(disable) vectorize(disable)
#pragma clang loop unroll_count(2)
它是对性能高度敏感的代码,不控制循环codegen可能会成为一个阻碍.
我正在看ReST来重写C++代码库,我想知道如何禁用循环展开/矢量化和控制展开计数.在叮当声中,我们将使用:
#pragma clang loop unroll(disable)
#pragma clang loop unroll(disable) vectorize(disable)
#pragma clang loop unroll_count(2)
它是对性能高度敏感的代码,不控制循环codegen可能会成为一个阻碍.
无法控制给定循环的展开方式.它有has been proposed个,但在考虑这样一个RFC方面没有取得实际进展,更不用说接受和实施它了.
如果您正在寻找非常广泛的功能,可以将-C llvm-args=...
传递给编译器以影响LLVM.如果有一种方法可以完全禁用循环展开,那么might就可以随心所欲了.
务实地说,我鼓励您对代码进行walking skeleton次测试,看看性能是否可以接受.我的个人经验表明,"通用"防 rust 代码更有效,因为