This repository was archived by the owner on May 27, 2026. It is now read-only.
[acc] Extend information-flow tools to track DMEM.#247
Draft
jadephilipoom wants to merge 1 commit into
Draft
Conversation
6ba7708 to
922e738
Compare
bcaf83f to
c3e9482
Compare
922e738 to
8ffbcf4
Compare
ff64b75 to
65b66d8
Compare
5726439 to
d6aadb3
Compare
This commit reworks the information-flow backend to represent DMEM as well as just registers. Previously, registers were simply represented by their names. In theory we could represent every byte of DMEM this way, but in practice this is too slow; instead, we generalize everything to use "nodes" which can be either registers or DMEM ranges, and introduce the concept that nodes can overlap with one another and be merged or split. This commit also makes a few adjustments to how ISRs and loops are handled. These were changes necessary to handle P256 and P384 signing, which were previously outside the capabilities of the information-flow tools and which I was using as a test case. Ideally the above fixups would be more separated out from the DMEM change but life is imperfect and so am I. Signed-off-by: Jade Philipoom <jadep@zerorisc.com>
65b66d8 to
03f9dde
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On top of #246, draft until that is merged.
This commit reworks the information-flow backend to represent DMEM as well as just registers. Previously, registers were simply represented by their names. In theory we could represent every byte of DMEM this way, but in practice this is too slow; instead, we generalize everything to use "nodes" which can be either registers or DMEM ranges, and introduce the concept that nodes can overlap with one another and be merged or split.
This commit also makes a few small adjustments to how ISRs and loops are handled. These changes were necessary to handle P-256 and P-384 signing, which were previously outside the capabilities of the information-flow tools and which I was using as a test case.
Ideally the above fixups would be more separated out from the DMEM change but life is imperfect and so am I.