HomePhabricator

[MC] Function stack size section.
Audit RequiredrL319430

Description

[MC] Function stack size section.

Re applying after fixing issues in the diff, sorry for any painful conflicts/merges!

Original RFC: http://lists.llvm.org/pipermail/llvm-dev/2017-August/117028.html

This change adds a '.stack-size' section containing metadata on function stack sizes to output ELF files behind the new -stack-size-section flag. The section contains pairs of function symbol references (8 byte) and stack sizes (unsigned LEB128).

The contents of this section can be used to measure changes to stack sizes between different versions of the compiler or a source base. The advantage of having a section is that we can extract this information when examining binaries that we didn't build, and it allows users and tools easy access to that information just by referencing the binary.

There is a follow up change to add an option to clang.

Thanks.

Reviewers: hfinkel, MatzeB

Reviewed By: MatzeB

Subscribers: thegameg, asb, llvm-commits

Differential Revision: https://reviews.llvm.org/D39788

Details

Auditors
grosbach
Committed
seanevesonNov 30 2017, 5:05 AM
Reviewer
MatzeB
Differential Revision
D39788: [MC] Function stack size section.
Parents
rL319429: Revert r319423: [MC] Function stack size section.
Branches
Unknown
Tags
Unknown