Skip to content
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
jadep/iflow-backend-improvementsfrom
jadep/iflow-dmem-backend
Draft

[acc] Extend information-flow tools to track DMEM.#247
jadephilipoom wants to merge 1 commit into
jadep/iflow-backend-improvementsfrom
jadep/iflow-dmem-backend

Conversation

@jadephilipoom

Copy link
Copy Markdown
Contributor

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.

@jadephilipoom jadephilipoom force-pushed the jadep/iflow-dmem-backend branch from 6ba7708 to 922e738 Compare April 24, 2026 13:38
@jadephilipoom jadephilipoom force-pushed the jadep/iflow-backend-improvements branch from bcaf83f to c3e9482 Compare April 24, 2026 13:42
@jadephilipoom jadephilipoom force-pushed the jadep/iflow-dmem-backend branch from 922e738 to 8ffbcf4 Compare April 24, 2026 13:49
@jadephilipoom jadephilipoom force-pushed the jadep/iflow-dmem-backend branch 2 times, most recently from ff64b75 to 65b66d8 Compare April 27, 2026 11:19
@jadephilipoom jadephilipoom force-pushed the jadep/iflow-backend-improvements branch 3 times, most recently from 5726439 to d6aadb3 Compare April 29, 2026 06:36
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>
@jadephilipoom jadephilipoom force-pushed the jadep/iflow-dmem-backend branch from 65b66d8 to 03f9dde Compare April 29, 2026 06:40
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant