作者allstarschh (allstars)
看板ASM
标题[问题] 请问gcc的 omit-frame-pointer的用意
时间Thu Dec 18 22:43:10 2008
man了一下
dont keep the frame pointer in a register for functions
that dont need one
我要问
frame pointer是不是就是指ebp??
还有frame pointer 跟stack pointer不是都会存在register里吗?
如果不在register那就是在memory里喽~
这样存取的速度不就变慢了?
而且在memory 是不是pointer就可以把他的value改掉了吗?
什麽样的function可以不需要frame pointer在register里呢??
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.109.232
1F:推 SILee:他的意思应该是如果不需要用到fp就不要多此一举去动它 12/19 00:17
2F:→ SILee:因为function如果需要动用到fp时必须先把原先的fp放到stack 12/19 00:18
3F:→ SILee:而且function return时还要再pop出来 会浪费掉很多时间 12/19 00:19
4F:→ SILee:某一些小function如果不需动用到很多local variable的话 12/19 00:20
5F:→ SILee:是可以不使用到fp的 因为local variables全部放在register里 12/19 00:22
6F:→ SILee:fp的存在是为了方便fetch到存在stack中的local variables 12/19 00:23
7F:→ SILee:当你不需要利用stack来暂存一些intermediate value时 12/19 00:24
8F:→ SILee:去存取fp这个动作就是redundancy的instructions 12/19 00:25