根据GCC的数据预取支持网站,目前可能的选项包括:现有的GCC数据预取支持包括: - 通用预取RTL模式。 - 针对多个目标的特定支持。 - 一个__builtin_prefetch函数,对于不支持预取或尚未将预取支持添加到GCC中的目标不起作用。 - 通过-fprefetch-loop-arrays启用的优化,用于预取在循环中使用的数组。然后查看优化选项,似乎需要显式启用-fprefetch-loop-arrays(即使使用-O3也不会自动启用)。如果目标机器支持,生成指令以预取内存,以提高访问大数组的循环的性能。该选项可能会生成更好或更差的代码;结果高度依赖于源代码中循环的结构。在级别-Os下禁用。请注意,GCC's C99 status page指出,目前不考虑C99中函数声明符上数组的static关键字(C99 6.7.5.3/7)。这意味着“大数组”的大小及其真正含义完全由实现控制。