Set non-leaf frame pointers on Fuchsia targets by djkoloski · Pull Request #124677 · rust-lang/rust (original) (raw)

I was actually evaluating various platforms for this recently and I felt I should ask: is Fuchsia's aarch64 implementation supposed to follow the AAPCS64 ABI, or is that a "wrong question"?

@ilovepi That's good to know! Is there a convenient way for someone outside Google to view a quantified form of "no significant performance impact"? "Somewhat inconvenient, actually" is also good, really, as long as it's reachable by, uh, me.

I'm not sure I have any documents handy that I can share externally, but benchmarking even the llvm-test suite w/ -momit-leaf over 10 runs was hard to distinguish from the noise. We ran benchmarks for a long time internally though, but even that simple experiment should give you a bit of confidence that there is a decent amount of variance in the benchmarks, even once you try to account for voltage scaling, and all the other gotchas that come w/ benchmarking. Also, FYI, there isn't much that's internal in the document or findings, I just don't think its going to be easy to share.

I've posted here what I think the take aways should be, but I did use internal benchmarking facilities to get real perf numbers using Google infrastructure, including running open source benchmarks. As a point of reference, Google enables -fno-omit-frame-pointer -momit-leaf-frame-poiner on every binary, including search, Ads, YouTube. This isn't secret sauce though, IIRC Meta, and Apple (and many other tech companies) do the same.