优化和调优
| 编译指示 (pragma) | 描述 |
|---|---|
#pragma block_loop |
使用特定于作用域的标识来标记块。 |
| #pragma STDC CX_LIMITED_RANGE | 通知编译器,仅限通过中间计算不会溢出或丢失基数的值来调用复杂除法和绝对值。 |
| #pragma disjoint | 列出未在其使用范围内彼此互为别名的标识。 |
| #pragma execution_frequency | 标记您期望执行频率非常高或非常低的程序源代码。 |
#pragma expected_value |
指定函数调用中传递的参数在运行时最有可能采用的值。 编译器可以使用此信息来执行某些优化,例如功能克隆和内联。 |
| #pragma GCC visibility push 和 #pragma GCC visibility pop | 指定对象文件中的外部链接实体的可视性属性。 |
#pragma ibm iterations |
指定所选循环的近似平均循环迭代次数。 |
#pragma ibm max_iterations |
指定所选循环的近似最大循环迭代次数。 |
#pragma ibm min_iterations |
指定所选循环的近似最小循环迭代次数。 |
#pragma isolated_call |
指定源文件中无任何副作用(其参数隐含的副作用除外)的函数。 |
#pragma 离开 |
通知编译器,在调用指定的函数后,此函数从未返回指令。 |
#pragma loopid |
使用特定于作用域的标识来标记块。 |
#pragma nosimd |
与 -qsimd=auto配合使用时,将禁止为下一个循环生成 SIMD 指令。 |
#pragma novector |
与 -qhot=vector配合使用时,将禁用下一个循环的自动向量化。 |
| #pragma option_override | 允许您在子程序级别指定优化选项,以覆盖命令行上指定的优化选项。 |
| #pragma reachable | 通知编译器,程序中所指定函数后的点可作为来自某个未知位置的分支的目标。 |
#pragma reg_killed_by |
指定可由 #pragma mc_func 指定的函数修改的寄存器。 |
#pragma simd_level |
控制个别循环的向量指令的编译器代码生成。 |
#pragma stream_unroll |
启用优化后,将 |
#pragma展开 |
控制循环展开以提高性能。 |
#pragma展开和融合 |
指示编译器尝试对嵌套的 |
