[shuffle] Move wgsl program files to new structure.
This CL moves the WGSL program files into the `lang/wgsl/program`
folder and updates the includes. The namespaces and build groups are not
updated in this CL, just the code move.
Bug: tint:1988
Change-Id: I70fcab08d6aaea3f81bf35df2d692b22793f7a7d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/142143
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn
index af32454..3d33d8d 100644
--- a/src/tint/BUILD.gn
+++ b/src/tint/BUILD.gn
@@ -287,8 +287,8 @@
libtint_source_set("libtint_program_src") {
sources = [
"clone_context.cc",
- "program.cc",
- "program_builder.cc",
+ "lang/wgsl/program/program.cc",
+ "lang/wgsl/program/program_builder.cc",
"resolver/const_eval.cc",
"resolver/const_eval.h",
"resolver/ctor_conv_intrinsic.cc",
@@ -307,8 +307,8 @@
"resolver/validator.h",
]
public = [
- "program.h",
- "program_builder.h",
+ "lang/wgsl/program/program.h",
+ "lang/wgsl/program/program_builder.h",
"resolver/resolver.h",
]
friend = [
@@ -2382,8 +2382,8 @@
tint_unittests_source_set("tint_unittests_core_src") {
sources = [
"clone_context_test.cc",
- "program_builder_test.cc",
- "program_test.cc",
+ "lang/wgsl/program/program_builder_test.cc",
+ "lang/wgsl/program/program_test.cc",
"transform/manager_test.cc",
]
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt
index c3fe97d..222b54a 100644
--- a/src/tint/CMakeLists.txt
+++ b/src/tint/CMakeLists.txt
@@ -260,12 +260,12 @@
lang/wgsl/inspector/resource_binding.h
lang/wgsl/inspector/scalar.cc
lang/wgsl/inspector/scalar.h
- program_builder.cc
- program_builder.h
+ lang/wgsl/program/program_builder.cc
+ lang/wgsl/program/program_builder.h
program_id.cc
program_id.h
- program.cc
- program.h
+ lang/wgsl/program/program.cc
+ lang/wgsl/program/program.h
reflection.h
reader/reader.cc
reader/reader.h
@@ -1019,8 +1019,8 @@
core/diagnostic/diagnostic_test.cc
core/diagnostic/formatter_test.cc
core/diagnostic/printer_test.cc
- program_builder_test.cc
- program_test.cc
+ lang/wgsl/program/program_builder_test.cc
+ lang/wgsl/program/program_test.cc
reflection_test.cc
resolver/alias_analysis_test.cc
resolver/array_accessor_test.cc
diff --git a/src/tint/clone_context.cc b/src/tint/clone_context.cc
index 836c859..81b99e2 100644
--- a/src/tint/clone_context.cc
+++ b/src/tint/clone_context.cc
@@ -17,7 +17,7 @@
#include <string>
#include "src/tint/core/map.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::Cloneable);
diff --git a/src/tint/clone_context_test.cc b/src/tint/clone_context_test.cc
index 4df5ade..59175ee 100644
--- a/src/tint/clone_context_test.cc
+++ b/src/tint/clone_context_test.cc
@@ -15,7 +15,7 @@
#include <unordered_set>
#include "gtest/gtest-spi.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint {
namespace {
diff --git a/src/tint/cmd/generate_external_texture_bindings.cc b/src/tint/cmd/generate_external_texture_bindings.cc
index e79d617..ab733c2 100644
--- a/src/tint/cmd/generate_external_texture_bindings.cc
+++ b/src/tint/cmd/generate_external_texture_bindings.cc
@@ -20,9 +20,9 @@
#include "src/tint/lang/base/type/external_texture.h"
#include "src/tint/lang/wgsl/ast/module.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/binding_point.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program.h"
namespace tint::cmd {
diff --git a/src/tint/cmd/generate_external_texture_bindings_test.cc b/src/tint/cmd/generate_external_texture_bindings_test.cc
index 2c19675..740a16b 100644
--- a/src/tint/cmd/generate_external_texture_bindings_test.cc
+++ b/src/tint/cmd/generate_external_texture_bindings_test.cc
@@ -16,7 +16,7 @@
#include "gtest/gtest.h"
#include "src/tint/cmd/generate_external_texture_bindings.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/writer/binding_point.h"
namespace tint::cmd {
diff --git a/src/tint/fuzzers/shuffle_transform.cc b/src/tint/fuzzers/shuffle_transform.cc
index 6d0dfd7..a5c22ee 100644
--- a/src/tint/fuzzers/shuffle_transform.cc
+++ b/src/tint/fuzzers/shuffle_transform.cc
@@ -17,7 +17,7 @@
#include <random>
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::fuzzers {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/expression_size.h b/src/tint/fuzzers/tint_ast_fuzzer/expression_size.h
index 908f022..f8aee83 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/expression_size.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/expression_size.h
@@ -18,7 +18,7 @@
#include <unordered_map>
#include "src/tint/lang/wgsl/ast/expression.h"
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/expression_size_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/expression_size_test.cc
index 0d9ca0d..2d0b985 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/expression_size_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/expression_size_test.cc
@@ -21,8 +21,8 @@
#include "src/tint/lang/wgsl/ast/binary_expression.h"
#include "src/tint/lang/wgsl/ast/expression.h"
#include "src/tint/lang/wgsl/ast/int_literal_expression.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/reader/parser.h"
-#include "src/tint/program.h"
namespace tint::fuzzers::ast_fuzzer {
namespace {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/jump_tracker.h b/src/tint/fuzzers/tint_ast_fuzzer/jump_tracker.h
index f7d5edd..4ad0c773 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/jump_tracker.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/jump_tracker.h
@@ -18,7 +18,7 @@
#include <unordered_set>
#include "src/tint/lang/wgsl/ast/statement.h"
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/jump_tracker_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/jump_tracker_test.cc
index 46b550a..68afb4a0 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/jump_tracker_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/jump_tracker_test.cc
@@ -28,8 +28,8 @@
#include "src/tint/lang/wgsl/ast/return_statement.h"
#include "src/tint/lang/wgsl/ast/switch_statement.h"
#include "src/tint/lang/wgsl/ast/while_statement.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/reader/parser.h"
-#include "src/tint/program.h"
namespace tint::fuzzers::ast_fuzzer {
namespace {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation.h b/src/tint/fuzzers/tint_ast_fuzzer/mutation.h
index 0bdc551..b955c24 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation.h
@@ -22,7 +22,7 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/protobufs/tint_ast_fuzzer.h"
#include "src/tint/clone_context.h"
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h
index 36f4c63..d7a1280 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutation_finder.h
@@ -22,7 +22,7 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h"
#include "src/tint/fuzzers/tint_ast_fuzzer/probability_context.h"
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.cc
index 0e2a7f9..8170512 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.cc
@@ -18,7 +18,7 @@
#include "src/tint/lang/base/type/bool.h"
#include "src/tint/lang/base/type/reference.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.h b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.h
index b446eb6..5732778 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator.h
@@ -18,8 +18,8 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/mutation.h"
#include "src/tint/lang/wgsl/ast/binary_expression.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator_test.cc
index efec33a..f73db50 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_binary_operator_test.cc
@@ -23,8 +23,8 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/mutator.h"
#include "src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h"
#include "src/tint/lang/wgsl/ast_writer/generator.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/reader/parser.h"
-#include "src/tint/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
namespace {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_unary_operator.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_unary_operator.cc
index df7945d..0112f17 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_unary_operator.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_unary_operator.cc
@@ -18,7 +18,7 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/util.h"
#include "src/tint/lang/base/type/reference.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_unary_operator_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_unary_operator_test.cc
index 595e850..ade8119 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_unary_operator_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/change_unary_operator_test.cc
@@ -22,8 +22,8 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/probability_context.h"
#include "src/tint/lang/wgsl/ast/call_statement.h"
#include "src/tint/lang/wgsl/ast_writer/generator.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/reader/parser.h"
-#include "src/tint/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
namespace {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/delete_statement.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/delete_statement.cc
index b052755..b3cec9c 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/delete_statement.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/delete_statement.cc
@@ -25,11 +25,11 @@
#include "src/tint/lang/wgsl/ast/if_statement.h"
#include "src/tint/lang/wgsl/ast/loop_statement.h"
#include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/for_loop_statement.h"
#include "src/tint/lang/wgsl/sem/if_statement.h"
#include "src/tint/lang/wgsl/sem/loop_statement.h"
#include "src/tint/lang/wgsl/sem/statement.h"
-#include "src/tint/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/delete_statement_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/delete_statement_test.cc
index 383e1d9..9438248 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/delete_statement_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/delete_statement_test.cc
@@ -29,8 +29,8 @@
#include "src/tint/lang/wgsl/ast/if_statement.h"
#include "src/tint/lang/wgsl/ast/switch_statement.h"
#include "src/tint/lang/wgsl/ast_writer/generator.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/reader/parser.h"
-#include "src/tint/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
namespace {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.cc
index 565a4f4..d752715 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier.cc
@@ -17,7 +17,7 @@
#include <utility>
#include "src/tint/fuzzers/tint_ast_fuzzer/util.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier_test.cc
index fe5bec8..c9af7df 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/replace_identifier_test.cc
@@ -22,8 +22,8 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h"
#include "src/tint/lang/wgsl/ast/call_statement.h"
#include "src/tint/lang/wgsl/ast_writer/generator.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/reader/parser.h"
-#include "src/tint/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
namespace {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.cc
index 8b3b624..9d30b7e 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator.cc
@@ -19,9 +19,9 @@
#include "src/tint/lang/base/type/abstract_float.h"
#include "src/tint/lang/base/type/abstract_int.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/statement.h"
-#include "src/tint/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator_test.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator_test.cc
index fe9fe15..83e15d3 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator_test.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutations/wrap_unary_operator_test.cc
@@ -21,8 +21,8 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h"
#include "src/tint/fuzzers/tint_ast_fuzzer/probability_context.h"
#include "src/tint/lang/wgsl/ast_writer/generator.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/reader/parser.h"
-#include "src/tint/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
namespace {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutator.cc b/src/tint/fuzzers/tint_ast_fuzzer/mutator.cc
index 7153f0c..7fa0118 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutator.cc
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutator.cc
@@ -26,7 +26,7 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/replace_identifiers.h"
#include "src/tint/fuzzers/tint_ast_fuzzer/mutation_finders/wrap_unary_operators.h"
#include "src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::fuzzers::ast_fuzzer {
namespace {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/mutator.h b/src/tint/fuzzers/tint_ast_fuzzer/mutator.h
index 747f1ba..649781a 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/mutator.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/mutator.h
@@ -21,7 +21,7 @@
#include "src/tint/fuzzers/tint_ast_fuzzer/probability_context.h"
#include "src/tint/fuzzers/tint_ast_fuzzer/protobufs/tint_ast_fuzzer.h"
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::fuzzers::ast_fuzzer {
/// @file
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h b/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h
index 114e765..0fd5947 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/node_id_map.h
@@ -17,7 +17,7 @@
#include <unordered_map>
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::fuzzers::ast_fuzzer {
diff --git a/src/tint/fuzzers/tint_ast_fuzzer/util.h b/src/tint/fuzzers/tint_ast_fuzzer/util.h
index 5b1c2e0..53afe4b 100644
--- a/src/tint/fuzzers/tint_ast_fuzzer/util.h
+++ b/src/tint/fuzzers/tint_ast_fuzzer/util.h
@@ -20,11 +20,11 @@
#include "src/tint/core/castable.h"
#include "src/tint/lang/wgsl/ast/module.h"
#include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program.h"
namespace tint::fuzzers::ast_fuzzer::util {
/// @file
diff --git a/src/tint/fuzzers/tint_common_fuzzer.cc b/src/tint/fuzzers/tint_common_fuzzer.cc
index 02fcd3e..3f5a03e 100644
--- a/src/tint/fuzzers/tint_common_fuzzer.cc
+++ b/src/tint/fuzzers/tint_common_fuzzer.cc
@@ -36,9 +36,9 @@
#include "src/tint/lang/base/type/external_texture.h"
#include "src/tint/lang/wgsl/ast/module.h"
#include "src/tint/lang/wgsl/helpers/flatten_bindings.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/binding_point.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program.h"
namespace tint::fuzzers {
diff --git a/src/tint/ir/from_program.cc b/src/tint/ir/from_program.cc
index d30e73a..169e9f7 100644
--- a/src/tint/ir/from_program.cc
+++ b/src/tint/ir/from_program.cc
@@ -88,6 +88,7 @@
#include "src/tint/lang/wgsl/ast/var.h"
#include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
#include "src/tint/lang/wgsl/ast/while_statement.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/builtin.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/function.h"
@@ -101,7 +102,6 @@
#include "src/tint/lang/wgsl/sem/value_conversion.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program.h"
#include "src/tint/scope_stack.h"
#include "src/tint/switch.h"
diff --git a/src/tint/ir/program_test_helper.h b/src/tint/ir/program_test_helper.h
index ceaf95c..5cec05e 100644
--- a/src/tint/ir/program_test_helper.h
+++ b/src/tint/ir/program_test_helper.h
@@ -24,7 +24,7 @@
#include "src/tint/ir/disassembler.h"
#include "src/tint/ir/from_program.h"
#include "src/tint/lang/base/builtin/number.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::ir {
diff --git a/src/tint/ir/to_program.cc b/src/tint/ir/to_program.cc
index 8da34f6..5e36814 100644
--- a/src/tint/ir/to_program.cc
+++ b/src/tint/ir/to_program.cc
@@ -69,7 +69,7 @@
#include "src/tint/lang/base/type/reference.h"
#include "src/tint/lang/base/type/sampler.h"
#include "src/tint/lang/base/type/texture.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/switch.h"
// Helper for calling TINT_UNIMPLEMENTED() from a Switch(object_ptr) default case.
diff --git a/src/tint/ir/to_program.h b/src/tint/ir/to_program.h
index eecaf39..13e4ea0 100644
--- a/src/tint/ir/to_program.h
+++ b/src/tint/ir/to_program.h
@@ -15,7 +15,7 @@
#ifndef SRC_TINT_IR_TO_PROGRAM_H_
#define SRC_TINT_IR_TO_PROGRAM_H_
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::ir {
class Module;
diff --git a/src/tint/lang/base/builtin/number_test.cc b/src/tint/lang/base/builtin/number_test.cc
index dd9535a..b899342 100644
--- a/src/tint/lang/base/builtin/number_test.cc
+++ b/src/tint/lang/base/builtin/number_test.cc
@@ -19,7 +19,7 @@
#include "src/tint/core/compiler_macros.h"
#include "src/tint/core/string_stream.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "gtest/gtest.h"
diff --git a/src/tint/lang/base/constant/test_helper.h b/src/tint/lang/base/constant/test_helper.h
index 0f3e281..91e2f53 100644
--- a/src/tint/lang/base/constant/test_helper.h
+++ b/src/tint/lang/base/constant/test_helper.h
@@ -16,7 +16,7 @@
#define SRC_TINT_LANG_BASE_CONSTANT_TEST_HELPER_H_
#include "gtest/gtest.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::constant {
diff --git a/src/tint/lang/base/type/test_helper.h b/src/tint/lang/base/type/test_helper.h
index 19bb8bf..bbf5086 100644
--- a/src/tint/lang/base/type/test_helper.h
+++ b/src/tint/lang/base/type/test_helper.h
@@ -18,7 +18,7 @@
#include <utility>
#include "gtest/gtest.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::type {
diff --git a/src/tint/lang/glsl/ast_writer/generator_impl.h b/src/tint/lang/glsl/ast_writer/generator_impl.h
index 87902ca..906f28a 100644
--- a/src/tint/lang/glsl/ast_writer/generator_impl.h
+++ b/src/tint/lang/glsl/ast_writer/generator_impl.h
@@ -38,7 +38,7 @@
#include "src/tint/lang/wgsl/ast/switch_statement.h"
#include "src/tint/lang/wgsl/ast/transform/decompose_memory_access.h"
#include "src/tint/lang/wgsl/ast/unary_op_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/scope_stack.h"
#include "src/tint/writer/ast_text_generator.h"
diff --git a/src/tint/lang/hlsl/ast_writer/generator_impl.h b/src/tint/lang/hlsl/ast_writer/generator_impl.h
index e0e40ff..a3bcb18 100644
--- a/src/tint/lang/hlsl/ast_writer/generator_impl.h
+++ b/src/tint/lang/hlsl/ast_writer/generator_impl.h
@@ -36,8 +36,8 @@
#include "src/tint/lang/wgsl/ast/switch_statement.h"
#include "src/tint/lang/wgsl/ast/transform/decompose_memory_access.h"
#include "src/tint/lang/wgsl/ast/unary_op_expression.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/binding_point.h"
-#include "src/tint/program_builder.h"
#include "src/tint/scope_stack.h"
#include "src/tint/writer/array_length_from_uniform_options.h"
#include "src/tint/writer/ast_text_generator.h"
diff --git a/src/tint/lang/msl/ast_writer/generator_impl.h b/src/tint/lang/msl/ast_writer/generator_impl.h
index 036fc4f..447ed5b 100644
--- a/src/tint/lang/msl/ast_writer/generator_impl.h
+++ b/src/tint/lang/msl/ast_writer/generator_impl.h
@@ -39,8 +39,8 @@
#include "src/tint/lang/wgsl/ast/return_statement.h"
#include "src/tint/lang/wgsl/ast/switch_statement.h"
#include "src/tint/lang/wgsl/ast/unary_op_expression.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/program.h"
#include "src/tint/scope_stack.h"
#include "src/tint/writer/array_length_from_uniform_options.h"
#include "src/tint/writer/ast_text_generator.h"
diff --git a/src/tint/lang/msl/ast_writer/test_helper.h b/src/tint/lang/msl/ast_writer/test_helper.h
index 20574af..c257faa4 100644
--- a/src/tint/lang/msl/ast_writer/test_helper.h
+++ b/src/tint/lang/msl/ast_writer/test_helper.h
@@ -22,7 +22,7 @@
#include "gtest/gtest.h"
#include "src/tint/lang/msl/ast_writer/generator.h"
#include "src/tint/lang/msl/ast_writer/generator_impl.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::writer::msl {
diff --git a/src/tint/lang/spirv/reader/attributes.h b/src/tint/lang/spirv/reader/attributes.h
index 9ab565f..86e628b 100644
--- a/src/tint/lang/spirv/reader/attributes.h
+++ b/src/tint/lang/spirv/reader/attributes.h
@@ -19,7 +19,7 @@
#include "src/tint/core/vector.h"
#include "src/tint/lang/base/builtin/builtin_value.h"
#include "src/tint/lang/wgsl/ast/attribute.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::reader::spirv {
diff --git a/src/tint/lang/spirv/reader/function.h b/src/tint/lang/spirv/reader/function.h
index f110473..3a7eecd 100644
--- a/src/tint/lang/spirv/reader/function.h
+++ b/src/tint/lang/spirv/reader/function.h
@@ -28,7 +28,7 @@
#include "src/tint/lang/spirv/reader/attributes.h"
#include "src/tint/lang/spirv/reader/construct.h"
#include "src/tint/lang/spirv/reader/parser_impl.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::reader::spirv {
diff --git a/src/tint/lang/spirv/reader/parser.h b/src/tint/lang/spirv/reader/parser.h
index cbd6f8b..b77b161 100644
--- a/src/tint/lang/spirv/reader/parser.h
+++ b/src/tint/lang/spirv/reader/parser.h
@@ -17,7 +17,7 @@
#include <vector>
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::reader::spirv {
diff --git a/src/tint/lang/spirv/reader/parser_impl.h b/src/tint/lang/spirv/reader/parser_impl.h
index 522a49c..1c8120b 100644
--- a/src/tint/lang/spirv/reader/parser_impl.h
+++ b/src/tint/lang/spirv/reader/parser_impl.h
@@ -42,7 +42,7 @@
#include "src/tint/lang/spirv/reader/namer.h"
#include "src/tint/lang/spirv/reader/parser_type.h"
#include "src/tint/lang/spirv/reader/usage.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/reader/reader.h"
/// This is the implementation of the SPIR-V parser for Tint.
diff --git a/src/tint/lang/spirv/reader/parser_type.cc b/src/tint/lang/spirv/reader/parser_type.cc
index e2f78c8..124c46f 100644
--- a/src/tint/lang/spirv/reader/parser_type.cc
+++ b/src/tint/lang/spirv/reader/parser_type.cc
@@ -25,7 +25,7 @@
#include "src/tint/core/string_stream.h"
#include "src/tint/core/unique_allocator.h"
#include "src/tint/lang/base/type/texture_dimension.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::reader::spirv::Type);
diff --git a/src/tint/lang/wgsl/ast/accessor_expression.cc b/src/tint/lang/wgsl/ast/accessor_expression.cc
index cd0130d..16cc58f 100644
--- a/src/tint/lang/wgsl/ast/accessor_expression.cc
+++ b/src/tint/lang/wgsl/ast/accessor_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/accessor_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::AccessorExpression);
diff --git a/src/tint/lang/wgsl/ast/alias.cc b/src/tint/lang/wgsl/ast/alias.cc
index 7261255..a1a9334 100644
--- a/src/tint/lang/wgsl/ast/alias.cc
+++ b/src/tint/lang/wgsl/ast/alias.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/alias.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Alias);
diff --git a/src/tint/lang/wgsl/ast/assignment_statement.cc b/src/tint/lang/wgsl/ast/assignment_statement.cc
index dcb57f9..e49861d 100644
--- a/src/tint/lang/wgsl/ast/assignment_statement.cc
+++ b/src/tint/lang/wgsl/ast/assignment_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/assignment_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::AssignmentStatement);
diff --git a/src/tint/lang/wgsl/ast/binary_expression.cc b/src/tint/lang/wgsl/ast/binary_expression.cc
index 2de3b57..43c15ee 100644
--- a/src/tint/lang/wgsl/ast/binary_expression.cc
+++ b/src/tint/lang/wgsl/ast/binary_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/binary_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::BinaryExpression);
diff --git a/src/tint/lang/wgsl/ast/binding_attribute.cc b/src/tint/lang/wgsl/ast/binding_attribute.cc
index 3f06e95..fe9929d 100644
--- a/src/tint/lang/wgsl/ast/binding_attribute.cc
+++ b/src/tint/lang/wgsl/ast/binding_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::BindingAttribute);
diff --git a/src/tint/lang/wgsl/ast/bitcast_expression.cc b/src/tint/lang/wgsl/ast/bitcast_expression.cc
index 3480d57..eaf4a9e 100644
--- a/src/tint/lang/wgsl/ast/bitcast_expression.cc
+++ b/src/tint/lang/wgsl/ast/bitcast_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/bitcast_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::BitcastExpression);
diff --git a/src/tint/lang/wgsl/ast/block_statement.cc b/src/tint/lang/wgsl/ast/block_statement.cc
index a87d28f..ed8ccc7 100644
--- a/src/tint/lang/wgsl/ast/block_statement.cc
+++ b/src/tint/lang/wgsl/ast/block_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/block_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::BlockStatement);
diff --git a/src/tint/lang/wgsl/ast/bool_literal_expression.cc b/src/tint/lang/wgsl/ast/bool_literal_expression.cc
index bf275ea..e9def0f 100644
--- a/src/tint/lang/wgsl/ast/bool_literal_expression.cc
+++ b/src/tint/lang/wgsl/ast/bool_literal_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/bool_literal_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::BoolLiteralExpression);
diff --git a/src/tint/lang/wgsl/ast/break_if_statement.cc b/src/tint/lang/wgsl/ast/break_if_statement.cc
index ddd0e90..893fced 100644
--- a/src/tint/lang/wgsl/ast/break_if_statement.cc
+++ b/src/tint/lang/wgsl/ast/break_if_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/break_if_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::BreakIfStatement);
diff --git a/src/tint/lang/wgsl/ast/break_statement.cc b/src/tint/lang/wgsl/ast/break_statement.cc
index 89c8c3a..2aed432 100644
--- a/src/tint/lang/wgsl/ast/break_statement.cc
+++ b/src/tint/lang/wgsl/ast/break_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/break_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::BreakStatement);
diff --git a/src/tint/lang/wgsl/ast/builtin_attribute.cc b/src/tint/lang/wgsl/ast/builtin_attribute.cc
index 3b33e6a..b891842 100644
--- a/src/tint/lang/wgsl/ast/builtin_attribute.cc
+++ b/src/tint/lang/wgsl/ast/builtin_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::BuiltinAttribute);
diff --git a/src/tint/lang/wgsl/ast/builtin_texture_helper_test.h b/src/tint/lang/wgsl/ast/builtin_texture_helper_test.h
index b2165b2..bb0cbdb 100644
--- a/src/tint/lang/wgsl/ast/builtin_texture_helper_test.h
+++ b/src/tint/lang/wgsl/ast/builtin_texture_helper_test.h
@@ -21,7 +21,7 @@
#include "src/tint/lang/base/builtin/texel_format.h"
#include "src/tint/lang/base/type/storage_texture.h"
#include "src/tint/lang/base/type/texture_dimension.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::ast::test {
diff --git a/src/tint/lang/wgsl/ast/call_expression.cc b/src/tint/lang/wgsl/ast/call_expression.cc
index 5f2663a..1ebc392 100644
--- a/src/tint/lang/wgsl/ast/call_expression.cc
+++ b/src/tint/lang/wgsl/ast/call_expression.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::CallExpression);
diff --git a/src/tint/lang/wgsl/ast/call_statement.cc b/src/tint/lang/wgsl/ast/call_statement.cc
index 4ae4d64..597a451 100644
--- a/src/tint/lang/wgsl/ast/call_statement.cc
+++ b/src/tint/lang/wgsl/ast/call_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/call_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::CallStatement);
diff --git a/src/tint/lang/wgsl/ast/case_selector.cc b/src/tint/lang/wgsl/ast/case_selector.cc
index 2ba540e..655eed3 100644
--- a/src/tint/lang/wgsl/ast/case_selector.cc
+++ b/src/tint/lang/wgsl/ast/case_selector.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::CaseSelector);
diff --git a/src/tint/lang/wgsl/ast/case_statement.cc b/src/tint/lang/wgsl/ast/case_statement.cc
index 16e66b2..5b082b2 100644
--- a/src/tint/lang/wgsl/ast/case_statement.cc
+++ b/src/tint/lang/wgsl/ast/case_statement.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::CaseStatement);
diff --git a/src/tint/lang/wgsl/ast/compound_assignment_statement.cc b/src/tint/lang/wgsl/ast/compound_assignment_statement.cc
index c516a5b..41a8668 100644
--- a/src/tint/lang/wgsl/ast/compound_assignment_statement.cc
+++ b/src/tint/lang/wgsl/ast/compound_assignment_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/compound_assignment_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::CompoundAssignmentStatement);
diff --git a/src/tint/lang/wgsl/ast/const.cc b/src/tint/lang/wgsl/ast/const.cc
index 6d51d22..ad5c796 100644
--- a/src/tint/lang/wgsl/ast/const.cc
+++ b/src/tint/lang/wgsl/ast/const.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Const);
diff --git a/src/tint/lang/wgsl/ast/const_assert.cc b/src/tint/lang/wgsl/ast/const_assert.cc
index 3a60f40..ab27046 100644
--- a/src/tint/lang/wgsl/ast/const_assert.cc
+++ b/src/tint/lang/wgsl/ast/const_assert.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/const_assert.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::ConstAssert);
diff --git a/src/tint/lang/wgsl/ast/continue_statement.cc b/src/tint/lang/wgsl/ast/continue_statement.cc
index 4b8d92b..8e8e40b 100644
--- a/src/tint/lang/wgsl/ast/continue_statement.cc
+++ b/src/tint/lang/wgsl/ast/continue_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/continue_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::ContinueStatement);
diff --git a/src/tint/lang/wgsl/ast/diagnostic_attribute.cc b/src/tint/lang/wgsl/ast/diagnostic_attribute.cc
index 0e3ce31..de2e1ff 100644
--- a/src/tint/lang/wgsl/ast/diagnostic_attribute.cc
+++ b/src/tint/lang/wgsl/ast/diagnostic_attribute.cc
@@ -17,7 +17,7 @@
#include <string>
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::DiagnosticAttribute);
diff --git a/src/tint/lang/wgsl/ast/diagnostic_directive.cc b/src/tint/lang/wgsl/ast/diagnostic_directive.cc
index d2cceff..09b5433 100644
--- a/src/tint/lang/wgsl/ast/diagnostic_directive.cc
+++ b/src/tint/lang/wgsl/ast/diagnostic_directive.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/diagnostic_directive.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::DiagnosticDirective);
diff --git a/src/tint/lang/wgsl/ast/diagnostic_rule_name.cc b/src/tint/lang/wgsl/ast/diagnostic_rule_name.cc
index d0994c9..3c39e49 100644
--- a/src/tint/lang/wgsl/ast/diagnostic_rule_name.cc
+++ b/src/tint/lang/wgsl/ast/diagnostic_rule_name.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::DiagnosticRuleName);
diff --git a/src/tint/lang/wgsl/ast/disable_validation_attribute.cc b/src/tint/lang/wgsl/ast/disable_validation_attribute.cc
index 979b2d0..836aa57 100644
--- a/src/tint/lang/wgsl/ast/disable_validation_attribute.cc
+++ b/src/tint/lang/wgsl/ast/disable_validation_attribute.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/disable_validation_attribute.h"
#include "src/tint/clone_context.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::DisableValidationAttribute);
diff --git a/src/tint/lang/wgsl/ast/discard_statement.cc b/src/tint/lang/wgsl/ast/discard_statement.cc
index 2f95e27..6904fdf 100644
--- a/src/tint/lang/wgsl/ast/discard_statement.cc
+++ b/src/tint/lang/wgsl/ast/discard_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/discard_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::DiscardStatement);
diff --git a/src/tint/lang/wgsl/ast/enable.cc b/src/tint/lang/wgsl/ast/enable.cc
index 439f45e..b9169f3 100644
--- a/src/tint/lang/wgsl/ast/enable.cc
+++ b/src/tint/lang/wgsl/ast/enable.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/enable.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Enable);
diff --git a/src/tint/lang/wgsl/ast/extension.cc b/src/tint/lang/wgsl/ast/extension.cc
index 4a00aa1..672d3a5 100644
--- a/src/tint/lang/wgsl/ast/extension.cc
+++ b/src/tint/lang/wgsl/ast/extension.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/extension.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
//! @cond Doxygen_Suppress
// Doxygen gets confused with tint::ast::Extension and tint::builtin::Extension
diff --git a/src/tint/lang/wgsl/ast/float_literal_expression.cc b/src/tint/lang/wgsl/ast/float_literal_expression.cc
index 6cb5dd9..5e76322 100644
--- a/src/tint/lang/wgsl/ast/float_literal_expression.cc
+++ b/src/tint/lang/wgsl/ast/float_literal_expression.cc
@@ -16,7 +16,7 @@
#include <limits>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::FloatLiteralExpression);
diff --git a/src/tint/lang/wgsl/ast/for_loop_statement.cc b/src/tint/lang/wgsl/ast/for_loop_statement.cc
index 1bcd9c2..9cb66f7 100644
--- a/src/tint/lang/wgsl/ast/for_loop_statement.cc
+++ b/src/tint/lang/wgsl/ast/for_loop_statement.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::ForLoopStatement);
diff --git a/src/tint/lang/wgsl/ast/function.cc b/src/tint/lang/wgsl/ast/function.cc
index d3f54e1..c0c3d7d 100644
--- a/src/tint/lang/wgsl/ast/function.cc
+++ b/src/tint/lang/wgsl/ast/function.cc
@@ -16,7 +16,7 @@
#include "src/tint/lang/wgsl/ast/stage_attribute.h"
#include "src/tint/lang/wgsl/ast/workgroup_attribute.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Function);
diff --git a/src/tint/lang/wgsl/ast/group_attribute.cc b/src/tint/lang/wgsl/ast/group_attribute.cc
index 9f3afc3..e3d5d72 100644
--- a/src/tint/lang/wgsl/ast/group_attribute.cc
+++ b/src/tint/lang/wgsl/ast/group_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::GroupAttribute);
diff --git a/src/tint/lang/wgsl/ast/id_attribute.cc b/src/tint/lang/wgsl/ast/id_attribute.cc
index 687cbe2..8d580a0 100644
--- a/src/tint/lang/wgsl/ast/id_attribute.cc
+++ b/src/tint/lang/wgsl/ast/id_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::IdAttribute);
diff --git a/src/tint/lang/wgsl/ast/identifier.cc b/src/tint/lang/wgsl/ast/identifier.cc
index 23ccf35..86f7d98 100644
--- a/src/tint/lang/wgsl/ast/identifier.cc
+++ b/src/tint/lang/wgsl/ast/identifier.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/identifier.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Identifier);
diff --git a/src/tint/lang/wgsl/ast/identifier_expression.cc b/src/tint/lang/wgsl/ast/identifier_expression.cc
index 421c5e0..5f23d15 100644
--- a/src/tint/lang/wgsl/ast/identifier_expression.cc
+++ b/src/tint/lang/wgsl/ast/identifier_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/identifier_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::IdentifierExpression);
diff --git a/src/tint/lang/wgsl/ast/if_statement.cc b/src/tint/lang/wgsl/ast/if_statement.cc
index 77319ef..161dccc 100644
--- a/src/tint/lang/wgsl/ast/if_statement.cc
+++ b/src/tint/lang/wgsl/ast/if_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/if_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::IfStatement);
diff --git a/src/tint/lang/wgsl/ast/increment_decrement_statement.cc b/src/tint/lang/wgsl/ast/increment_decrement_statement.cc
index 834da15..ddba98f 100644
--- a/src/tint/lang/wgsl/ast/increment_decrement_statement.cc
+++ b/src/tint/lang/wgsl/ast/increment_decrement_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/increment_decrement_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::IncrementDecrementStatement);
diff --git a/src/tint/lang/wgsl/ast/index_accessor_expression.cc b/src/tint/lang/wgsl/ast/index_accessor_expression.cc
index 48503d47..c245f22 100644
--- a/src/tint/lang/wgsl/ast/index_accessor_expression.cc
+++ b/src/tint/lang/wgsl/ast/index_accessor_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/index_accessor_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::IndexAccessorExpression);
diff --git a/src/tint/lang/wgsl/ast/index_attribute.cc b/src/tint/lang/wgsl/ast/index_attribute.cc
index ffe227e..ade0786 100644
--- a/src/tint/lang/wgsl/ast/index_attribute.cc
+++ b/src/tint/lang/wgsl/ast/index_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::IndexAttribute);
diff --git a/src/tint/lang/wgsl/ast/int_literal_expression.cc b/src/tint/lang/wgsl/ast/int_literal_expression.cc
index 2e5949a..bc26965 100644
--- a/src/tint/lang/wgsl/ast/int_literal_expression.cc
+++ b/src/tint/lang/wgsl/ast/int_literal_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/int_literal_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::IntLiteralExpression);
diff --git a/src/tint/lang/wgsl/ast/interpolate_attribute.cc b/src/tint/lang/wgsl/ast/interpolate_attribute.cc
index 383f94a..d717828 100644
--- a/src/tint/lang/wgsl/ast/interpolate_attribute.cc
+++ b/src/tint/lang/wgsl/ast/interpolate_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::InterpolateAttribute);
diff --git a/src/tint/lang/wgsl/ast/invariant_attribute.cc b/src/tint/lang/wgsl/ast/invariant_attribute.cc
index 096709b..ab9b071 100644
--- a/src/tint/lang/wgsl/ast/invariant_attribute.cc
+++ b/src/tint/lang/wgsl/ast/invariant_attribute.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/invariant_attribute.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::InvariantAttribute);
diff --git a/src/tint/lang/wgsl/ast/let.cc b/src/tint/lang/wgsl/ast/let.cc
index f2eee1f..a23c098 100644
--- a/src/tint/lang/wgsl/ast/let.cc
+++ b/src/tint/lang/wgsl/ast/let.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Let);
diff --git a/src/tint/lang/wgsl/ast/location_attribute.cc b/src/tint/lang/wgsl/ast/location_attribute.cc
index 87bc75c..da991d0 100644
--- a/src/tint/lang/wgsl/ast/location_attribute.cc
+++ b/src/tint/lang/wgsl/ast/location_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::LocationAttribute);
diff --git a/src/tint/lang/wgsl/ast/loop_statement.cc b/src/tint/lang/wgsl/ast/loop_statement.cc
index e9a73cf..8743743 100644
--- a/src/tint/lang/wgsl/ast/loop_statement.cc
+++ b/src/tint/lang/wgsl/ast/loop_statement.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::LoopStatement);
diff --git a/src/tint/lang/wgsl/ast/member_accessor_expression.cc b/src/tint/lang/wgsl/ast/member_accessor_expression.cc
index f6ccdec..7b10005 100644
--- a/src/tint/lang/wgsl/ast/member_accessor_expression.cc
+++ b/src/tint/lang/wgsl/ast/member_accessor_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/member_accessor_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::MemberAccessorExpression);
diff --git a/src/tint/lang/wgsl/ast/module.cc b/src/tint/lang/wgsl/ast/module.cc
index 9ef1b3e..6af2f02 100644
--- a/src/tint/lang/wgsl/ast/module.cc
+++ b/src/tint/lang/wgsl/ast/module.cc
@@ -17,7 +17,7 @@
#include <utility>
#include "src/tint/lang/wgsl/ast/type_decl.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Module);
diff --git a/src/tint/lang/wgsl/ast/must_use_attribute.cc b/src/tint/lang/wgsl/ast/must_use_attribute.cc
index 2b2e5e3..0506e96 100644
--- a/src/tint/lang/wgsl/ast/must_use_attribute.cc
+++ b/src/tint/lang/wgsl/ast/must_use_attribute.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/must_use_attribute.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::MustUseAttribute);
diff --git a/src/tint/lang/wgsl/ast/override.cc b/src/tint/lang/wgsl/ast/override.cc
index 1239623..09dcd08 100644
--- a/src/tint/lang/wgsl/ast/override.cc
+++ b/src/tint/lang/wgsl/ast/override.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Override);
diff --git a/src/tint/lang/wgsl/ast/parameter.cc b/src/tint/lang/wgsl/ast/parameter.cc
index 4f0d598..46120ac 100644
--- a/src/tint/lang/wgsl/ast/parameter.cc
+++ b/src/tint/lang/wgsl/ast/parameter.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Parameter);
diff --git a/src/tint/lang/wgsl/ast/phony_expression.cc b/src/tint/lang/wgsl/ast/phony_expression.cc
index d41dd5c..aced532 100644
--- a/src/tint/lang/wgsl/ast/phony_expression.cc
+++ b/src/tint/lang/wgsl/ast/phony_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/phony_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::PhonyExpression);
diff --git a/src/tint/lang/wgsl/ast/return_statement.cc b/src/tint/lang/wgsl/ast/return_statement.cc
index 6b666db..8346695 100644
--- a/src/tint/lang/wgsl/ast/return_statement.cc
+++ b/src/tint/lang/wgsl/ast/return_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/return_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::ReturnStatement);
diff --git a/src/tint/lang/wgsl/ast/stage_attribute.cc b/src/tint/lang/wgsl/ast/stage_attribute.cc
index aaa361c..5ece799 100644
--- a/src/tint/lang/wgsl/ast/stage_attribute.cc
+++ b/src/tint/lang/wgsl/ast/stage_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::StageAttribute);
diff --git a/src/tint/lang/wgsl/ast/stride_attribute.cc b/src/tint/lang/wgsl/ast/stride_attribute.cc
index dc30855..54c5082 100644
--- a/src/tint/lang/wgsl/ast/stride_attribute.cc
+++ b/src/tint/lang/wgsl/ast/stride_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::StrideAttribute);
diff --git a/src/tint/lang/wgsl/ast/struct.cc b/src/tint/lang/wgsl/ast/struct.cc
index 8543885..f7e0282 100644
--- a/src/tint/lang/wgsl/ast/struct.cc
+++ b/src/tint/lang/wgsl/ast/struct.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Struct);
diff --git a/src/tint/lang/wgsl/ast/struct_member.cc b/src/tint/lang/wgsl/ast/struct_member.cc
index bdd3cb6..c27401e 100644
--- a/src/tint/lang/wgsl/ast/struct_member.cc
+++ b/src/tint/lang/wgsl/ast/struct_member.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/struct_member.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::StructMember);
diff --git a/src/tint/lang/wgsl/ast/struct_member_align_attribute.cc b/src/tint/lang/wgsl/ast/struct_member_align_attribute.cc
index 4362dc2..48a6f85 100644
--- a/src/tint/lang/wgsl/ast/struct_member_align_attribute.cc
+++ b/src/tint/lang/wgsl/ast/struct_member_align_attribute.cc
@@ -17,7 +17,7 @@
#include <string>
#include "src/tint/clone_context.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::StructMemberAlignAttribute);
diff --git a/src/tint/lang/wgsl/ast/struct_member_offset_attribute.cc b/src/tint/lang/wgsl/ast/struct_member_offset_attribute.cc
index 995b119..f060133 100644
--- a/src/tint/lang/wgsl/ast/struct_member_offset_attribute.cc
+++ b/src/tint/lang/wgsl/ast/struct_member_offset_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::StructMemberOffsetAttribute);
diff --git a/src/tint/lang/wgsl/ast/struct_member_size_attribute.cc b/src/tint/lang/wgsl/ast/struct_member_size_attribute.cc
index 26e64ed..e802220 100644
--- a/src/tint/lang/wgsl/ast/struct_member_size_attribute.cc
+++ b/src/tint/lang/wgsl/ast/struct_member_size_attribute.cc
@@ -17,7 +17,7 @@
#include <string>
#include "src/tint/clone_context.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::StructMemberSizeAttribute);
diff --git a/src/tint/lang/wgsl/ast/switch_statement.cc b/src/tint/lang/wgsl/ast/switch_statement.cc
index 858001c..f7908ba 100644
--- a/src/tint/lang/wgsl/ast/switch_statement.cc
+++ b/src/tint/lang/wgsl/ast/switch_statement.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::SwitchStatement);
diff --git a/src/tint/lang/wgsl/ast/templated_identifier.cc b/src/tint/lang/wgsl/ast/templated_identifier.cc
index 3bb34d4..7155859 100644
--- a/src/tint/lang/wgsl/ast/templated_identifier.cc
+++ b/src/tint/lang/wgsl/ast/templated_identifier.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::TemplatedIdentifier);
diff --git a/src/tint/lang/wgsl/ast/test_helper.h b/src/tint/lang/wgsl/ast/test_helper.h
index 3f3656dc..614be4c 100644
--- a/src/tint/lang/wgsl/ast/test_helper.h
+++ b/src/tint/lang/wgsl/ast/test_helper.h
@@ -19,7 +19,7 @@
#include <utility>
#include "gtest/gtest.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::ast {
diff --git a/src/tint/lang/wgsl/ast/transform/add_block_attribute.cc b/src/tint/lang/wgsl/ast/transform/add_block_attribute.cc
index e6f503f..8f2a09e 100644
--- a/src/tint/lang/wgsl/ast/transform/add_block_attribute.cc
+++ b/src/tint/lang/wgsl/ast/transform/add_block_attribute.cc
@@ -19,8 +19,8 @@
#include "src/tint/core/hashmap.h"
#include "src/tint/core/hashset.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::AddBlockAttribute);
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::AddBlockAttribute::BlockAttribute);
diff --git a/src/tint/lang/wgsl/ast/transform/add_empty_entry_point.cc b/src/tint/lang/wgsl/ast/transform/add_empty_entry_point.cc
index 5ba160f..b026bf9 100644
--- a/src/tint/lang/wgsl/ast/transform/add_empty_entry_point.cc
+++ b/src/tint/lang/wgsl/ast/transform/add_empty_entry_point.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::AddEmptyEntryPoint);
diff --git a/src/tint/lang/wgsl/ast/transform/array_length_from_uniform.cc b/src/tint/lang/wgsl/ast/transform/array_length_from_uniform.cc
index d40e6c4..4f3e139 100644
--- a/src/tint/lang/wgsl/ast/transform/array_length_from_uniform.cc
+++ b/src/tint/lang/wgsl/ast/transform/array_length_from_uniform.cc
@@ -19,11 +19,11 @@
#include <utility>
#include "src/tint/lang/wgsl/ast/transform/simplify_pointers.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::ArrayLengthFromUniform);
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::ArrayLengthFromUniform::Config);
diff --git a/src/tint/lang/wgsl/ast/transform/binding_remapper.cc b/src/tint/lang/wgsl/ast/transform/binding_remapper.cc
index 79a1c1b..8c12523 100644
--- a/src/tint/lang/wgsl/ast/transform/binding_remapper.cc
+++ b/src/tint/lang/wgsl/ast/transform/binding_remapper.cc
@@ -20,9 +20,9 @@
#include "src/tint/core/string.h"
#include "src/tint/lang/wgsl/ast/disable_validation_attribute.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::BindingRemapper);
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::BindingRemapper::Remappings);
diff --git a/src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc b/src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc
index 6a3c35d..e8df4ff 100644
--- a/src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc
+++ b/src/tint/lang/wgsl/ast/transform/builtin_polyfill.cc
@@ -22,11 +22,11 @@
#include "src/tint/core/map.h"
#include "src/tint/lang/base/type/storage_texture.h"
#include "src/tint/lang/base/type/texture_dimension.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/builtin.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/type_expression.h"
#include "src/tint/lang/wgsl/sem/value_conversion.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
using namespace tint::builtin::fluent_types; // NOLINT
diff --git a/src/tint/lang/wgsl/ast/transform/calculate_array_length.cc b/src/tint/lang/wgsl/ast/transform/calculate_array_length.cc
index 34e175c..82579fa 100644
--- a/src/tint/lang/wgsl/ast/transform/calculate_array_length.cc
+++ b/src/tint/lang/wgsl/ast/transform/calculate_array_length.cc
@@ -23,13 +23,13 @@
#include "src/tint/lang/wgsl/ast/call_statement.h"
#include "src/tint/lang/wgsl/ast/disable_validation_attribute.h"
#include "src/tint/lang/wgsl/ast/transform/simplify_pointers.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/struct.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::CalculateArrayLength);
diff --git a/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc b/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc
index 1148d8b..2211b26 100644
--- a/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc
+++ b/src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.cc
@@ -23,8 +23,8 @@
#include "src/tint/lang/base/builtin/builtin_value.h"
#include "src/tint/lang/wgsl/ast/disable_validation_attribute.h"
#include "src/tint/lang/wgsl/ast/transform/unshadow.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/function.h"
-#include "src/tint/program_builder.h"
using namespace tint::number_suffixes; // NOLINT
diff --git a/src/tint/lang/wgsl/ast/transform/clamp_frag_depth.cc b/src/tint/lang/wgsl/ast/transform/clamp_frag_depth.cc
index dedc3d4..a05cee7 100644
--- a/src/tint/lang/wgsl/ast/transform/clamp_frag_depth.cc
+++ b/src/tint/lang/wgsl/ast/transform/clamp_frag_depth.cc
@@ -24,10 +24,10 @@
#include "src/tint/lang/wgsl/ast/function.h"
#include "src/tint/lang/wgsl/ast/module.h"
#include "src/tint/lang/wgsl/ast/struct.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::ClampFragDepth);
diff --git a/src/tint/lang/wgsl/ast/transform/combine_samplers.cc b/src/tint/lang/wgsl/ast/transform/combine_samplers.cc
index 6281062..f0b253e 100644
--- a/src/tint/lang/wgsl/ast/transform/combine_samplers.cc
+++ b/src/tint/lang/wgsl/ast/transform/combine_samplers.cc
@@ -19,9 +19,9 @@
#include <utility>
#include <vector>
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
-#include "src/tint/program_builder.h"
#include "src/tint/core/map.h"
diff --git a/src/tint/lang/wgsl/ast/transform/decompose_memory_access.cc b/src/tint/lang/wgsl/ast/transform/decompose_memory_access.cc
index ab9f00f..0d1d08f 100644
--- a/src/tint/lang/wgsl/ast/transform/decompose_memory_access.cc
+++ b/src/tint/lang/wgsl/ast/transform/decompose_memory_access.cc
@@ -31,12 +31,12 @@
#include "src/tint/lang/wgsl/ast/call_statement.h"
#include "src/tint/lang/wgsl/ast/disable_validation_attribute.h"
#include "src/tint/lang/wgsl/ast/unary_op.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/struct.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
using namespace tint::number_suffixes; // NOLINT
diff --git a/src/tint/lang/wgsl/ast/transform/decompose_strided_array.cc b/src/tint/lang/wgsl/ast/transform/decompose_strided_array.cc
index 44d5fc2..5eef025 100644
--- a/src/tint/lang/wgsl/ast/transform/decompose_strided_array.cc
+++ b/src/tint/lang/wgsl/ast/transform/decompose_strided_array.cc
@@ -21,12 +21,12 @@
#include "src/tint/core/hash.h"
#include "src/tint/core/map.h"
#include "src/tint/lang/wgsl/ast/transform/simplify_pointers.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/type_expression.h"
#include "src/tint/lang/wgsl/sem/value_constructor.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::DecomposeStridedArray);
diff --git a/src/tint/lang/wgsl/ast/transform/decompose_strided_array_test.cc b/src/tint/lang/wgsl/ast/transform/decompose_strided_array_test.cc
index 18a1208..a8a0dce 100644
--- a/src/tint/lang/wgsl/ast/transform/decompose_strided_array_test.cc
+++ b/src/tint/lang/wgsl/ast/transform/decompose_strided_array_test.cc
@@ -21,7 +21,7 @@
#include "src/tint/lang/wgsl/ast/transform/simplify_pointers.h"
#include "src/tint/lang/wgsl/ast/transform/test_helper.h"
#include "src/tint/lang/wgsl/ast/transform/unshadow.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
using namespace tint::number_suffixes; // NOLINT
diff --git a/src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.cc b/src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.cc
index 01f1333f..29321c0 100644
--- a/src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.cc
+++ b/src/tint/lang/wgsl/ast/transform/decompose_strided_matrix.cc
@@ -21,9 +21,9 @@
#include "src/tint/core/hash.h"
#include "src/tint/core/map.h"
#include "src/tint/lang/wgsl/ast/transform/simplify_pointers.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::DecomposeStridedMatrix);
diff --git a/src/tint/lang/wgsl/ast/transform/decompose_strided_matrix_test.cc b/src/tint/lang/wgsl/ast/transform/decompose_strided_matrix_test.cc
index d9dcac7..f58dd44 100644
--- a/src/tint/lang/wgsl/ast/transform/decompose_strided_matrix_test.cc
+++ b/src/tint/lang/wgsl/ast/transform/decompose_strided_matrix_test.cc
@@ -22,7 +22,7 @@
#include "src/tint/lang/wgsl/ast/transform/simplify_pointers.h"
#include "src/tint/lang/wgsl/ast/transform/test_helper.h"
#include "src/tint/lang/wgsl/ast/transform/unshadow.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::ast::transform {
namespace {
diff --git a/src/tint/lang/wgsl/ast/transform/demote_to_helper.cc b/src/tint/lang/wgsl/ast/transform/demote_to_helper.cc
index 915b0c5..b24ac9d4 100644
--- a/src/tint/lang/wgsl/ast/transform/demote_to_helper.cc
+++ b/src/tint/lang/wgsl/ast/transform/demote_to_helper.cc
@@ -21,11 +21,11 @@
#include "src/tint/core/map.h"
#include "src/tint/lang/base/type/reference.h"
#include "src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::DemoteToHelper);
diff --git a/src/tint/lang/wgsl/ast/transform/direct_variable_access.cc b/src/tint/lang/wgsl/ast/transform/direct_variable_access.cc
index 4712540..f75b679 100644
--- a/src/tint/lang/wgsl/ast/transform/direct_variable_access.cc
+++ b/src/tint/lang/wgsl/ast/transform/direct_variable_access.cc
@@ -24,6 +24,7 @@
#include "src/tint/lang/base/type/abstract_int.h"
#include "src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.h"
#include "src/tint/lang/wgsl/ast/traverse_expressions.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/index_accessor_expression.h"
@@ -32,7 +33,6 @@
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/struct.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::DirectVariableAccess);
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::DirectVariableAccess::Config);
diff --git a/src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.cc b/src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.cc
index 0f56865..658b96a 100644
--- a/src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.cc
+++ b/src/tint/lang/wgsl/ast/transform/disable_uniformity_analysis.cc
@@ -16,8 +16,8 @@
#include <utility>
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/module.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::DisableUniformityAnalysis);
diff --git a/src/tint/lang/wgsl/ast/transform/expand_compound_assignment.cc b/src/tint/lang/wgsl/ast/transform/expand_compound_assignment.cc
index 4205f4c..668d9ed 100644
--- a/src/tint/lang/wgsl/ast/transform/expand_compound_assignment.cc
+++ b/src/tint/lang/wgsl/ast/transform/expand_compound_assignment.cc
@@ -19,11 +19,11 @@
#include "src/tint/lang/wgsl/ast/compound_assignment_statement.h"
#include "src/tint/lang/wgsl/ast/increment_decrement_statement.h"
#include "src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/for_loop_statement.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::ExpandCompoundAssignment);
diff --git a/src/tint/lang/wgsl/ast/transform/first_index_offset.cc b/src/tint/lang/wgsl/ast/transform/first_index_offset.cc
index a0354bf..b9a06c5 100644
--- a/src/tint/lang/wgsl/ast/transform/first_index_offset.cc
+++ b/src/tint/lang/wgsl/ast/transform/first_index_offset.cc
@@ -19,11 +19,11 @@
#include <utility>
#include "src/tint/lang/base/builtin/builtin_value.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/struct.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::FirstIndexOffset);
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::FirstIndexOffset::BindingPoint);
diff --git a/src/tint/lang/wgsl/ast/transform/fold_trivial_lets.cc b/src/tint/lang/wgsl/ast/transform/fold_trivial_lets.cc
index 33e821f..ee14120 100644
--- a/src/tint/lang/wgsl/ast/transform/fold_trivial_lets.cc
+++ b/src/tint/lang/wgsl/ast/transform/fold_trivial_lets.cc
@@ -18,8 +18,8 @@
#include "src/tint/core/hashmap.h"
#include "src/tint/lang/wgsl/ast/traverse_expressions.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::FoldTrivialLets);
diff --git a/src/tint/lang/wgsl/ast/transform/for_loop_to_loop.cc b/src/tint/lang/wgsl/ast/transform/for_loop_to_loop.cc
index 830703f..6ccf159 100644
--- a/src/tint/lang/wgsl/ast/transform/for_loop_to_loop.cc
+++ b/src/tint/lang/wgsl/ast/transform/for_loop_to_loop.cc
@@ -17,7 +17,7 @@
#include <utility>
#include "src/tint/lang/wgsl/ast/break_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::ForLoopToLoop);
diff --git a/src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.cc b/src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.cc
index 2c0bef0..66ae68f 100644
--- a/src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.cc
+++ b/src/tint/lang/wgsl/ast/transform/localize_struct_array_assignment.cc
@@ -22,11 +22,11 @@
#include "src/tint/lang/wgsl/ast/assignment_statement.h"
#include "src/tint/lang/wgsl/ast/transform/simplify_pointers.h"
#include "src/tint/lang/wgsl/ast/traverse_expressions.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::LocalizeStructArrayAssignment);
diff --git a/src/tint/lang/wgsl/ast/transform/merge_return.cc b/src/tint/lang/wgsl/ast/transform/merge_return.cc
index 39ea5bf..eaff44f 100644
--- a/src/tint/lang/wgsl/ast/transform/merge_return.cc
+++ b/src/tint/lang/wgsl/ast/transform/merge_return.cc
@@ -17,8 +17,8 @@
#include <utility>
#include "src/tint/core/scoped_assignment.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/statement.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::MergeReturn);
diff --git a/src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.cc b/src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.cc
index 5defe43..20f4159 100644
--- a/src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.cc
+++ b/src/tint/lang/wgsl/ast/transform/module_scope_var_to_entry_point_param.cc
@@ -21,12 +21,12 @@
#include "src/tint/core/string.h"
#include "src/tint/lang/wgsl/ast/disable_validation_attribute.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/module.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::ModuleScopeVarToEntryPointParam);
diff --git a/src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.cc b/src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.cc
index 32794e4..88c7dfc 100644
--- a/src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.cc
+++ b/src/tint/lang/wgsl/ast/transform/multiplanar_external_texture.cc
@@ -19,10 +19,10 @@
#include "src/tint/lang/base/type/texture_dimension.h"
#include "src/tint/lang/wgsl/ast/function.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::MultiplanarExternalTexture);
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::MultiplanarExternalTexture::NewBindingPoints);
diff --git a/src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.cc b/src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.cc
index 5ea00be..70b5540 100644
--- a/src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.cc
+++ b/src/tint/lang/wgsl/ast/transform/num_workgroups_from_uniform.cc
@@ -22,8 +22,8 @@
#include "src/tint/core/hash.h"
#include "src/tint/lang/base/builtin/builtin_value.h"
#include "src/tint/lang/wgsl/ast/transform/canonicalize_entry_point_io.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/function.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::NumWorkgroupsFromUniform);
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::NumWorkgroupsFromUniform::Config);
diff --git a/src/tint/lang/wgsl/ast/transform/packed_vec3.cc b/src/tint/lang/wgsl/ast/transform/packed_vec3.cc
index 56b11ef..acdf0ae 100644
--- a/src/tint/lang/wgsl/ast/transform/packed_vec3.cc
+++ b/src/tint/lang/wgsl/ast/transform/packed_vec3.cc
@@ -26,13 +26,13 @@
#include "src/tint/lang/base/type/reference.h"
#include "src/tint/lang/base/type/vector.h"
#include "src/tint/lang/wgsl/ast/assignment_statement.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/array_count.h"
#include "src/tint/lang/wgsl/sem/index_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/load.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/type_expression.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::PackedVec3);
diff --git a/src/tint/lang/wgsl/ast/transform/packed_vec3_test.cc b/src/tint/lang/wgsl/ast/transform/packed_vec3_test.cc
index 32e6811..2aa532e 100644
--- a/src/tint/lang/wgsl/ast/transform/packed_vec3_test.cc
+++ b/src/tint/lang/wgsl/ast/transform/packed_vec3_test.cc
@@ -22,9 +22,9 @@
#include "src/tint/lang/base/type/array.h"
#include "src/tint/lang/wgsl/ast/module.h"
#include "src/tint/lang/wgsl/ast/transform/test_helper.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/struct.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
namespace tint::ast::transform {
namespace {
diff --git a/src/tint/lang/wgsl/ast/transform/pad_structs.cc b/src/tint/lang/wgsl/ast/transform/pad_structs.cc
index 4e8fdb4..d2fc77d 100644
--- a/src/tint/lang/wgsl/ast/transform/pad_structs.cc
+++ b/src/tint/lang/wgsl/ast/transform/pad_structs.cc
@@ -20,10 +20,10 @@
#include "src/tint/lang/wgsl/ast/disable_validation_attribute.h"
#include "src/tint/lang/wgsl/ast/parameter.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/module.h"
#include "src/tint/lang/wgsl/sem/value_constructor.h"
-#include "src/tint/program_builder.h"
using namespace tint::number_suffixes; // NOLINT
diff --git a/src/tint/lang/wgsl/ast/transform/preserve_padding.cc b/src/tint/lang/wgsl/ast/transform/preserve_padding.cc
index 63e7385..081a0d1 100644
--- a/src/tint/lang/wgsl/ast/transform/preserve_padding.cc
+++ b/src/tint/lang/wgsl/ast/transform/preserve_padding.cc
@@ -20,8 +20,8 @@
#include "src/tint/core/map.h"
#include "src/tint/core/vector.h"
#include "src/tint/lang/base/type/reference.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::PreservePadding);
diff --git a/src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.cc b/src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.cc
index bea224d..1cc9cfd 100644
--- a/src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.cc
+++ b/src/tint/lang/wgsl/ast/transform/promote_initializers_to_let.cc
@@ -20,10 +20,10 @@
#include "src/tint/lang/base/type/struct.h"
#include "src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.h"
#include "src/tint/lang/wgsl/ast/traverse_expressions.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/value_constructor.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::PromoteInitializersToLet);
diff --git a/src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.cc b/src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.cc
index bbb9706..db88cb2 100644
--- a/src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.cc
+++ b/src/tint/lang/wgsl/ast/transform/remove_continue_in_switch.cc
@@ -22,12 +22,12 @@
#include "src/tint/lang/wgsl/ast/continue_statement.h"
#include "src/tint/lang/wgsl/ast/switch_statement.h"
#include "src/tint/lang/wgsl/ast/transform/utils/get_insertion_point.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/for_loop_statement.h"
#include "src/tint/lang/wgsl/sem/loop_statement.h"
#include "src/tint/lang/wgsl/sem/switch_statement.h"
#include "src/tint/lang/wgsl/sem/while_statement.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::RemoveContinueInSwitch);
diff --git a/src/tint/lang/wgsl/ast/transform/remove_phonies.cc b/src/tint/lang/wgsl/ast/transform/remove_phonies.cc
index 39c0c08..576455c 100644
--- a/src/tint/lang/wgsl/ast/transform/remove_phonies.cc
+++ b/src/tint/lang/wgsl/ast/transform/remove_phonies.cc
@@ -22,11 +22,11 @@
#include "src/tint/core/map.h"
#include "src/tint/core/scoped_assignment.h"
#include "src/tint/lang/wgsl/ast/traverse_expressions.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::RemovePhonies);
diff --git a/src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.cc b/src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.cc
index 46c6fa4..7ed7f39 100644
--- a/src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.cc
+++ b/src/tint/lang/wgsl/ast/transform/remove_unreachable_statements.cc
@@ -22,11 +22,11 @@
#include "src/tint/core/map.h"
#include "src/tint/core/scoped_assignment.h"
#include "src/tint/lang/wgsl/ast/traverse_expressions.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::RemoveUnreachableStatements);
diff --git a/src/tint/lang/wgsl/ast/transform/renamer.cc b/src/tint/lang/wgsl/ast/transform/renamer.cc
index 1ac7829..c783ed4 100644
--- a/src/tint/lang/wgsl/ast/transform/renamer.cc
+++ b/src/tint/lang/wgsl/ast/transform/renamer.cc
@@ -18,13 +18,13 @@
#include <utility>
#include "src/tint/core/unicode.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/builtin_enum_expression.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/type_expression.h"
#include "src/tint/lang/wgsl/sem/value_constructor.h"
#include "src/tint/lang/wgsl/sem/value_conversion.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::Renamer);
diff --git a/src/tint/lang/wgsl/ast/transform/robustness.cc b/src/tint/lang/wgsl/ast/transform/robustness.cc
index 42c9a28..f723d66 100644
--- a/src/tint/lang/wgsl/ast/transform/robustness.cc
+++ b/src/tint/lang/wgsl/ast/transform/robustness.cc
@@ -20,6 +20,7 @@
#include "src/tint/lang/base/type/reference.h"
#include "src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/builtin.h"
#include "src/tint/lang/wgsl/sem/call.h"
@@ -29,7 +30,6 @@
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::Robustness);
diff --git a/src/tint/lang/wgsl/ast/transform/simplify_pointers.cc b/src/tint/lang/wgsl/ast/transform/simplify_pointers.cc
index cdb798f..be99841 100644
--- a/src/tint/lang/wgsl/ast/transform/simplify_pointers.cc
+++ b/src/tint/lang/wgsl/ast/transform/simplify_pointers.cc
@@ -20,11 +20,11 @@
#include <vector>
#include "src/tint/lang/wgsl/ast/transform/unshadow.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::SimplifyPointers);
diff --git a/src/tint/lang/wgsl/ast/transform/single_entry_point.cc b/src/tint/lang/wgsl/ast/transform/single_entry_point.cc
index a0d52af..71a7f1b 100644
--- a/src/tint/lang/wgsl/ast/transform/single_entry_point.cc
+++ b/src/tint/lang/wgsl/ast/transform/single_entry_point.cc
@@ -17,9 +17,9 @@
#include <unordered_set>
#include <utility>
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::SingleEntryPoint);
diff --git a/src/tint/lang/wgsl/ast/transform/spirv_atomic.cc b/src/tint/lang/wgsl/ast/transform/spirv_atomic.cc
index 468823a..0fce31c 100644
--- a/src/tint/lang/wgsl/ast/transform/spirv_atomic.cc
+++ b/src/tint/lang/wgsl/ast/transform/spirv_atomic.cc
@@ -23,12 +23,12 @@
#include "src/tint/core/map.h"
#include "src/tint/core/unique_vector.h"
#include "src/tint/lang/base/type/reference.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/index_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/statement.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::SpirvAtomic);
diff --git a/src/tint/lang/wgsl/ast/transform/std140.cc b/src/tint/lang/wgsl/ast/transform/std140.cc
index 7350ce1..7c4467c 100644
--- a/src/tint/lang/wgsl/ast/transform/std140.cc
+++ b/src/tint/lang/wgsl/ast/transform/std140.cc
@@ -22,12 +22,12 @@
#include "src/tint/core/compiler_macros.h"
#include "src/tint/core/hashmap.h"
#include "src/tint/core/transform.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/index_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/module.h"
#include "src/tint/lang/wgsl/sem/struct.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::Std140);
diff --git a/src/tint/lang/wgsl/ast/transform/substitute_override.cc b/src/tint/lang/wgsl/ast/transform/substitute_override.cc
index fbe5ceb..a440e6f 100644
--- a/src/tint/lang/wgsl/ast/transform/substitute_override.cc
+++ b/src/tint/lang/wgsl/ast/transform/substitute_override.cc
@@ -18,10 +18,10 @@
#include <utility>
#include "src/tint/lang/base/builtin/function.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/builtin.h"
#include "src/tint/lang/wgsl/sem/index_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::SubstituteOverride);
diff --git a/src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.cc b/src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.cc
index 3435370..9b853cc 100644
--- a/src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.cc
+++ b/src/tint/lang/wgsl/ast/transform/texture_1d_to_2d.cc
@@ -17,10 +17,10 @@
#include <utility>
#include "src/tint/lang/base/type/texture_dimension.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/type_expression.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::Texture1DTo2D);
diff --git a/src/tint/lang/wgsl/ast/transform/transform.cc b/src/tint/lang/wgsl/ast/transform/transform.cc
index 30085a1..0caa4d7 100644
--- a/src/tint/lang/wgsl/ast/transform/transform.cc
+++ b/src/tint/lang/wgsl/ast/transform/transform.cc
@@ -22,10 +22,10 @@
#include "src/tint/lang/base/type/depth_multisampled_texture.h"
#include "src/tint/lang/base/type/reference.h"
#include "src/tint/lang/base/type/sampler.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/for_loop_statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::Transform);
diff --git a/src/tint/lang/wgsl/ast/transform/transform.h b/src/tint/lang/wgsl/ast/transform/transform.h
index 3093486..3f6d502 100644
--- a/src/tint/lang/wgsl/ast/transform/transform.h
+++ b/src/tint/lang/wgsl/ast/transform/transform.h
@@ -20,7 +20,7 @@
#include <utility>
#include "src/tint/core/castable.h"
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::ast::transform {
diff --git a/src/tint/lang/wgsl/ast/transform/transform_test.cc b/src/tint/lang/wgsl/ast/transform/transform_test.cc
index 3c24b35..7a18864 100644
--- a/src/tint/lang/wgsl/ast/transform/transform_test.cc
+++ b/src/tint/lang/wgsl/ast/transform/transform_test.cc
@@ -17,7 +17,7 @@
#include "src/tint/clone_context.h"
#include "src/tint/lang/wgsl/ast/test_helper.h"
#include "src/tint/lang/wgsl/ast/transform/transform.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "gtest/gtest.h"
diff --git a/src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.cc b/src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.cc
index 3f8bf66..daebadc 100644
--- a/src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.cc
+++ b/src/tint/lang/wgsl/ast/transform/truncate_interstage_variables.cc
@@ -19,12 +19,12 @@
#include <utility>
#include "src/tint/core/unicode.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::TruncateInterstageVariables);
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::TruncateInterstageVariables::Config);
diff --git a/src/tint/lang/wgsl/ast/transform/unshadow.cc b/src/tint/lang/wgsl/ast/transform/unshadow.cc
index 9252b5d..afe1bbb 100644
--- a/src/tint/lang/wgsl/ast/transform/unshadow.cc
+++ b/src/tint/lang/wgsl/ast/transform/unshadow.cc
@@ -18,11 +18,11 @@
#include <unordered_map>
#include <utility>
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::Unshadow);
diff --git a/src/tint/lang/wgsl/ast/transform/utils/get_insertion_point.h b/src/tint/lang/wgsl/ast/transform/utils/get_insertion_point.h
index 806f17e..1614854 100644
--- a/src/tint/lang/wgsl/ast/transform/utils/get_insertion_point.h
+++ b/src/tint/lang/wgsl/ast/transform/utils/get_insertion_point.h
@@ -17,8 +17,8 @@
#include <utility>
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
-#include "src/tint/program_builder.h"
namespace tint::ast::transform::utils {
diff --git a/src/tint/lang/wgsl/ast/transform/utils/get_insertion_point_test.cc b/src/tint/lang/wgsl/ast/transform/utils/get_insertion_point_test.cc
index 8ec261e..869bc3a 100644
--- a/src/tint/lang/wgsl/ast/transform/utils/get_insertion_point_test.cc
+++ b/src/tint/lang/wgsl/ast/transform/utils/get_insertion_point_test.cc
@@ -18,7 +18,7 @@
#include "src/tint/debug.h"
#include "src/tint/lang/wgsl/ast/transform/test_helper.h"
#include "src/tint/lang/wgsl/ast/transform/utils/get_insertion_point.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
using namespace tint::number_suffixes; // NOLINT
diff --git a/src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.cc b/src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.cc
index c4a87eb..a31d7c8 100644
--- a/src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.cc
+++ b/src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.cc
@@ -20,12 +20,12 @@
#include "src/tint/core/reverse.h"
#include "src/tint/core/transform.h"
#include "src/tint/lang/base/type/reference.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/for_loop_statement.h"
#include "src/tint/lang/wgsl/sem/if_statement.h"
#include "src/tint/lang/wgsl/sem/variable.h"
#include "src/tint/lang/wgsl/sem/while_statement.h"
-#include "src/tint/program_builder.h"
namespace tint::ast::transform {
diff --git a/src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before_test.cc b/src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before_test.cc
index 07e5c82..3d9bd4a 100644
--- a/src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before_test.cc
+++ b/src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before_test.cc
@@ -17,10 +17,10 @@
#include "gtest/gtest-spi.h"
#include "src/tint/lang/wgsl/ast/transform/test_helper.h"
#include "src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/if_statement.h"
#include "src/tint/lang/wgsl/sem/index_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/statement.h"
-#include "src/tint/program_builder.h"
using namespace tint::number_suffixes; // NOLINT
diff --git a/src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.cc b/src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.cc
index d3302d9..e985fcd 100644
--- a/src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.cc
+++ b/src/tint/lang/wgsl/ast/transform/var_for_dynamic_index.cc
@@ -17,7 +17,7 @@
#include <utility>
#include "src/tint/lang/wgsl/ast/transform/utils/hoist_to_decl_before.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::VarForDynamicIndex);
diff --git a/src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.cc b/src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.cc
index 5f1b475..e0e51b2 100644
--- a/src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.cc
+++ b/src/tint/lang/wgsl/ast/transform/vectorize_matrix_conversions.cc
@@ -21,10 +21,10 @@
#include "src/tint/core/hash.h"
#include "src/tint/core/map.h"
#include "src/tint/lang/base/type/abstract_numeric.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/value_conversion.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::VectorizeMatrixConversions);
diff --git a/src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.cc b/src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.cc
index 9f4c7e5..a82ef54 100644
--- a/src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.cc
+++ b/src/tint/lang/wgsl/ast/transform/vectorize_scalar_matrix_initializers.cc
@@ -19,10 +19,10 @@
#include "src/tint/core/map.h"
#include "src/tint/lang/base/type/abstract_numeric.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/call.h"
#include "src/tint/lang/wgsl/sem/value_constructor.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::VectorizeScalarMatrixInitializers);
diff --git a/src/tint/lang/wgsl/ast/transform/vertex_pulling.cc b/src/tint/lang/wgsl/ast/transform/vertex_pulling.cc
index f7e0d3b..f07eb66 100644
--- a/src/tint/lang/wgsl/ast/transform/vertex_pulling.cc
+++ b/src/tint/lang/wgsl/ast/transform/vertex_pulling.cc
@@ -25,8 +25,8 @@
#include "src/tint/lang/wgsl/ast/assignment_statement.h"
#include "src/tint/lang/wgsl/ast/bitcast_expression.h"
#include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::VertexPulling);
diff --git a/src/tint/lang/wgsl/ast/transform/while_to_loop.cc b/src/tint/lang/wgsl/ast/transform/while_to_loop.cc
index 8f85172..5db8f1e 100644
--- a/src/tint/lang/wgsl/ast/transform/while_to_loop.cc
+++ b/src/tint/lang/wgsl/ast/transform/while_to_loop.cc
@@ -17,7 +17,7 @@
#include <utility>
#include "src/tint/lang/wgsl/ast/break_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::WhileToLoop);
diff --git a/src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.cc b/src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.cc
index d429119..1f2bbc3 100644
--- a/src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.cc
+++ b/src/tint/lang/wgsl/ast/transform/zero_init_workgroup_memory.cc
@@ -25,9 +25,9 @@
#include "src/tint/lang/base/builtin/builtin_value.h"
#include "src/tint/lang/base/type/atomic.h"
#include "src/tint/lang/wgsl/ast/workgroup_attribute.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::transform::ZeroInitWorkgroupMemory);
diff --git a/src/tint/lang/wgsl/ast/unary_op_expression.cc b/src/tint/lang/wgsl/ast/unary_op_expression.cc
index 2f795c4..15af482 100644
--- a/src/tint/lang/wgsl/ast/unary_op_expression.cc
+++ b/src/tint/lang/wgsl/ast/unary_op_expression.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/unary_op_expression.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::UnaryOpExpression);
diff --git a/src/tint/lang/wgsl/ast/var.cc b/src/tint/lang/wgsl/ast/var.cc
index 6f3faca..f86e88d 100644
--- a/src/tint/lang/wgsl/ast/var.cc
+++ b/src/tint/lang/wgsl/ast/var.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/var.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::Var);
diff --git a/src/tint/lang/wgsl/ast/variable_decl_statement.cc b/src/tint/lang/wgsl/ast/variable_decl_statement.cc
index d83b87b..d2cc633 100644
--- a/src/tint/lang/wgsl/ast/variable_decl_statement.cc
+++ b/src/tint/lang/wgsl/ast/variable_decl_statement.cc
@@ -14,7 +14,7 @@
#include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::VariableDeclStatement);
diff --git a/src/tint/lang/wgsl/ast/while_statement.cc b/src/tint/lang/wgsl/ast/while_statement.cc
index dec91ac..ac1bd0a 100644
--- a/src/tint/lang/wgsl/ast/while_statement.cc
+++ b/src/tint/lang/wgsl/ast/while_statement.cc
@@ -16,7 +16,7 @@
#include <utility>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::WhileStatement);
diff --git a/src/tint/lang/wgsl/ast/workgroup_attribute.cc b/src/tint/lang/wgsl/ast/workgroup_attribute.cc
index 936f8e4..a0747d0 100644
--- a/src/tint/lang/wgsl/ast/workgroup_attribute.cc
+++ b/src/tint/lang/wgsl/ast/workgroup_attribute.cc
@@ -16,7 +16,7 @@
#include <string>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::WorkgroupAttribute);
diff --git a/src/tint/lang/wgsl/ast_writer/generator_impl.h b/src/tint/lang/wgsl/ast_writer/generator_impl.h
index c21b4ec..eaa377b 100644
--- a/src/tint/lang/wgsl/ast_writer/generator_impl.h
+++ b/src/tint/lang/wgsl/ast_writer/generator_impl.h
@@ -34,8 +34,8 @@
#include "src/tint/lang/wgsl/ast/return_statement.h"
#include "src/tint/lang/wgsl/ast/switch_statement.h"
#include "src/tint/lang/wgsl/ast/unary_op_expression.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/program.h"
#include "src/tint/writer/ast_text_generator.h"
namespace tint::writer::wgsl {
diff --git a/src/tint/lang/wgsl/ast_writer/test_helper.h b/src/tint/lang/wgsl/ast_writer/test_helper.h
index a2f4d4d..95173aa 100644
--- a/src/tint/lang/wgsl/ast_writer/test_helper.h
+++ b/src/tint/lang/wgsl/ast_writer/test_helper.h
@@ -20,7 +20,7 @@
#include "gtest/gtest.h"
#include "src/tint/lang/wgsl/ast_writer/generator_impl.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::writer::wgsl {
diff --git a/src/tint/lang/wgsl/helpers/append_vector.h b/src/tint/lang/wgsl/helpers/append_vector.h
index 8391b60..3a73fc2 100644
--- a/src/tint/lang/wgsl/helpers/append_vector.h
+++ b/src/tint/lang/wgsl/helpers/append_vector.h
@@ -15,7 +15,7 @@
#ifndef SRC_TINT_LANG_WGSL_HELPERS_APPEND_VECTOR_H_
#define SRC_TINT_LANG_WGSL_HELPERS_APPEND_VECTOR_H_
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
// Forward declarations
namespace tint::ast {
diff --git a/src/tint/lang/wgsl/helpers/append_vector_test.cc b/src/tint/lang/wgsl/helpers/append_vector_test.cc
index 1c77b0a..8b754aa 100644
--- a/src/tint/lang/wgsl/helpers/append_vector_test.cc
+++ b/src/tint/lang/wgsl/helpers/append_vector_test.cc
@@ -14,8 +14,8 @@
#include "src/tint/lang/wgsl/helpers/append_vector.h"
#include "src/tint/lang/wgsl/ast/test_helper.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/value_constructor.h"
-#include "src/tint/program_builder.h"
#include "src/tint/resolver/resolver.h"
#include "gmock/gmock.h"
diff --git a/src/tint/lang/wgsl/helpers/check_supported_extensions_test.cc b/src/tint/lang/wgsl/helpers/check_supported_extensions_test.cc
index 90904bd..e5fe1d4 100644
--- a/src/tint/lang/wgsl/helpers/check_supported_extensions_test.cc
+++ b/src/tint/lang/wgsl/helpers/check_supported_extensions_test.cc
@@ -16,7 +16,7 @@
#include "gtest/gtest.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::writer {
namespace {
diff --git a/src/tint/lang/wgsl/helpers/flatten_bindings.h b/src/tint/lang/wgsl/helpers/flatten_bindings.h
index 073e918..99d75e0 100644
--- a/src/tint/lang/wgsl/helpers/flatten_bindings.h
+++ b/src/tint/lang/wgsl/helpers/flatten_bindings.h
@@ -16,7 +16,7 @@
#define SRC_TINT_LANG_WGSL_HELPERS_FLATTEN_BINDINGS_H_
#include <optional>
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::writer {
diff --git a/src/tint/lang/wgsl/helpers/flatten_bindings_test.cc b/src/tint/lang/wgsl/helpers/flatten_bindings_test.cc
index cae7066..4789a3d 100644
--- a/src/tint/lang/wgsl/helpers/flatten_bindings_test.cc
+++ b/src/tint/lang/wgsl/helpers/flatten_bindings_test.cc
@@ -18,8 +18,8 @@
#include "gtest/gtest.h"
#include "src/tint/lang/base/type/texture_dimension.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
namespace tint::writer {
namespace {
diff --git a/src/tint/lang/wgsl/inspector/inspector.h b/src/tint/lang/wgsl/inspector/inspector.h
index ffb3237..22cdf50 100644
--- a/src/tint/lang/wgsl/inspector/inspector.h
+++ b/src/tint/lang/wgsl/inspector/inspector.h
@@ -30,8 +30,8 @@
#include "src/tint/lang/wgsl/inspector/entry_point.h"
#include "src/tint/lang/wgsl/inspector/resource_binding.h"
#include "src/tint/lang/wgsl/inspector/scalar.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/sampler_texture_pair.h"
-#include "src/tint/program.h"
namespace tint::inspector {
diff --git a/src/tint/lang/wgsl/inspector/inspector_test.cc b/src/tint/lang/wgsl/inspector/inspector_test.cc
index 9e956c4..95199ef 100644
--- a/src/tint/lang/wgsl/inspector/inspector_test.cc
+++ b/src/tint/lang/wgsl/inspector/inspector_test.cc
@@ -26,8 +26,8 @@
#include "src/tint/lang/wgsl/ast/workgroup_attribute.h"
#include "src/tint/lang/wgsl/inspector/test_inspector_builder.h"
#include "src/tint/lang/wgsl/inspector/test_inspector_runner.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "tint/tint.h"
using namespace tint::number_suffixes; // NOLINT
diff --git a/src/tint/lang/wgsl/inspector/test_inspector_builder.h b/src/tint/lang/wgsl/inspector/test_inspector_builder.h
index 7eb2a03..33a6bb4 100644
--- a/src/tint/lang/wgsl/inspector/test_inspector_builder.h
+++ b/src/tint/lang/wgsl/inspector/test_inspector_builder.h
@@ -30,8 +30,8 @@
#include "src/tint/lang/wgsl/ast/id_attribute.h"
#include "src/tint/lang/wgsl/ast/stage_attribute.h"
#include "src/tint/lang/wgsl/ast/workgroup_attribute.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "tint/tint.h"
namespace tint::inspector {
diff --git a/src/tint/program.cc b/src/tint/lang/wgsl/program/program.cc
similarity index 98%
rename from src/tint/program.cc
rename to src/tint/lang/wgsl/program/program.cc
index f08e09b..a563784 100644
--- a/src/tint/program.cc
+++ b/src/tint/lang/wgsl/program/program.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include <utility>
diff --git a/src/tint/program.h b/src/tint/lang/wgsl/program/program.h
similarity index 97%
rename from src/tint/program.h
rename to src/tint/lang/wgsl/program/program.h
index 5cee7e2..fc5c281 100644
--- a/src/tint/program.h
+++ b/src/tint/lang/wgsl/program/program.h
@@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef SRC_TINT_PROGRAM_H_
-#define SRC_TINT_PROGRAM_H_
+#ifndef SRC_TINT_LANG_WGSL_PROGRAM_PROGRAM_H_
+#define SRC_TINT_LANG_WGSL_PROGRAM_PROGRAM_H_
#include <string>
#include <unordered_set>
@@ -187,4 +187,4 @@
} // namespace tint
-#endif // SRC_TINT_PROGRAM_H_
+#endif // SRC_TINT_LANG_WGSL_PROGRAM_PROGRAM_H_
diff --git a/src/tint/program_builder.cc b/src/tint/lang/wgsl/program/program_builder.cc
similarity index 98%
rename from src/tint/program_builder.cc
rename to src/tint/lang/wgsl/program/program_builder.cc
index ccbc3ef..7bde46e 100644
--- a/src/tint/program_builder.cc
+++ b/src/tint/lang/wgsl/program/program_builder.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/core/compiler_macros.h"
#include "src/tint/debug.h"
diff --git a/src/tint/program_builder.h b/src/tint/lang/wgsl/program/program_builder.h
similarity index 99%
rename from src/tint/program_builder.h
rename to src/tint/lang/wgsl/program/program_builder.h
index fd05186..5c16a4c 100644
--- a/src/tint/program_builder.h
+++ b/src/tint/lang/wgsl/program/program_builder.h
@@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef SRC_TINT_PROGRAM_BUILDER_H_
-#define SRC_TINT_PROGRAM_BUILDER_H_
+#ifndef SRC_TINT_LANG_WGSL_PROGRAM_PROGRAM_BUILDER_H_
+#define SRC_TINT_LANG_WGSL_PROGRAM_PROGRAM_BUILDER_H_
#include <string>
#include <unordered_set>
@@ -100,9 +100,9 @@
#include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
#include "src/tint/lang/wgsl/ast/while_statement.h"
#include "src/tint/lang/wgsl/ast/workgroup_attribute.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/array_count.h"
#include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/program.h"
#include "src/tint/program_id.h"
#ifdef CURRENTLY_IN_TINT_PUBLIC_HEADER
@@ -3706,4 +3706,4 @@
} // namespace tint
-#endif // SRC_TINT_PROGRAM_BUILDER_H_
+#endif // SRC_TINT_LANG_WGSL_PROGRAM_PROGRAM_BUILDER_H_
diff --git a/src/tint/program_builder_test.cc b/src/tint/lang/wgsl/program/program_builder_test.cc
similarity index 97%
rename from src/tint/program_builder_test.cc
rename to src/tint/lang/wgsl/program/program_builder_test.cc
index 2733816..b887ff6 100644
--- a/src/tint/program_builder_test.cc
+++ b/src/tint/lang/wgsl/program/program_builder_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "gtest/gtest.h"
diff --git a/src/tint/program_test.cc b/src/tint/lang/wgsl/program/program_test.cc
similarity index 100%
rename from src/tint/program_test.cc
rename to src/tint/lang/wgsl/program/program_test.cc
diff --git a/src/tint/lang/wgsl/reader/parser.h b/src/tint/lang/wgsl/reader/parser.h
index 7fe1bed..14bc7ba 100644
--- a/src/tint/lang/wgsl/reader/parser.h
+++ b/src/tint/lang/wgsl/reader/parser.h
@@ -15,7 +15,7 @@
#ifndef SRC_TINT_LANG_WGSL_READER_PARSER_H_
#define SRC_TINT_LANG_WGSL_READER_PARSER_H_
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::reader::wgsl {
diff --git a/src/tint/lang/wgsl/reader/parser_impl.h b/src/tint/lang/wgsl/reader/parser_impl.h
index 3dc4092..c642eef 100644
--- a/src/tint/lang/wgsl/reader/parser_impl.h
+++ b/src/tint/lang/wgsl/reader/parser_impl.h
@@ -23,9 +23,9 @@
#include <vector>
#include "src/tint/lang/base/builtin/access.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/reader/parser_impl_detail.h"
#include "src/tint/lang/wgsl/reader/token.h"
-#include "src/tint/program_builder.h"
namespace tint::ast {
class BreakStatement;
diff --git a/src/tint/lang/wgsl/sem/test_helper.h b/src/tint/lang/wgsl/sem/test_helper.h
index ddafbfe..2c80446 100644
--- a/src/tint/lang/wgsl/sem/test_helper.h
+++ b/src/tint/lang/wgsl/sem/test_helper.h
@@ -18,7 +18,7 @@
#include <utility>
#include "gtest/gtest.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint::sem {
diff --git a/src/tint/lang/wgsl/syntax_tree_writer/generator_impl.h b/src/tint/lang/wgsl/syntax_tree_writer/generator_impl.h
index 8fa4558..8bfe646 100644
--- a/src/tint/lang/wgsl/syntax_tree_writer/generator_impl.h
+++ b/src/tint/lang/wgsl/syntax_tree_writer/generator_impl.h
@@ -34,8 +34,8 @@
#include "src/tint/lang/wgsl/ast/return_statement.h"
#include "src/tint/lang/wgsl/ast/switch_statement.h"
#include "src/tint/lang/wgsl/ast/unary_op_expression.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/program.h"
#include "src/tint/writer/ast_text_generator.h"
namespace tint::writer::syntax_tree {
diff --git a/src/tint/reader/reader.h b/src/tint/reader/reader.h
index 8ba0a89..b9cdc87 100644
--- a/src/tint/reader/reader.h
+++ b/src/tint/reader/reader.h
@@ -17,7 +17,7 @@
#include <string>
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::reader {
diff --git a/src/tint/resolver/const_eval.cc b/src/tint/resolver/const_eval.cc
index c79097b..11c6057 100644
--- a/src/tint/resolver/const_eval.cc
+++ b/src/tint/resolver/const_eval.cc
@@ -43,9 +43,9 @@
#include "src/tint/lang/base/type/struct.h"
#include "src/tint/lang/base/type/u32.h"
#include "src/tint/lang/base/type/vector.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/member_accessor_expression.h"
#include "src/tint/lang/wgsl/sem/value_constructor.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
using namespace tint::number_suffixes; // NOLINT
diff --git a/src/tint/resolver/intrinsic_table.cc b/src/tint/resolver/intrinsic_table.cc
index f5fef8c..934360c 100644
--- a/src/tint/resolver/intrinsic_table.cc
+++ b/src/tint/resolver/intrinsic_table.cc
@@ -36,11 +36,11 @@
#include "src/tint/lang/base/type/storage_texture.h"
#include "src/tint/lang/base/type/texture_dimension.h"
#include "src/tint/lang/wgsl/ast/binary_expression.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/evaluation_stage.h"
#include "src/tint/lang/wgsl/sem/pipeline_stage_set.h"
#include "src/tint/lang/wgsl/sem/value_constructor.h"
#include "src/tint/lang/wgsl/sem/value_conversion.h"
-#include "src/tint/program_builder.h"
#include "src/tint/switch.h"
namespace tint::resolver {
diff --git a/src/tint/resolver/intrinsic_table_test.cc b/src/tint/resolver/intrinsic_table_test.cc
index 8e66873..7d6e69f 100644
--- a/src/tint/resolver/intrinsic_table_test.cc
+++ b/src/tint/resolver/intrinsic_table_test.cc
@@ -27,9 +27,9 @@
#include "src/tint/lang/base/type/storage_texture.h"
#include "src/tint/lang/base/type/test_helper.h"
#include "src/tint/lang/base/type/texture_dimension.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/value_constructor.h"
#include "src/tint/lang/wgsl/sem/value_conversion.h"
-#include "src/tint/program_builder.h"
#include "src/tint/resolver/resolver_test_helper.h"
namespace tint::resolver {
diff --git a/src/tint/resolver/resolver.h b/src/tint/resolver/resolver.h
index 4260f04..08d4ae7 100644
--- a/src/tint/resolver/resolver.h
+++ b/src/tint/resolver/resolver.h
@@ -26,11 +26,11 @@
#include "src/tint/core/bitset.h"
#include "src/tint/core/unique_vector.h"
#include "src/tint/lang/base/constant/value.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/binding_point.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/function.h"
#include "src/tint/lang/wgsl/sem/struct.h"
-#include "src/tint/program_builder.h"
#include "src/tint/resolver/const_eval.h"
#include "src/tint/resolver/dependency_graph.h"
#include "src/tint/resolver/intrinsic_table.h"
diff --git a/src/tint/resolver/resolver_test_helper.h b/src/tint/resolver/resolver_test_helper.h
index cd21dfa..2ffe23e 100644
--- a/src/tint/resolver/resolver_test_helper.h
+++ b/src/tint/resolver/resolver_test_helper.h
@@ -28,10 +28,10 @@
#include "src/tint/core/vector.h"
#include "src/tint/lang/base/type/abstract_float.h"
#include "src/tint/lang/base/type/abstract_int.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/statement.h"
#include "src/tint/lang/wgsl/sem/value_expression.h"
#include "src/tint/lang/wgsl/sem/variable.h"
-#include "src/tint/program_builder.h"
#include "src/tint/resolver/resolver.h"
namespace tint::resolver {
diff --git a/src/tint/resolver/sem_helper.h b/src/tint/resolver/sem_helper.h
index a33b057..ba59ae4 100644
--- a/src/tint/resolver/sem_helper.h
+++ b/src/tint/resolver/sem_helper.h
@@ -22,10 +22,10 @@
#include "src/tint/lang/base/builtin/builtin_value.h"
#include "src/tint/lang/base/builtin/interpolation_sampling.h"
#include "src/tint/lang/base/builtin/interpolation_type.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/builtin_enum_expression.h"
#include "src/tint/lang/wgsl/sem/function_expression.h"
#include "src/tint/lang/wgsl/sem/type_expression.h"
-#include "src/tint/program_builder.h"
#include "src/tint/resolver/dependency_graph.h"
namespace tint::resolver {
diff --git a/src/tint/resolver/uniformity.cc b/src/tint/resolver/uniformity.cc
index 66b5c76..46391b7 100644
--- a/src/tint/resolver/uniformity.cc
+++ b/src/tint/resolver/uniformity.cc
@@ -25,6 +25,7 @@
#include "src/tint/core/string_stream.h"
#include "src/tint/core/unique_vector.h"
#include "src/tint/lang/base/builtin/builtin_value.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/block_statement.h"
#include "src/tint/lang/wgsl/sem/builtin.h"
#include "src/tint/lang/wgsl/sem/for_loop_statement.h"
@@ -39,7 +40,6 @@
#include "src/tint/lang/wgsl/sem/value_conversion.h"
#include "src/tint/lang/wgsl/sem/variable.h"
#include "src/tint/lang/wgsl/sem/while_statement.h"
-#include "src/tint/program_builder.h"
#include "src/tint/resolver/dependency_graph.h"
#include "src/tint/scope_stack.h"
#include "src/tint/switch.h"
diff --git a/src/tint/resolver/uniformity_test.cc b/src/tint/resolver/uniformity_test.cc
index 2e5b7b0..1ae0450 100644
--- a/src/tint/resolver/uniformity_test.cc
+++ b/src/tint/resolver/uniformity_test.cc
@@ -18,8 +18,8 @@
#include <utility>
#include "src/tint/core/string_stream.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/reader/parser.h"
-#include "src/tint/program_builder.h"
#include "src/tint/resolver/uniformity.h"
#include "gmock/gmock.h"
diff --git a/src/tint/resolver/validator.h b/src/tint/resolver/validator.h
index 80425ea..5082e50 100644
--- a/src/tint/resolver/validator.h
+++ b/src/tint/resolver/validator.h
@@ -23,8 +23,8 @@
#include "src/tint/core/hashmap.h"
#include "src/tint/core/vector.h"
#include "src/tint/lang/wgsl/ast/pipeline_stage.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/evaluation_stage.h"
-#include "src/tint/program_builder.h"
#include "src/tint/resolver/sem_helper.h"
#include "src/tint/scope_stack.h"
#include "src/tint/source.h"
diff --git a/src/tint/scope_stack_test.cc b/src/tint/scope_stack_test.cc
index f899e51..4bb88ef 100644
--- a/src/tint/scope_stack_test.cc
+++ b/src/tint/scope_stack_test.cc
@@ -14,7 +14,7 @@
#include "src/tint/scope_stack.h"
#include "gtest/gtest.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
namespace tint {
namespace {
diff --git a/src/tint/test_main.cc b/src/tint/test_main.cc
index ad6c459..198613a 100644
--- a/src/tint/test_main.cc
+++ b/src/tint/test_main.cc
@@ -13,7 +13,7 @@
// limitations under the License.
#include "gmock/gmock.h"
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "tint/tint.h"
#if TINT_BUILD_SPV_READER
diff --git a/src/tint/transform/manager.cc b/src/tint/transform/manager.cc
index dea62c9..d5bea15 100644
--- a/src/tint/transform/manager.cc
+++ b/src/tint/transform/manager.cc
@@ -15,7 +15,7 @@
#include "src/tint/transform/manager.h"
#include "src/tint/lang/wgsl/ast/transform/transform.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#if TINT_BUILD_IR
#include "src/tint/ir/from_program.h"
diff --git a/src/tint/transform/manager.h b/src/tint/transform/manager.h
index 289a16d..7208151 100644
--- a/src/tint/transform/manager.h
+++ b/src/tint/transform/manager.h
@@ -19,7 +19,7 @@
#include <utility>
#include <vector>
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/transform/transform.h"
#if TINT_BUILD_IR
diff --git a/src/tint/transform/manager_test.cc b/src/tint/transform/manager_test.cc
index ba60ebc..66e7be4 100644
--- a/src/tint/transform/manager_test.cc
+++ b/src/tint/transform/manager_test.cc
@@ -18,7 +18,7 @@
#include "gtest/gtest.h"
#include "src/tint/lang/wgsl/ast/transform/transform.h"
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#if TINT_BUILD_IR
#include "src/tint/ir/builder.h" // nogncheck
diff --git a/src/tint/val/msl.cc b/src/tint/val/msl.cc
index 416df27..66cdd00 100644
--- a/src/tint/val/msl.cc
+++ b/src/tint/val/msl.cc
@@ -17,7 +17,7 @@
#include "src/tint/core/io/command.h"
#include "src/tint/core/io/tmpfile.h"
#include "src/tint/lang/wgsl/ast/module.h"
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
namespace tint::val {
diff --git a/src/tint/writer/ast_text_generator.h b/src/tint/writer/ast_text_generator.h
index d385e33..8a8608b 100644
--- a/src/tint/writer/ast_text_generator.h
+++ b/src/tint/writer/ast_text_generator.h
@@ -20,7 +20,7 @@
#include <utility>
#include <vector>
-#include "src/tint/program_builder.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/writer/text_generator.h"
namespace tint::writer {
diff --git a/src/tint/writer/spirv/builder.h b/src/tint/writer/spirv/builder.h
index 0cc74c4..281b6b4 100644
--- a/src/tint/writer/spirv/builder.h
+++ b/src/tint/writer/spirv/builder.h
@@ -36,8 +36,8 @@
#include "src/tint/lang/wgsl/ast/switch_statement.h"
#include "src/tint/lang/wgsl/ast/unary_op_expression.h"
#include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
+#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/sem/builtin.h"
-#include "src/tint/program_builder.h"
#include "src/tint/scope_stack.h"
#include "src/tint/writer/spirv/function.h"
#include "src/tint/writer/spirv/module.h"
diff --git a/src/tint/writer/spirv/builder_entry_point_test.cc b/src/tint/writer/spirv/builder_entry_point_test.cc
index cae041f..d179a6d 100644
--- a/src/tint/writer/spirv/builder_entry_point_test.cc
+++ b/src/tint/writer/spirv/builder_entry_point_test.cc
@@ -24,7 +24,7 @@
#include "src/tint/lang/wgsl/ast/return_statement.h"
#include "src/tint/lang/wgsl/ast/stage_attribute.h"
#include "src/tint/lang/wgsl/ast/variable.h"
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/writer/spirv/builder.h"
#include "src/tint/writer/spirv/spv_dump.h"
#include "src/tint/writer/spirv/test_helper.h"
diff --git a/src/tint/writer/spirv/generator_impl.h b/src/tint/writer/spirv/generator_impl.h
index 52b7bc4..f900a75 100644
--- a/src/tint/writer/spirv/generator_impl.h
+++ b/src/tint/writer/spirv/generator_impl.h
@@ -18,7 +18,7 @@
#include <string>
#include <vector>
-#include "src/tint/program.h"
+#include "src/tint/lang/wgsl/program/program.h"
#include "src/tint/writer/spirv/binary_writer.h"
#include "src/tint/writer/spirv/builder.h"
#include "src/tint/writer/spirv/generator.h"