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)來指定程序級優(yōu)化。(如果使用 --opt_level=4 (-O4),則不能使用 --program_level_compile 選項,因為鏈接時優(yōu)化提供了與程序級優(yōu)化相同的優(yōu)化機會。)
通過程序級優(yōu)化,所有源文件都會編譯成稱為模塊 的中間文件。該模塊會轉(zhuǎn)入到編譯器的優(yōu)化和代碼生成階段。由于編譯器可以看到整個程序,因此其會執(zhí)行一些在文件級優(yōu)化中很少應(yīng)用的優(yōu)化:
--program_level_compile 選項要求使用 --opt_level=3 或更高版本,以便執(zhí)行這些優(yōu)化。
要查看編譯器正在應(yīng)用哪些程序級優(yōu)化,請使用 --gen_opt_level=2 選項來生成信息文件。有關(guān)更多 信息,請參閱節(jié) 3.3.1。
在 Code Composer Studio 中,當(dāng)使用 --program_level_compile 選項時,具有相同選項的 C 和 C++ 文件將被一起編譯。但是,如果任何文件具有未被選為項目范圍選項的文件專用選項,則該文件將被單獨編譯。例如,如果項目中的每個 C 和 C++ 文件都有一組不同的文件專用選項,則即使已指定了程序級優(yōu)化,也會單獨編譯每個文件。要將所有的C 和 C++ 文件一起編譯,請確保這些文件沒有文件專用選項。請注意,如果先前使用了文件專用選項,則將 C 和 C++ 文件一起編譯可能不安全。
如果使用--program_level_compile 和--keep_asm 選項編譯所有文件,則編譯器只會生成一個 .asm 文件,而不是為每個對應(yīng)的源文件都生成一個。