Skip to content
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

Feature: Full XReference Cache System #151

Merged
merged 12 commits into from
Nov 8, 2021

Conversation

RadWolfie
Copy link
Member

@RadWolfie RadWolfie commented Nov 4, 2021

Currently in draft at the moment, reasons:

  1. Need to migrate various altered symbol names into single xref usage. (will be done in separate commit for readability)
    • This currently affect unnamed cross reference symbols from revisions.
  2. At least ability to determine non-LTCG and LTCG xrefs need to remain separate for X reason.
  3. Need to purge global cross reference strings list.

With full xreference cache system, we can reduce unnecessary rescan same symbol. Except, we do still have other optimization to do. I believe this pull request partially resolve #87 ticket.

With cross reference's symbols separated into their own library file. It will be easier to maintenance and organizing.

Pros:

  1. Allow context's xref_database to allocate and cache for every linked symbols.
  2. Reduce partial of redundant scan process system and stop re-report for same address.

Cons:

  1. Add new symbol, aka group or derived usage, will require manual add into specific library's def file.
    • Compiler will stop building if cross reference symbol doesn't exist. This helps enforce contributor to verify their work. Then add new symbol if it's actually a new symbol.
  2. Any symbol rename will also need to rename inside .def file. Using IDE's rename process may will detect other relative same name. Such as in the comment section.

Hmm, I thought I had mentioned before. You can use "extend oovpa test to verify symbol's reference against revisions" commit for verification of internal test is working for compare revisions' xref vs symbol group's xref difference.

@github-actions github-actions bot added CMAKE D3D8 OOVPA relative topic D3D8LTCG OOVPA relative topic DSOUND OOVPA relative topic JVS OOVPA relative topic needs-verification Require verification before approval OOVPA Any OOVPA change relative XACTENG OOVPA relative topic XAPI OOVPA relative topic XNET OOVPA relative topic XONLINE OOVPA relative topic labels Nov 4, 2021
@RadWolfie RadWolfie marked this pull request as ready for review November 7, 2021 18:52
@RadWolfie
Copy link
Member Author

Tested and verified no breakage against master branch.

@RadWolfie RadWolfie removed the needs-verification Require verification before approval label Nov 8, 2021
@RadWolfie RadWolfie merged commit 0298a65 into Cxbx-Reloaded:master Nov 8, 2021
@RadWolfie RadWolfie deleted the full-xref-cache-system branch November 8, 2021 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CMAKE D3D8LTCG OOVPA relative topic D3D8 OOVPA relative topic DSOUND OOVPA relative topic JVS OOVPA relative topic OOVPA Any OOVPA change relative XACTENG OOVPA relative topic XAPI OOVPA relative topic XNET OOVPA relative topic XONLINE OOVPA relative topic
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Search Process is Unoptimized
1 participant