-
Notifications
You must be signed in to change notification settings - Fork 220
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
Why are SSAPiInstructions inserted at the end of basic blocks? #83
Comments
The SSAPiInstructions do not actually introduce new control-flow, they are only markers you can use for other analyses. What are you trying to do? If they are simply in your way, you can disable them from SSAOptions. |
We have two analysis, one needs the SSAPiInstructions, while the other may have a problem with them. But it is nothing we can't fix. I just thought, that the pi instructions are inserted in the control-flow between the condition and its successors. If you "execute" the SSA form, you need to execute one of the pi-assignments, after branching. So they should introduce new control-flow, shouldn't they? |
While |
Closing as I don't think there's a bug here |
Is there a reason SSAPiInstructions are inserted at the end of basic blocks?
I think it is not intuitive: Usually basic blocks have a single exit point. In case of a conditional branch, there will be pi instructions for each successor of the branch. Both pi instructions are inserted into the basic block of the branch. As a result this basic block has now two exit points.
The text was updated successfully, but these errors were encountered: