message: [XLA:GPU] Propagate layouts in a better order for performance and fusion.
diff: @@ -159,7 +159,13 @@ Status GpuLayoutAssignment::AddBackendConstraintsToDnnConvCustomCall(
  Status GpuLayoutAssignment::AddBackendConstraints(
  LayoutConstraints* constraints) {
  - for (auto* instruction : constraints->computation()->instructions()) {
  + // Add convolution constraints in reverse postorder that the earliest
  + // convolution layout propagates first. This reduces the likelihood of fusion
  + // nodes with copies.
  + auto post_order = constraints->computation()->MakeInstructionPostOrder();
  + for (auto iterator = post_order.rbegin(); iterator != post_order.rend();
  + ++iterator) {
  + HloInstruction* instruction = *iterator;
  if (IsCustomCallToDnnConvolution(*instruction)) {
  TF_RETURN_IF_ERROR(
  AddBackendConstraintsToDnnConvCustomCall(instruction, constraints));
  