我想知道是否有辦法在gcc/g ++中禁用預測。當我得到我的代碼的對象轉儲時,我不希望有任何CMOV,CCMP等指令。禁用gcc/g ++中的預測
我已經通過gcc手冊頁沒有任何成功。到目前爲止,唯一的出路似乎是侵入gcc本身。在RHEL x86_64機器上使用gcc 4.3。有任何想法嗎?
在此先感謝。
我想知道是否有辦法在gcc/g ++中禁用預測。當我得到我的代碼的對象轉儲時,我不希望有任何CMOV,CCMP等指令。禁用gcc/g ++中的預測
我已經通過gcc手冊頁沒有任何成功。到目前爲止,唯一的出路似乎是侵入gcc本身。在RHEL x86_64機器上使用gcc 4.3。有任何想法嗎?
在此先感謝。
您可以嘗試鎖定之前沒有這些指令的x86指令集?
http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Target-Options.html
gcc -b i386 main.c
(我沒試過)
感謝James的指導。我讀過你發佈的文章。 gcc說「無法識別的選項」-b'「。不完全確定爲什麼。試過-march = i386。得到「錯誤:您選擇的CPU不支持x86-64指令集」。同樣的-mtune = i386。儘管如此,我仍然在尋找解決方案。 – antitalented 2011-03-08 15:59:56
我遇到了這個問題之前,在我的情況下,解決辦法是禁用,如果轉換。您可以使用編輯旗標:
-fno-if-conversion -fno-if-conversion2
根據文檔,該建議似乎是正確的,但即使使用這些標誌,我仍然無法避免使用CMOV。 – alecov 2017-01-15 15:02:17
爲什麼要這樣做? – Gabe 2011-03-07 22:52:22