+
+ // If splicing between two blocks within the same function, just update the
+ // parent pointers.
+ if (parent->getParent() == fromList.parent->getParent()) {
+ for (; first != last; ++first)
+ first->setParent(parent);
+ return;
+ }
+
+ // Otherwise, we have to update the parent and the use/def lists. The common
+ // case when this occurs is if we're splicing from a block in a MF to a block
+ // that is not in an MF.
+ bool HasOldMF = fromList.parent->getParent() != 0;
+ MachineFunction *NewMF = parent->getParent();