message: Iterate through snapshotted instructions in copy insertion.
  Otherwise if a while feed into another while as init, the init (while)
  will be added back to the iteration list, which makes dataflow
  analysis confused.
diff: @@ -975,8 +975,9 @@ Status CopyInsertion::AddCopiesToResolveInterference(HloModule* module) {
  TF_ASSIGN_OR_RETURN(std::unique_ptr<HloAliasAnalysis> alias_analysis,
  HloAliasAnalysis::Run(module, can_share_buffer_));
  - for (HloComputation* computation : module->computations()) {
  - for (HloInstruction* instruction : computation->instructions()) {
  + for (HloComputation* computation : module->MakeComputationPostOrder()) {
  + for (HloInstruction* instruction :
  + computation->MakeInstructionPostOrder()) {
  if (instruction->opcode() == HloOpcode::kWhile) {
  TF_RETURN_IF_ERROR(AddCopiesForWhile(*alias_analysis, instruction));
  } else if (instruction->opcode() == HloOpcode::kConditional) {
  