DynamoRIO / DynamoRIO/dynamorio

Add AArch64 stack pointer elision in drmemtrace offline traces

Open
#4,898 0 comments 0 reactions 1 assignee Claimed by @derekbruening View on GitHub
Component-DrMemtrace Google-Affecting OpSys-AArch64 Performance
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

Offline traces elide addresses that can be reconstructed in post-processing. They also don't bother storing displacements, which simplifies instrumentation. The two go hand in hand and are assumed in the post-processing reconstruction.

However, the AArch64 ISA does not allow directly storing `%sp` to memory, so we cannot elide stack pointer displacements. Since post-processing assumes that, today we also never elide stack pointer addresses: which is a lot of addresses we needn't record and write out.

This issue covers fixing up raw2trace to store the displacement along with `reg_vals` so it can adjust displacements even when not elided, allowing us to elide redundant stack addresses.

Split from the too-general #2001.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.