ZHCUAQ1F july 2015 – april 2023
使用 --opt_level=n 选项(或 -On)就是在通知编译器优化您的代码。n 的值越高,编译器在优化代码方面投入的精力就越多。但是,可能仍需要告知编译器您的优化优先级是什么。默认情况下,当指定 --opt_level=2 或 -opt_level=3 时,编译器主要优化性能。(在较低的优化级别下,优先优化的是编译时间和调试难度。)可以使用代码大小标志 --opt_for_space=n 来调整性能和代码大小之间的优先级。对于 --opt_for_space=0、--opt_for_space=1、--opt_for_space=2 和 --opt_for_space=3 选项越来越倾向于代码大小而不是性能。
当同时指定 --silicon_version=6400+ 与 --opt_for_space 选项时,代码将根据压缩进行调整。也就是说,需要调整更多的指令,以便在汇编时更有可能从 32 位指令转换为 16 位指令。
建议不要将代码大小标志用于性能最关键的代码。除了性能最关键的代码外,建议对所有代码使用 --opt_for_space=0 或 --opt_for_space=1。对于很少执行的代码,建议使用 --opt_for_space=2 或 --opt_for_space=3。如果需要最小代码大小,则应使用 --opt_for_space=2 或 --opt_for_space=3。通常建议将代码大小标志与 --opt_level=2 或 --opt_level=3 结合使用。
如果降低优化和/或不使用代码大小标志,则会禁用代码大小优化并牺牲性能。
如果在未指定代码大小级别编号的情况下使用 --opt_for_space,则选项级别默认为 --opt_for_space=0。