是否忽略框架指针?-fomit-frame-pointer 总是?是否曾经有一种情况需要安装pc和fp?动态堆栈增长是否会迫使fp被设置?特别要求MIPS32。谢谢!是否-fomit-frame-pointer * always *忽略fp?
2
A
回答
2
帧指针并不是真正需要正确执行的,有时除非有例外展开。动态堆栈增长通常需要某种类型的帧指针,但它并不依赖于特定的寄存器,而是通过正常的数据流分析进行分配。
基本上,将FP从固定寄存器赋值降级到伪寄存器,并使初始化受到死存储消除的影响。所以第一个问题的答案是否定的,它并不总是省略它。
0
不是mips人,而是应该应用于任何系统的东西:如果堆栈需要在任何时候对齐,则需要使用框架来存储原始指针(因为堆栈地址和对齐方式可能不适用知道)
1
不,通常不需要帧指针。编译器可以访问与堆栈指针相关的局部变量,并且不需要特殊的帧指针。尽管如此,标准帧指针设置序列可以帮助调试崩溃的程序(即使不用-g
进行编译),因为调试器可以使用帧指针信息来重新构建调用堆栈。没有帧指针,它没有信息来确定一个堆栈帧开始和下一个结束。
因此,在使用时,如果发生崩溃,您的交易绩效会更加困难。如果你的代码的性能关键部分是小循环,并且不调用任何函数,那么省略帧指针也会带来很小的优势。
相关问题
- 1. 是否可以忽略TextBox?
- 2. 插入忽略 - 是否有方法知道语句是否被忽略? MYSQL
- 3. 如何判断在SVN中忽略文件是否被忽略?
- 4. ef6是否忽略列中的空值?
- 5. 错误是否可以忽略异常?
- 6. Java PrintService是否忽略了PrinterUri属性?
- 7. git是否忽略空文件夹?
- 8. 是忽略了leftBarButtonItem
- 9. 是否有任何方式批量忽略svn像git忽略文件?
- 10. 否则,如果忽略
- 11. 否则条件被忽略?
- 12. bin - 忽略或不忽略
- 13. IS忽略被忽略
- 14. svn:忽略不忽略xcuserdata
- 15. Automapper忽略属性忽略
- 16. SVN忽略被忽略
- 17. php isUserExist always always
- 18. Python是忽略我的if
- 19. 日期总是被忽略
- 20. 忽略脚本类型是否是一种好的做法?
- 21. CA2109 - 忽略或不忽略 - 这就是问题
- 22. 忽略
- 23. 忽略
- 24. 忽略
- 25. 忽略
- 26. 忽略equals上IEquatable
- 27. 忽略SVN忽略...可能吗?
- 28. 忽略未被忽略的文件
- 29. Git diff忽略
- 30. java webstart忽略System.getProperties()或Syste.setProperties()被忽略