是否忽略框架指針?-fomit-frame-pointer 總是?是否曾經有一種情況需要安裝pc和fp?動態堆棧增長是否會迫使fp被設置?特別要求MIPS32。謝謝!是否-fomit-frame-pointer * always *忽略fp?
2
A
回答
2
幀指針並不是真正需要正確執行的,有時除非有例外展開。動態堆棧增長通常需要某種類型的幀指針,但它並不依賴於特定的寄存器,而是通過正常的數據流分析進行分配。
基本上,將FP從固定寄存器賦值降級到僞寄存器,並使初始化受到死存儲消除的影響。所以第一個問題的答案是否定的,它並不總是省略它。
0
不是mips人,而是應該應用於任何系統的東西:如果堆棧需要在任何時候對齊,則需要使用框架來存儲原始指針(因爲堆棧地址和對齊方式可能不適用知道)
1
不,通常不需要幀指針。編譯器可以訪問與堆棧指針相關的局部變量,並且不需要特殊的幀指針。儘管如此,標準幀指針設置序列可以幫助調試崩潰的程序(即使不用-g
進行編譯),因爲調試器可以使用幀指針信息來重新構建調用堆棧。沒有幀指針,它沒有信息來確定一個堆棧幀開始和下一個結束。
因此,在使用時,如果發生崩潰,您的交易績效會更加困難。如果你的代碼的性能關鍵部分是小循環,並且不調用任何函數,那麼省略幀指針也會帶來很小的優勢。
相關問題
- 1. 是否可以忽略TextBox?
- 2. gingw gcc是否忽略CFLAGS?
- 3. 插入忽略 - 是否有方法知道語句是否被忽略? MYSQL
- 4. 如何判斷在SVN中忽略文件是否被忽略?
- 5. 底線是否忽略線條高度?
- 6. 反射庫是否忽略RetentionPolicy
- 7. ef6是否忽略列中的空值?
- 8. Java PrintService是否忽略了PrinterUri屬性?
- 9. 錯誤是否可以忽略異常?
- 10. SQL:INSERT INTO忽略是否存在
- 11. git是否忽略空文件夾?
- 12. PostgreSQL自聯接是否忽略索引?
- 13. 是否可以忽略'out'參數?
- 14. 是忽略了leftBarButtonItem
- 15. 是否有任何方式批量忽略svn像git忽略文件?
- 16. 否則條件被忽略?
- 17. 否則,如果忽略
- 18. 忽略映射忽略
- 19. bin - 忽略或不忽略
- 20. IS忽略被忽略
- 21. MKStoreKit -isSubscriptionActive always always False
- 22. svn:忽略不忽略xcuserdata
- 23. Automapper忽略屬性忽略
- 24. SVN忽略被忽略
- 25. php isUserExist always always
- 26. Python:正則表達式:查找是否存在,否則忽略
- 27. 忽略
- 28. GRAPH_TRAVERSAL_TREE忽略filterVertices,GRAPH_TRAVERSAL不是
- 29. 日期總是被忽略
- 30. 如何忽略「 - 」但不是「 - 」