關(guān)于RISC-V編譯器優(yōu)化的問題

之前研究發(fā)現(xiàn), 把編譯器選項(xiàng)里的lto(鏈接時優(yōu)化)的選項(xiàng)打開, 會讓生成的代碼小一些, 于是我就把一些項(xiàng)目的lto全打開了.

目前用的編譯器是GCC 12.

image.png


但是后來發(fā)現(xiàn)同一個項(xiàng)目, 沒做其他改動, 開了lto編譯出來的程序, 容易在一些情況下死在莫名其妙的位置. 只要關(guān)閉了lto, 就不會出現(xiàn)這種問題, 請問這是編譯器的Bug還是其他什么原因?

您好,開啟LTO選項(xiàng)之后,為了減少代碼,編譯器會在鏈接階段對整個程序而不是單獨(dú)文件來優(yōu)化,包含提取內(nèi)聯(lián)消除冗余等等,可能會在執(zhí)行時間和順序上與原來有區(qū)別,導(dǎo)致在您的硬件上運(yùn)行不正常。代碼尺寸沒有絕對要求的話可以不用開啟此選項(xiàng)。如果想要進(jìn)一步查找原因,可以將代碼發(fā)送到郵箱yangy@wch.cn


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频