Skip to content

Cache symbol lists used by LLD_REPORT_UNDEFINED. NFC #18326

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 7, 2022
Merged

Conversation

sbc100
Copy link
Collaborator

@sbc100 sbc100 commented Dec 6, 2022

This means that the JS libraries only only need to be processed when there is cache miss. The cost of processing the JS libraries is about 300ms on my machine which is about 30% of the link time for hello world. When there is cache hit this cost is reduced to 3ms.

This change is in prepartion for switching this mode on my default in.

See: #16003

@sbc100 sbc100 requested a review from kripken December 6, 2022 18:07
@sbc100 sbc100 force-pushed the cache_symbol_lists branch from 34864ba to da5deee Compare December 6, 2022 18:07
@sbc100 sbc100 requested a review from dschuff December 6, 2022 18:07
@sbc100 sbc100 force-pushed the cache_symbol_lists branch from da5deee to f5c82d5 Compare December 6, 2022 18:47
@sbc100 sbc100 requested a review from kripken December 6, 2022 18:49
@sbc100 sbc100 force-pushed the cache_symbol_lists branch from f5c82d5 to ca5ec79 Compare December 6, 2022 19:41
@sbc100 sbc100 force-pushed the cache_symbol_lists branch from ca5ec79 to cd6f3ca Compare December 6, 2022 22:36
@sbc100 sbc100 enabled auto-merge (squash) December 7, 2022 01:09
@sbc100 sbc100 disabled auto-merge December 7, 2022 01:10
@sbc100 sbc100 enabled auto-merge (squash) December 7, 2022 01:10
@sbc100 sbc100 requested a review from kripken December 7, 2022 01:10
@sbc100 sbc100 force-pushed the cache_symbol_lists branch from cd6f3ca to 7ebc8c7 Compare December 7, 2022 19:14
Copy link
Member

@kripken kripken left a comment

Choose a reason for hiding this comment

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

Great! lgtm % some nits

This means that the JS libraries only only need to be processed when
there is cache miss.  The cost of processing the JS libraries is about
300ms on my machine which is about 30% of the link time for hello
world.  When there is cache hit this cost is reduced to 3ms.

This change is in prepartion for switching this mode on my default in.

See: #16003
@sbc100 sbc100 disabled auto-merge December 7, 2022 21:47
@sbc100 sbc100 force-pushed the cache_symbol_lists branch from 7ebc8c7 to 57c5b3e Compare December 7, 2022 21:47
@sbc100 sbc100 merged commit 3e1b838 into main Dec 7, 2022
@sbc100 sbc100 deleted the cache_symbol_lists branch December 7, 2022 21:47
sbc100 added a commit that referenced this pull request Dec 7, 2022
This makes undefined symbol errors more precise by including the name of
the object that references the undefined symbol.

Its also paves the way (in my mind anyway) for finally fixing reverse
dependencies in a salable way.  See #15982.  That PR uses an alternative
script for the pre-processing of dependencies but also fundamentally
relies on processing JS libraries both before and after linking.

The cost is about 300ms per link operation due to double processing of
the JS libraries, but results are cached so in practice this only
happens the first time a given link command is run (see #18326).
sbc100 added a commit that referenced this pull request Dec 7, 2022
This makes undefined symbol errors more precise by including the name of
the object that references the undefined symbol.

Its also paves the way (in my mind anyway) for finally fixing reverse
dependencies in a salable way.  See #15982.  That PR uses an alternative
script for the pre-processing of dependencies but also fundamentally
relies on processing JS libraries both before and after linking.

The cost is about 300ms per link operation due to double processing of
the JS libraries, but results are cached so in practice this only
happens the first time a given link command is run (see #18326).
sbc100 added a commit that referenced this pull request Dec 7, 2022
This makes undefined symbol errors more precise by including the name of
the object that references the undefined symbol.

Its also paves the way (in my mind anyway) for finally fixing reverse
dependencies in a salable way.  See #15982.  That PR uses an alternative
script for the pre-processing of dependencies but also fundamentally
relies on processing JS libraries both before and after linking.

The cost is about 300ms per link operation due to double processing of
the JS libraries, but results are cached so in practice this only
happens the first time a given link command is run (see #18326).
sbc100 added a commit that referenced this pull request Dec 7, 2022
This makes undefined symbol errors more precise by including the name of
the object that references the undefined symbol.

Its also paves the way (in my mind anyway) for finally fixing reverse
dependencies in a salable way.  See #15982.  That PR uses an alternative
script for the pre-processing of dependencies but also fundamentally
relies on processing JS libraries both before and after linking.

The cost is about 300ms per link operation due to double processing of
the JS libraries, but results are cached so in practice this only
happens the first time a given link command is run (see #18326).
sbc100 added a commit that referenced this pull request Dec 7, 2022
This makes undefined symbol errors more precise by including the name of
the object that references the undefined symbol.

Its also paves the way (in my mind anyway) for finally fixing reverse
dependencies in a salable way.  See #15982.  That PR uses an alternative
script for the pre-processing of dependencies but also fundamentally
relies on processing JS libraries both before and after linking.

The cost is about 300ms per link operation due to double processing of
the JS libraries, but results are cached so in practice this only
happens the first time a given link command is run (see #18326).
sbc100 added a commit that referenced this pull request Dec 7, 2022
This makes undefined symbol errors more precise by including the name of
the object that references the undefined symbol.

Its also paves the way (in my mind anyway) for finally fixing reverse
dependencies in a salable way.  See #15982.  That PR uses an alternative
script for the pre-processing of dependencies but also fundamentally
relies on processing JS libraries both before and after linking.

The cost is about 300ms per link operation due to double processing of
the JS libraries, but results are cached so in practice this only
happens the first time a given link command is run (see #18326).
sbc100 added a commit that referenced this pull request Dec 8, 2022
This makes undefined symbol errors more precise by including the name of
the object that references the undefined symbol.

Its also paves the way (in my mind anyway) for finally fixing reverse
dependencies in a salable way.  See #15982.  That PR uses an alternative
script for the pre-processing of dependencies but also fundamentally
relies on processing JS libraries both before and after linking.

The cost is about 300ms per link operation due to double processing of
the JS libraries, but results are cached so in practice this only
happens the first time a given link command is run (see #18326).
sbc100 added a commit that referenced this pull request Dec 8, 2022
This makes undefined symbol errors more precise by including the name of
the object that references the undefined symbol.

Its also paves the way (in my mind anyway) for finally fixing reverse
dependencies in a salable way.  See #15982.  That PR uses an alternative
script for the pre-processing of dependencies but also fundamentally
relies on processing JS libraries both before and after linking.

The cost is about 300ms per link operation due to double processing of
the JS libraries, but results are cached so in practice this only
happens the first time a given link command is run (see #18326).
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.

2 participants