Интересная статья про frame pointer — указатель на верхушку стека вызовов. Недавно как раз обсуждал с коллегами, надо ли или не надо его использовать (в итоге положились на то, что в gcc по умолчанию он не добавляется), и нате.

Оказывается, наличие этого указателя довольно критично для многих профилировщиков. Занятно, что даже в java протекает. При этом какое-то влияние на производительность экономия одного регистра все-таки имеет, но оно меньше 1%, а если больше, то, скорее всего, вызвано проблемами с кэшем и расположением в памяти.

При этом в нормальных обстоятельствах указатель не нужен, а для профилирования есть другие подходы, которым он не нужен.