-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ControlOverlay] Introduce dma_placeholder
to preserve connection
ops from Dead-Code Elimination
#1111
Conversation
dma_placeholder
to preserve connection
operation from Dead-Code Eliminationdma_placeholder
to preserve connection
ops from Dead-Code Elimination
dma_placeholder
to preserve connection
ops from Dead-Code Eliminationdma_placeholder
to preserve connection
ops from Dead-Code Elimination
dma_placeholder
to preserve connection
ops from Dead-Code Eliminationdma_placeholder
to preserve connection
ops from Dead-Code Elimination
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
if (failed(isCtrlFlow)) | ||
return connectionOp.emitOpError() | ||
<< "could not determine if flow is control"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (failed(isCtrlFlow)) | |
return connectionOp.emitOpError() | |
<< "could not determine if flow is control"; | |
if (failed(isCtrlFlow)) { | |
return connectionOp.emitOpError() | |
<< "could not determine if flow is control"; | |
} |
This operation acts as a placeholder user for those `amdaie.connection` operations | ||
that represent control flows, to prevent them from being dead-code eliminated. | ||
This operation does not have any side effects on control code size. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would write this a bit more generally as there could be potential other uses for this placeholder in the future.
This operation acts as a placeholder user for those `amdaie.connection` operations | |
that represent control flows, to prevent them from being dead-code eliminated. | |
This operation does not have any side effects on control code size. | |
This operation acts as a placeholder user for `amdaie.connection` operations to prevent | |
them from being dead-code eliminated. This is used for control flow connections that are | |
inserted before control packets are generated because they need to be taken into account | |
together with data connections for routing. This operation does not have any side effects | |
on control code size. |
Following the discussion in #1063,
connection
ops generated for the control overlay do not initially have DMA users, as these are only added later when the content of control packets is determined. However, sinceconnection
ops are marked as pure in the IR, they can be wrongly eliminated by CSE and Canonicalization if they have no users at that stage.