This is using LLVM's SSAUpdater utility.
I had to abstract it a little further because our 'phi' nodes are slightly
different. The SSAUpdater needs to iterate over phis in a basic block so I
abstracted this in a trait. Therefore, this commit needs a recent version of
puzzle/master which has this change applied.
Swift SVN r19634