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

i#5975: Add invariant check that read/write records match operands #6283

Merged
merged 14 commits into from
Sep 13, 2023

Conversation

ivankyluk
Copy link
Contributor

@ivankyluk ivankyluk commented Aug 28, 2023

Add an invariant check to verify the number of memory read/write records is matching the operands.

Update check_sane_control_flow() to use instrlist_t and memref_with_IR_t to avoid hardcoded encodings. Current tests fail the new check since they have memory accesses.

Fixes #5975

…cords matching operands.

Add an invariant check to verify the number of memory read/write records
is matching the operands.

Mark x86 "rep" operands as predicated, and skip the check since the
number of records depends on run time register values.

Change check_sane_control_flow() to use gen_instr_encoded() when
encoding is expeced.

Fixes #5975
…cords matching operands.

Add an invariant check to verify the number of memory read/write records
is matching the operands.

Mark x86 "rep" operands as predicated, and skip the check since the
number of records depends on run time register values.

Change check_sane_control_flow() to use gen_instr_encoded() when
encoding is expeced.

Fixes #5975
@ivankyluk ivankyluk marked this pull request as ready for review August 28, 2023 22:09
clients/drcachesim/common/trace_entry.h Show resolved Hide resolved
clients/drcachesim/tests/invariant_checker_test.cpp Outdated Show resolved Hide resolved
clients/drcachesim/tests/invariant_checker_test.cpp Outdated Show resolved Hide resolved
clients/drcachesim/tools/invariant_checker.cpp Outdated Show resolved Hide resolved
core/ir/x86/decode_table.c Outdated Show resolved Hide resolved
core/ir/instr_shared.c Outdated Show resolved Hide resolved
core/ir/instr_api.h Show resolved Hide resolved
clients/drcachesim/tools/invariant_checker.cpp Outdated Show resolved Hide resolved
clients/drcachesim/tools/invariant_checker.cpp Outdated Show resolved Hide resolved
@ivankyluk ivankyluk changed the title i#5975: Add an invariant check for the number of memory read/write re… i#5975: invariant check to verify the number of memory read/write records Sep 6, 2023
Copy link
Contributor

@derekbruening derekbruening left a comment

Choose a reason for hiding this comment

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

Cache flushes are not handled properly but probably doesn't need another review.

api/docs/release.dox Outdated Show resolved Hide resolved
clients/drcachesim/common/trace_entry.h Outdated Show resolved Hide resolved
@ivankyluk ivankyluk changed the title i#5975: invariant check to verify the number of memory read/write records i#5975: Add invariant check that read/write records match operands Sep 8, 2023
@ivankyluk ivankyluk added this pull request to the merge queue Sep 13, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 13, 2023
@ivankyluk ivankyluk added this pull request to the merge queue Sep 13, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 13, 2023
@ivankyluk ivankyluk added this pull request to the merge queue Sep 13, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 13, 2023
@ivankyluk ivankyluk added this pull request to the merge queue Sep 13, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 13, 2023
@ivankyluk ivankyluk added this pull request to the merge queue Sep 13, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 13, 2023
@ivankyluk ivankyluk added this pull request to the merge queue Sep 13, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 13, 2023
@ivankyluk ivankyluk merged commit 15da83a into master Sep 13, 2023
@ivankyluk ivankyluk deleted the i5975-read-write-records-match-operands-check branch September 13, 2023 20:19
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.

Add drmemtrace invariant checks that read/write records match operands
2 participants