OFFLINE_FILE_TYPE_ARCH_REGDEPS traces lack some markers and have instructions with DR_ISA_REGDEPS encodings, which don't have all the necessary information to perform all the invariant checks.
Here we disable or modify some checks for invariant errors to handle OFFLINE_FILE_TYPE_ARCH_REGDEPS synthetic traces in the invariant_checker tool.
Specifically, we disable:
the check for maybe-blocking syscall markers always being preceded by a regular syscall marker, as we don't have regular syscall markers in OFFLINE_FILE_TYPE_ARCH_REGDEPS traces;
the setting of branch targets, as they are not saved as first source operand in DR_ISA_REGDEPS instructions;
the check for "Missing read/write records", as we can't check for predicated instructions in OFFLINE_FILE_TYPE_ARCH_REGDEPS traces and we can't infer the precise number of load/stores performed by DR_ISA_REGDEPS instructions to adjust the read/write counters accordingly;
We modify the check for matching loads/stores performed by a DR_ISA_REGDEPS fetched instruction with the subsequent read/write records, by requiring that if a DR_ISA_REGDEPS instruction performs a load/store (we use the instruction category to determine that), at least one subsequent read/write record must be present.
OFFLINE_FILE_TYPE_ARCH_REGDEPS traces lack some markers and have instructions with DR_ISA_REGDEPS encodings, which don't have all the necessary information to perform all the invariant checks. Here we disable or modify some checks for invariant errors to handle OFFLINE_FILE_TYPE_ARCH_REGDEPS synthetic traces in the invariant_checker tool.
Specifically, we disable:
We modify the check for matching loads/stores performed by a DR_ISA_REGDEPS fetched instruction with the subsequent read/write records, by requiring that if a DR_ISA_REGDEPS instruction performs a load/store (we use the instruction category to determine that), at least one subsequent read/write record must be present.
Issue #6662