Skip to content

Conversation

@yamaguchi1024
Copy link
Contributor

"InterestingDecl"s are decls which compiler needs to know its address.
We were causing deserialization from HandleInterestingDecl to resolve
the address, but given that modules have smarter way to solve symbols
in LazyFunctionAutoLoad, we can use this instead.

This improves modules startup time by 13Mbytes.

@phsft-bot
Copy link

Starting build on slc6/gcc48, slc6-i686/gcc49, centos7/clang39, centos7/gcc62, centos7/gcc7, fedora28/native, ubuntu16/native, mac1013/native, windows10/vc15 with flags -Dccache=ON
How to customize builds

@phsft-bot
Copy link

Build failed on ubuntu16/native.
See console output.

Failing tests:

@yamaguchi1024
Copy link
Contributor Author

@phsft-bot build just on slc6/gcc62 with flags -Druntime_cxxmodules=On -Dctest_test_exclude_none=on

@phsft-bot
Copy link

Starting build on slc6/gcc62 with flags -Dccache=ON -Druntime_cxxmodules=On -Dctest_test_exclude_none=on
How to customize builds

if (m_unresolvedSymbols.empty())
return false;

static std::vector<std::string> allreadyNotified;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can have multiple instances of IncrementalExecutor per process. Please make this a member of IncrementalExecutor.

if (m_unresolvedSymbols.empty())
return false;

static std::vector<std::string> allreadyNotified;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling, "already"

return false;

static std::vector<std::string> allreadyNotified;
// Call LazyFunctionAutoLoad to resolve symbols from a library and return its address
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

diagnoseUnresolvedSymbols() is really only meant to diagnose. You probably want to use the symbol provision utility called by NotifyLazyFunctionCreators().

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's symbol provision utility? Do you mean I should move this to callees of diagnoseUnresolvedSymbols()? There are several places who is calling this function, so I'm afraid that it'll be duplicate

@phsft-bot
Copy link

Starting build on slc6/gcc62 with flags -Dccache=ON -Druntime_cxxmodules=On -Dctest_test_exclude_none=on
How to customize builds

@phsft-bot
Copy link

Build failed on slc6/gcc62.
See console output.

@phsft-bot
Copy link

Starting build on slc6/gcc48, slc6-i686/gcc49, centos7/clang39, centos7/gcc62, centos7/gcc7, fedora28/native, ubuntu16/native, mac1013/native, windows10/vc15 with flags -Dccache=ON
How to customize builds

@yamaguchi1024
Copy link
Contributor Author

@phsft-bot build just on slc6/gcc62 with flags -Druntime_cxxmodules=On -Dctest_test_exclude_none=on

@phsft-bot
Copy link

Starting build on slc6/gcc62 with flags -Dccache=ON -Druntime_cxxmodules=On -Dctest_test_exclude_none=on
How to customize builds

@phsft-bot
Copy link

@yamaguchi1024
Copy link
Contributor Author

@phsft-bot build

@phsft-bot
Copy link

Starting build on slc6/gcc48, slc6/clang_gcc62, slc6-i686/gcc49, centos7/clang39, centos7/gcc62, centos7/gcc7, fedora28/native, ubuntu16/native, mac1013/native, windows10/vc15 with flags -Dccache=ON
How to customize builds

@yamaguchi1024
Copy link
Contributor Author

@phsft-bot build just on slc6/gcc62 with flags -Druntime_cxxmodules=On

@phsft-bot
Copy link

Starting build on slc6/gcc62 with flags -Dccache=ON -Druntime_cxxmodules=On
How to customize builds

@phsft-bot
Copy link

Starting build on slc6/gcc62 with flags -Dccache=ON -Druntime_cxxmodules=On
How to customize builds

@yamaguchi1024
Copy link
Contributor Author

@phsft-bot build just on slc6/gcc62 with flags -Druntime_cxxmodules=On -Dctest_test_exclude_none=on

@phsft-bot
Copy link

Starting build on slc6/gcc62 with flags -Dccache=ON -Druntime_cxxmodules=On -Dctest_test_exclude_none=on
How to customize builds

@phsft-bot
Copy link

Build failed on slc6/gcc62.
See console output.

Errors:

Failing tests:

And 127 more

"InterestingDecl"s are decls which compiler needs to know its address.
We were causing deserialization from HandleInterestingDecl to resolve
the address, but given that modules have smarter way to solve symbols
in LazyFunctionAutoLoad, we can use this instead.

This improves modules startup time by 13Mbytes.
@phsft-bot
Copy link

Starting build on slc6/gcc62 with flags -Dccache=ON -Druntime_cxxmodules=On -Dctest_test_exclude_none=on
How to customize builds

@vgvassilev
Copy link
Member

@yamaguchi1024 looks like we have another way to go. Closing for now, feel free to reopen if needed.

@vgvassilev vgvassilev closed this Nov 25, 2018
@yamaguchi1024 yamaguchi1024 deleted the handleinteresting branch February 20, 2019 17:22
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.

4 participants