[PATCH] D25766: [ELF] - Implemented --section-ordering-file option.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 20 08:48:26 PDT 2016


grimar added a comment.

In https://reviews.llvm.org/D25766#574420, @davide wrote:

> In https://reviews.llvm.org/D25766#574368, @ruiu wrote:
>
> > Is this effort coordinated with Davide?
>
>
> Yes! Thanks George for taking care of this.
>  BTW, I think the hard part of this feature is trying to evaluate and understand if it's worth it.
>  You may want to do some benchmarking/write a systap/dtrace script to collect data and feed into the linker and make sure this has some real impact. I recommend to use bare metal for testing and not VM as the results might be unreliable.
>  Rui, Rafael, what do you think?


After today investigations I found next more or less known ways to produce such file.

- First is use of valgring + icegrind plugin:

https://blog.mozilla.org/tglek/2010/04/07/icegrind-valgrind-plugin-for-optimizing-cold-startup/
https://glandium.org/blog/?p=1008
Method looks a bit outdated though.

- Use of function_reordering_plugin from gcc google branch (https://codereview.appspot.com/5124041, https://codereview.appspot.com/4802070/).

As far I understand along with job it do, it also should produce final_layout.txt file where sections should be dumped in a correct order,
and we should be able to reuse that file for LLD needs.

- facebook/hhvm (https://github.com/facebook/hhvm/tree/master/hphp/tools/hfsort) has tools and scrips for generating sections ordering file for gold, though

I am not sure how much easy can be to reuse it for any other applications.

I am going to check gcc way tomorrow, it seems to me as most easy possible path.


https://reviews.llvm.org/D25766





More information about the llvm-commits mailing list