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

drt: unique_inst_patterns_ structure structure refactor #6796

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

bnmfw
Copy link
Contributor

@bnmfw bnmfw commented Mar 2, 2025

Supports #5867.
Branched of #6778.
ISPD and Secure CI associated, will be opened once safe.

unique_inst_patterns_ structure change.

One of the requirements of incremental PA is for the used structures to be dynamic. Once a complete run of PA is done, it is necessary to run it again for a set of instances while keeping data of unaltered instances. While #6778 introduces a function to allow for solving the access patterns of a single unique instance, the unique_inst_patterns_ does not allow for new entries to be inserted. The structure used to be a vector of fixed sized, which made the managing of new entries very difficult. In that light the structure was changed to an unordered map, in which the unique instance pointer acts as a key. This allows for inserting and deleting entries without major disruptions of the whole structure.

Related minor changes.

  • FlexPA.h now includes #include <boost/serialization/unordered_map.hpp> to support the unordered map serialization.
  • FrInst() now has an empty default constructor, also required for serialization.
  • UniqueInsts now has a function to retrieve the unique instance related to the instance.
  • Modifications of unique_inst_patterns_ are protected by #pragma omp critical to avoid race conditions.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

@@ -50,6 +50,9 @@ class frInst : public frRef
: name_(name), master_(master), db_inst_(db_inst)
{
}
// used for archive serialization
frInst() : name_(""), master_(nullptr), db_inst_(nullptr) {}
Copy link
Contributor

Choose a reason for hiding this comment

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

warning: redundant string initialization [readability-redundant-string-init]

Suggested change
frInst() : name_(""), master_(nullptr), db_inst_(nullptr) {}
frInst() : , master_(nullptr), db_inst_(nullptr) {}

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.

1 participant