Skip to content

Commit

Permalink
[COFF] Process /EXPORT option in fastpath
Browse files Browse the repository at this point in the history
Patch by Takuto Ikuta.

This patch reduces lld link time of chromium's blink_core.dll in
component build.

Total size of input argument in .directives become nearly 300MB in the
build and almost all its content are /EXPORT.

To reduce time of parsing too many /EXPORT option in the build, I
introduce fastpath for /EXPORT in ArgParser::parseDirectives.

On my desktop machine, 4 times stats of the link time are like below.
Improved around 20%.

This patch
TotalSeconds : 8.6217627
TotalSeconds : 8.5402175
TotalSeconds : 8.6855853
TotalSeconds : 8.3624441
Ave : 8.5525024

master
TotalSeconds : 10.9975031
TotalSeconds : 11.3409428
TotalSeconds : 10.6332897
TotalSeconds : 10.7650687
Ave : 10.934201075

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@322117 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
rui314 committed Jan 9, 2018
1 parent 41985cb commit b763cd8
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions include/llvm/Option/ArgList.h
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,8 @@ class InputArgList final : public ArgList {
void releaseMemory();

public:
InputArgList() : NumInputArgStrings(0) {}

InputArgList(const char* const *ArgBegin, const char* const *ArgEnd);

InputArgList(InputArgList &&RHS)
Expand Down

0 comments on commit b763cd8

Please sign in to comment.