message: Add an option to propagate Status in GraphOptimizerStagePipelines.
diff: @@ -240,6 +240,25 @@ class GraphOptimizerStagePipeline {
  return false;
  }
  + // Pass a node through all registered optimizer stages, until break predicate
  + // is true or a stage fails.
  + //
  + // Returns any stage failure status, or else Status::OK().
  + Status PassThroughAllStagesWithStatus(NodeDef* node, Result* result) {
  + for (auto& stage : stages_) {
  + if (!stage->IsSupported(node)) {
  + continue;
  + }
  + const Status stage_status = stage->TrySimplify(node, result);
  + if (!stage_status.ok()) {
  + return stage_status;
  + } else if (break_predicate_(*result)) {
  + break;
  + }
  + }
  + return Status::OK();
  + }
  +
  std::size_t NumStages() { return stages_.size(); }
  std::vector<string> StageNames() {
  