[llvm-dev] [RFC] Function stack size section.

Peter Smith via llvm-dev llvm-dev at lists.llvm.org
Fri Sep 1 01:48:16 PDT 2017


Hello Sean,

This is potentially interesting to Arm and other targets that end up
in embedded systems. Of particular use for this information is
estimating the maximum stack usage for the program.

In Arm's proprietary toolchain we use the .debug_frame information to
calculate the per-function stack-size. This is a bit more work than
just reading off the value from a table but it doesn't require any
custom compiler work or special ELF sections, and does work with
assembler assuming that the author has put in the necessary
directives. It has the downside of always requiring .debug_frame (or
.eh_frame) sections for release builds.

Can you let us know what the change above does that reading the stack
size from the .debug_frame or .eh_frame doesn't?

Peter

On 31 August 2017 at 15:09, Sean Eveson via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> Hi All,
>
>
>
> We have a local change in the X86AsmPrinter that outputs a section
> containing metadata on function stack sizes. We use this to measure changes
> to stack size between versions of the compiler and it also allows our
> licensees to do the same for their code.
>
>
>
> The section simply contains pairs of function symbol references (8 byte) and
> stack sizes (unsigned LEB128).
>
>
>
> We would like to upstream this change as a PS4 only modification, or as a
> more general cross platform one.
>
>
>
> Would people be interested in (or happy with) such a patch, target specific
> or otherwise?
>
>
>
> Thanks,
>
>
> Sean Eveson
> SN Systems - Sony Interactive Entertainment
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>


More information about the llvm-dev mailing list