Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Inter unit dependencies
The definition of a unit in Engagements 2 to 5 has not changed from Engagement 1. (It still pertains to BEEP loops.)
In Engagements 2 to 5, we no longer report unit → memory and memory → unit dependencies. Instead, we stream process these dependencies and only report final unit → unit dependencies.
In particular, we:
eliminate many dependencies between units and memory locations (and vice versa) when there is no complete unit → memory → unit dependency,
abstract multiple unit → read → memory dependencies between the same unit and memory instances into a single unit → memory intermediate dependency (that is abstracted away, as described below),
perform the analogous abstraction for memory → write → unit dependencies, and
abstract each pair of intermediate unit 1 → memory and memory → unit 2 dependencies into a single unit 1 → unit 2 inter-unit dependency.
Together, these significantly decrease the volume of inter-unit dependency information reported, without any loss of completeness in causality tracking.