Skip to content

win64: speed up test suite by more than 15 minutes#6909

Merged
WalterBright merged 1 commit intodlang:masterfrom
rainers:test_noicf
Jun 16, 2017
Merged

win64: speed up test suite by more than 15 minutes#6909
WalterBright merged 1 commit intodlang:masterfrom
rainers:test_noicf

Conversation

@rainers
Copy link
Member

@rainers rainers commented Jun 15, 2017

runnable/test17338.d added in #6718 triggers pretty bad identical comdat folding performance by the MS linker.

As this is known to have problems anyway (e.g. https://issues.dlang.org/show_bug.cgi?id=10664) and is disabled in sc.ini (https://github.com/dlang/dmd/blob/master/ini/windows/bin/sc.ini#L23), we can disable it in the tests, too.

@rainers
Copy link
Member Author

rainers commented Jun 15, 2017

The build time for Win_32_64 on win-farm1 has gone down from 43 minutes for other PRs to less than 26 minutes.

@WalterBright
Copy link
Member

A comment in the code explaining why this switch is there would be helpful, as I can't see someone guessing its purpose, as the documentation for NOICF doesn't offer a clue.

@rainers
Copy link
Member Author

rainers commented Jun 15, 2017

A comment in the code explaining why this switch is there would be helpful

Amended a comment.

@WalterBright WalterBright merged commit 7be2831 into dlang:master Jun 16, 2017
@MartinNowak
Copy link
Member

Quite a huge speedup.
firefox_screenshot_2017-06-16t18-16-31 686z

Does this only come from runnable/test17338.d?

Of course we should fix Issue 10664 – Win64: exception handling does not work with COMDAT folding at some point, and maybe even explicity use /OPT:REF,ICF for release builds as recommended -OPT (Optimizations).

Using the equivalent for non-Windows linkers would be nice as well.
c++ - GCC(/Clang): Merging functions with identical instructions (COMDAT folding)

@MartinNowak
Copy link
Member

Opened an issue for the ld.gold failure Issue 17515 – ld.gold identical comdat folding triggers an assertion.

@rainers
Copy link
Member Author

rainers commented Jun 16, 2017

Does this only come from runnable/test17338.d?

At least most of it. It took more than 15 minutes to link it on my computer.

Opened an issue for the ld.gold failure Issue 17515 – ld.gold identical comdat folding triggers an assertion.

Interesting. Hopefully that helps narrowing down the problem for windows, too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants