gcc: leaf function/non-leaf function;末节函数,叶子函数
这个概念第一次关注到,其实就是算法里的树结构概念类似,叶子节点。是在调用关系里的一个位置。
A leaf function is one that does not call any other functions。 末节函数,不会在调用其他函数。
而继续调用其他函数的函数是,非末节函数。
关于末节函数的一些优化:
-momit-leaf-frame-pointer
Don’t keep the frame pointer in a register for leaf functions. This avoids the instructions to save, set up and restore frame pointers and makes an extra register available in leaf functions.
-momit-leaf-frame-pointer
Don’t keep the frame pointer in a register for leaf functions. This avoids the instructions to save, set up, and restore frame pointers and makes an extra register available in leaf functions. The option ‘-fomit-leaf-frame-pointer’ removes the frame pointer for leaf functions, which might make debugging harder.
6.33.1 Common Function Attributes
leaf
Calls to external functions with this attribute must return to the current compilation unit only by return or by exception handling. In par