When one moves an instruction from one BasicBlock to another, the instruction continues to believe that its parent is the original BasicBlock. This is very undesirable. Is there a way to set the parent or a way to move the instruction such that the parent is updated correctly?