vertex_pulling: Remove legacy shader IO support

Bug: tint:697
Change-Id: Ia4665eb1a520218e05a5878ea5abb3604aff4a6f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/55403
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
diff --git a/src/transform/vertex_pulling.cc b/src/transform/vertex_pulling.cc
index 713c112..dc7e70c 100644
--- a/src/transform/vertex_pulling.cc
+++ b/src/transform/vertex_pulling.cc
@@ -86,117 +86,6 @@
     return struct_buffer_name;
   }
 
-  /// Inserts vertex_index binding, or finds the existing one
-  void FindOrInsertVertexIndexIfUsed() {
-    bool uses_vertex_step_mode = false;
-    for (const VertexBufferLayoutDescriptor& buffer_layout : cfg.vertex_state) {
-      if (buffer_layout.step_mode == InputStepMode::kVertex) {
-        uses_vertex_step_mode = true;
-        break;
-      }
-    }
-    if (!uses_vertex_step_mode) {
-      return;
-    }
-
-    // Look for an existing vertex index builtin
-    for (auto* v : ctx.src->AST().GlobalVariables()) {
-      auto* sem = ctx.src->Sem().Get(v);
-      if (sem->StorageClass() != ast::StorageClass::kInput) {
-        continue;
-      }
-
-      for (auto* d : v->decorations()) {
-        if (auto* builtin = d->As<ast::BuiltinDecoration>()) {
-          if (builtin->value() == ast::Builtin::kVertexIndex) {
-            vertex_index_expr = [this, v]() {
-              return ctx.dst->Expr(ctx.Clone(v->symbol()));
-            };
-            return;
-          }
-        }
-      }
-    }
-
-    // We didn't find a vertex index builtin, so create one
-    auto name = ctx.dst->Symbols().New("tint_pulling_vertex_index");
-    vertex_index_expr = [this, name]() { return ctx.dst->Expr(name); };
-
-    ctx.dst->Global(name, ctx.dst->ty.u32(), ast::StorageClass::kInput, nullptr,
-                    ast::DecorationList{
-                        ctx.dst->Builtin(ast::Builtin::kVertexIndex),
-                    });
-  }
-
-  /// Inserts instance_index binding, or finds the existing one
-  void FindOrInsertInstanceIndexIfUsed() {
-    bool uses_instance_step_mode = false;
-    for (const VertexBufferLayoutDescriptor& buffer_layout : cfg.vertex_state) {
-      if (buffer_layout.step_mode == InputStepMode::kInstance) {
-        uses_instance_step_mode = true;
-        break;
-      }
-    }
-    if (!uses_instance_step_mode) {
-      return;
-    }
-
-    // Look for an existing instance index builtin
-    for (auto* v : ctx.src->AST().GlobalVariables()) {
-      auto* sem = ctx.src->Sem().Get(v);
-      if (sem->StorageClass() != ast::StorageClass::kInput) {
-        continue;
-      }
-
-      for (auto* d : v->decorations()) {
-        if (auto* builtin = d->As<ast::BuiltinDecoration>()) {
-          if (builtin->value() == ast::Builtin::kInstanceIndex) {
-            instance_index_expr = [this, v]() {
-              return ctx.dst->Expr(ctx.Clone(v->symbol()));
-            };
-            return;
-          }
-        }
-      }
-    }
-
-    // We didn't find an instance index builtin, so create one
-    auto name = ctx.dst->Symbols().New("tint_pulling_instance_index");
-    instance_index_expr = [this, name]() { return ctx.dst->Expr(name); };
-
-    ctx.dst->Global(name, ctx.dst->ty.u32(), ast::StorageClass::kInput, nullptr,
-                    ast::DecorationList{
-                        ctx.dst->Builtin(ast::Builtin::kInstanceIndex),
-                    });
-  }
-
-  /// Converts var<in> with a location decoration to var<private>
-  void ConvertVertexInputVariablesToPrivate() {
-    for (auto* v : ctx.src->AST().GlobalVariables()) {
-      auto* sem = ctx.src->Sem().Get(v);
-      if (sem->StorageClass() != ast::StorageClass::kInput) {
-        continue;
-      }
-
-      for (auto* d : v->decorations()) {
-        if (auto* l = d->As<ast::LocationDecoration>()) {
-          uint32_t location = l->value();
-          // This is where the replacement is created. Expressions use
-          // identifier strings instead of pointers, so we don't need to update
-          // any other place in the AST.
-          auto name = ctx.Clone(v->symbol());
-          auto* replacement = ctx.dst->Var(name, ctx.Clone(v->type()),
-                                           ast::StorageClass::kPrivate);
-          location_to_expr[location] = [this, name]() {
-            return ctx.dst->Expr(name);
-          };
-          ctx.Replace(v, replacement);
-          break;
-        }
-      }
-    }
-  }
-
   /// Adds storage buffer decorated variables for the vertex buffers
   void AddVertexStorageBuffers() {
     // TODO(idanr): Make this readonly
@@ -590,25 +479,8 @@
   CloneContext ctx(&out, in);
 
   State state{ctx, cfg};
-
-  if (func->params().empty()) {
-    // TODO(crbug.com/tint/697): Remove this path for the old shader IO syntax.
-    state.FindOrInsertVertexIndexIfUsed();
-    state.FindOrInsertInstanceIndexIfUsed();
-    state.ConvertVertexInputVariablesToPrivate();
-    state.AddVertexStorageBuffers();
-
-    ctx.ReplaceAll([&](ast::Function* f) -> ast::Function* {
-      if (f == func) {
-        return CloneWithStatementsAtStart(
-            &ctx, f, {state.CreateVertexPullingPreamble()});
-      }
-      return nullptr;  // Just clone func
-    });
-  } else {
-    state.AddVertexStorageBuffers();
-    state.Process(func);
-  }
+  state.AddVertexStorageBuffers();
+  state.Process(func);
 
   ctx.Clone();