[PATCH] D25766: [ELF] - Implemented --section-ordering-file option.
Sriraman Tallam via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 20 13:30:20 PDT 2016
On Thu, Oct 20, 2016 at 1:07 PM, Rui Ueyama <ruiu at google.com> wrote:
> +tmsriram because he seems to have done something with
> --section-ordering-file so he might have an expert's opinion about how much
> it is useful/effective.
--section-ordering-file in gold was used to reduce firefox startup
time IIRC. It was/is also used by Chrome for similar purposes.
> On Thu, Oct 20, 2016 at 8:48 AM, George Rimar <grimar at accesssoftek.com>
>> 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:
>> Method looks a bit outdated though.
>> - Use of function_reordering_plugin from gcc google branch
>> 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
More information about the llvm-commits