4 ms·
Omitting the frame pointer is a default on x86_64 its specified in the abi so it's going to be mighty tough to change that. I don't understand why you recommend
by nwmcsween 12y ago
Omitting the frame pointer is a default on x86_64 its specified in the abi so it's going to be mighty tough to change that. I don't understand why you recommend not using the debug info when you already have to use it for symbol name resolution.
- brendangregg 12y agoAre you talking about http://www.x86-64.org/documentation/abi.pdf http://www.x86-64.org/documentation/abi.pdf, and footnote 7 on page 16, which reads: "7 The conventional use of %rbp as a frame pointer for the stack frame may be avoided by using %rsp (the stack pointer) to index into the stack frame. This technique saves two instructions in the prologue and epilogue and makes one additional general-purpose register (%rbp) available." %rbp is mentioned elsewhere, eg, "optionally used as frame pointer" This ABI does not appear to specify that the frame pointer is omitted. It uses the words "may" and "optionally". Which means, the gcc engineers can choose to do what they want. And they should choose to keep the frame pointer _by default_, and _optionally_ omit it (for when the sacrifice is deemed worth it): -fomit-frame-pointer. This would better follow the language used in the ABI! :-) We've found debuginfo to be large (size, bytes), which can slow down instance creation, which means we must run with a higher headroom to accommodate. A stripped-down debuginfo that just enabled stack walking might do.
- nwmcsween 12y agoCompress the debug info? Gdb handles it no idea about perf though, there is also dwo to remove redundant debug info.