ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
可以通过使用 --program_level_compile 选项和 --opt_level=3 选项(别名为 -O3)来指定程序级优化。(如果使用 --opt_level=4 (-O4),则不能使用 --program_level_compile 选项,因为链接时优化提供了与程序级优化相同的优化机会。)
通过程序级优化,所有源文件都会编译成称为模块 的中间文件。该模块会转入到编译器的优化和代码生成阶段。由于编译器可以看到整个程序,因此其会执行一些在文件级优化中很少应用的优化:
--program_level_compile 选项要求使用 --opt_level=3 或更高版本,以便执行这些优化。
要查看编译器正在应用哪些程序级优化,请使用 --gen_opt_level=2 选项来生成信息文件。有关更多 信息,请参阅节 3.3.1。
在 Code Composer Studio 中,当使用 --program_level_compile 选项时,具有相同选项的 C 和 C++ 文件将被一起编译。但是,如果任何文件具有未被选为项目范围选项的文件专用选项,则该文件将被单独编译。例如,如果项目中的每个 C 和 C++ 文件都有一组不同的文件专用选项,则即使已指定了程序级优化,也会单独编译每个文件。要将所有的C 和 C++ 文件一起编译,请确保这些文件没有文件专用选项。请注意,如果先前使用了文件专用选项,则将 C 和 C++ 文件一起编译可能不安全。
如果使用--program_level_compile 和--keep_asm 选项编译所有文件,则编译器只会生成一个 .asm 文件,而不是为每个对应的源文件都生成一个。