message: [XLA:GPU] Move layout_assignment before fusion
  This will allow code simplification and opens up new optimization. Currently we
  don't emit layouts inside of fusion and tracing layouts through fusion is very
  hard. Changing the pipeline sidesteps this issue. This is mostly perf-neutral.
diff: @@ -243,6 +243,22 @@ tensorflow::Status OptimizeHloModule(HloModule* hlo_module,
  TF_RETURN_IF_ERROR(pipeline.Run(hlo_module).status());
  }
  + {
  + HloPassPipeline pipeline("layout_assignment");
  + pipeline.AddPass<GpuLayoutAssignment>(
  + hlo_module->mutable_entry_computation_layout());
  +
  + // The LayoutAssignment pass may leave behind kCopy instructions which are
  + // duplicate or NOPs, so remove them with algebraic simplification and CSE.
  + pipeline.AddPass<HloPassFix<AlgebraicSimplifier>>(
  + /*is_layout_sensitive=*/true,
  + /*valid_bitcast_callback=*/[](const Shape&, const Shape&) {
  + return true;
  + });
  + pipeline.AddPass<HloCSE>(/*is_layout_sensitive=*/true);
  + TF_RETURN_IF_ERROR(pipeline.Run(hlo_module).status());
  + }
  +
  {
  HloPassFix<HloPassPipeline> fusion("fusion");
  fusion.AddInvariantChecker<HloVerifier>();
  @@ -279,15 +295,6 @@ tensorflow::Status PrepareHloModuleForIrEmitting(HloModule* hlo_module) {
  HloPassPipeline pipeline("GPU-ir-emit-prepare");
  pipeline.AddInvariantChecker<HloVerifier>();
  - pipeline.AddPass<GpuLayoutAssignment>(
  - hlo_module->mutable_entry_computation_layout());
  -
  - // The LayoutAssignment pass may leave behind kCopy instructions which are
  - // duplicate or NOPs, so remove them with algebraic simplification and CSE.
  - pipeline.AddPass<HloPassFix<AlgebraicSimplifier>>(
  - /*is_layout_sensitive=*/true,
  - [](const Shape&, const Shape&) { return true; });
  - pipeline.AddPass<HloCSE>(/*is_layout_sensitive=*/true);
  // Copy insertion should be performed immediately before IR emission to avoid
  // inserting unnecessary copies (later pass adds an instruction which
  // materializes the value) or missing a necessary copy (later pass removes an
  