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
We get a synonym fact between x and y meaning they are guaranteed to be equivalent whenever they are both available. Importantly they are not synonymous at (*) because y is not available there.
Currently if a conditional branch gets flattened we have the problem where the above turns into:
x = ...;
y = c ? x : arbitrary;
// (*)
We evidently cannot regard x and y as being synonymous now.
Perhaps FlattenConditionalBranch should be inapplicable if any instruction in the region being flattened generates an id that is involved in a synonym or equation.
The text was updated successfully, but these errors were encountered:
Suppose we have some code like this:
We get a synonym fact between x and y meaning they are guaranteed to be equivalent whenever they are both available. Importantly they are not synonymous at (*) because y is not available there.
Currently if a conditional branch gets flattened we have the problem where the above turns into:
We evidently cannot regard x and y as being synonymous now.
Perhaps FlattenConditionalBranch should be inapplicable if any instruction in the region being flattened generates an id that is involved in a synonym or equation.
The text was updated successfully, but these errors were encountered: