You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now, the only "memory access" that stays all the way through the compiler from parser to code generation is the EMemAccess AST for combinational reads.
That means the code generation code is kind of specialized for this; it is the only memory access operation that can occur inside an Expr instead of being its own Command.
For instance, EMemAccesses that correspond to sequential writes are transformed into their own IMemWrite Commands;
we might as well do this for reads to. The transformation should be added in the ConvertAsyncPass. We just need to be sure that the reads don't occur as subexpressions (e.g. x = rf[a] + 1); if they do we need to turn it into sequential composition.
This shouldn't change any functionality, just makes the code generation and backend code much more uniform (e.g., it no longer contains any EMemAccess nodes).
The text was updated successfully, but these errors were encountered:
Right now, the only "memory access" that stays all the way through the compiler from parser to code generation is the
EMemAccess
AST for combinational reads.That means the code generation code is kind of specialized for this; it is the only memory access operation that can occur inside an
Expr
instead of being its ownCommand
.For instance,
EMemAccess
es that correspond to sequential writes are transformed into their ownIMemWrite
Commands;we might as well do this for reads to. The transformation should be added in the
ConvertAsyncPass
. We just need to be sure that the reads don't occur as subexpressions (e.g.x = rf[a] + 1
); if they do we need to turn it into sequential composition.This shouldn't change any functionality, just makes the code generation and backend code much more uniform (e.g., it no longer contains any
EMemAccess
nodes).The text was updated successfully, but these errors were encountered: