force Postponed Translation Before Edge
fun forcePostponedTranslationBeforeEdge(edge: L2PcOperand, semanticValue: L2SemanticValue)
Content copied to clipboard
During a control flow merge, the phi creation mechanism detected that the incoming edges all provided a particular L2SemanticValue for a RegisterKind, at least one source was a postponed instruction, and not all of the incoming edges had their values postponed by the same instruction.
Go back to just before the edge (safe because it's in edge-split SSA form), and generate the postponed instruction responsible for the given kind and semantic value. It's safe to generate these just prior to the last (control-flow altering) instruction of a predecessor block, because the control flow instruction didn't produce the desired semantic value, and new instructions won't interfere. Update the edge's manifest during this code generation.