Move src/benchmark to src/bench

The current directory and namespace collides quite spectacularly with
the google benchmark include directory and namespace.
This becomes very hard to work around when there's a .cc file in src/
that wants to include "benchmark/benchmark.h", as MSVC appears to
resolve this to the relative path, while GCC and Clang resolve to the
compiler specified include directory.

Bug: tint:1383
Change-Id: Icc8891718d1d8a1b55c2ac4b2bb1487e8d09e629
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/78740
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index cd9ef81..a1f974f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1160,7 +1160,7 @@
   endif()
 
   set(TINT_BENCHMARK_SRC
-    "benchmark/benchmark.cc"
+    "bench/benchmark.cc"
     "reader/wgsl/parser_bench.cc"
   )
 
diff --git a/src/benchmark/benchmark.cc b/src/bench/benchmark.cc
similarity index 89%
rename from src/benchmark/benchmark.cc
rename to src/bench/benchmark.cc
index 813af84..c33f94e 100644
--- a/src/benchmark/benchmark.cc
+++ b/src/bench/benchmark.cc
@@ -12,14 +12,14 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "src/benchmark/benchmark.h"
+#include "src/bench/benchmark.h"
 
 #include <filesystem>
 #include <sstream>
 #include <utility>
 #include <vector>
 
-namespace tint::benchmark {
+namespace tint::bench {
 namespace {
 
 std::filesystem::path kInputFileDir;
@@ -96,8 +96,8 @@
 }
 
 std::variant<ProgramAndFile, Error> LoadProgram(std::string name) {
-  auto res = benchmark::LoadInputFile(name);
-  if (auto err = std::get_if<benchmark::Error>(&res)) {
+  auto res = bench::LoadInputFile(name);
+  if (auto err = std::get_if<bench::Error>(&res)) {
     return *err;
   }
   auto& file = std::get<Source::File>(res);
@@ -108,16 +108,16 @@
   return ProgramAndFile{std::move(program), std::move(file)};
 }
 
-}  // namespace tint::benchmark
+}  // namespace tint::bench
 
 int main(int argc, char** argv) {
-  ::benchmark::Initialize(&argc, argv);
-  if (::benchmark::ReportUnrecognizedArguments(argc, argv)) {
+  benchmark::Initialize(&argc, argv);
+  if (benchmark::ReportUnrecognizedArguments(argc, argv)) {
     return 1;
   }
-  if (!tint::benchmark::FindBenchmarkInputDir()) {
+  if (!tint::bench::FindBenchmarkInputDir()) {
     std::cerr << "failed to locate benchmark input files" << std::endl;
     return 1;
   }
-  ::benchmark::RunSpecifiedBenchmarks();
+  benchmark::RunSpecifiedBenchmarks();
 }
diff --git a/src/benchmark/benchmark.h b/src/bench/benchmark.h
similarity index 94%
rename from src/benchmark/benchmark.h
rename to src/bench/benchmark.h
index 0d3c764..91bd631 100644
--- a/src/benchmark/benchmark.h
+++ b/src/bench/benchmark.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef SRC_BENCHMARK_BENCHMARK_H_
-#define SRC_BENCHMARK_BENCHMARK_H_
+#ifndef SRC_BENCH_BENCHMARK_H_
+#define SRC_BENCH_BENCHMARK_H_
 
 #include <memory>
 #include <string>
@@ -23,7 +23,7 @@
 #include "src/utils/concat.h"
 #include "tint/tint.h"
 
-namespace tint::benchmark {
+namespace tint::bench {
 
 /// Error indicates an operation did not complete successfully.
 struct Error {
@@ -71,6 +71,6 @@
   TINT_BENCHMARK_WGSL_PROGRAM(FUNC, "skinned-shadowed-pbr-fragment.wgsl"); \
   TINT_BENCHMARK_WGSL_PROGRAM(FUNC, "skinned-shadowed-pbr-vertex.wgsl");
 
-}  // namespace tint::benchmark
+}  // namespace tint::bench
 
-#endif  // SRC_BENCHMARK_BENCHMARK_H_
+#endif  // SRC_BENCH_BENCHMARK_H_
diff --git a/src/reader/wgsl/parser_bench.cc b/src/reader/wgsl/parser_bench.cc
index 95fa446..e47e38b 100644
--- a/src/reader/wgsl/parser_bench.cc
+++ b/src/reader/wgsl/parser_bench.cc
@@ -14,14 +14,14 @@
 
 #include <string>
 
-#include "src/benchmark/benchmark.h"
+#include "src/bench/benchmark.h"
 
 namespace tint::reader::wgsl {
 namespace {
 
-void ParseWGSL(::benchmark::State& state, std::string input_name) {
-  auto res = benchmark::LoadInputFile(input_name);
-  if (auto err = std::get_if<benchmark::Error>(&res)) {
+void ParseWGSL(benchmark::State& state, std::string input_name) {
+  auto res = bench::LoadInputFile(input_name);
+  if (auto err = std::get_if<bench::Error>(&res)) {
     state.SkipWithError(err->msg.c_str());
     return;
   }
diff --git a/src/writer/glsl/generator_bench.cc b/src/writer/glsl/generator_bench.cc
index 2ac109f..551bd5c 100644
--- a/src/writer/glsl/generator_bench.cc
+++ b/src/writer/glsl/generator_bench.cc
@@ -15,18 +15,18 @@
 #include <string>
 
 #include "src/ast/module.h"
-#include "src/benchmark/benchmark.h"
+#include "src/bench/benchmark.h"
 
 namespace tint::writer::glsl {
 namespace {
 
-void GenerateGLSL(::benchmark::State& state, std::string input_name) {
-  auto res = benchmark::LoadProgram(input_name);
-  if (auto err = std::get_if<benchmark::Error>(&res)) {
+void GenerateGLSL(benchmark::State& state, std::string input_name) {
+  auto res = bench::LoadProgram(input_name);
+  if (auto err = std::get_if<bench::Error>(&res)) {
     state.SkipWithError(err->msg.c_str());
     return;
   }
-  auto& program = std::get<benchmark::ProgramAndFile>(res).program;
+  auto& program = std::get<bench::ProgramAndFile>(res).program;
   std::vector<std::string> entry_points;
   for (auto& fn : program.AST().Functions()) {
     if (fn->IsEntryPoint()) {
diff --git a/src/writer/hlsl/generator_bench.cc b/src/writer/hlsl/generator_bench.cc
index e9168af..159105d 100644
--- a/src/writer/hlsl/generator_bench.cc
+++ b/src/writer/hlsl/generator_bench.cc
@@ -14,18 +14,18 @@
 
 #include <string>
 
-#include "src/benchmark/benchmark.h"
+#include "src/bench/benchmark.h"
 
 namespace tint::writer::hlsl {
 namespace {
 
-void GenerateHLSL(::benchmark::State& state, std::string input_name) {
-  auto res = benchmark::LoadProgram(input_name);
-  if (auto err = std::get_if<benchmark::Error>(&res)) {
+void GenerateHLSL(benchmark::State& state, std::string input_name) {
+  auto res = bench::LoadProgram(input_name);
+  if (auto err = std::get_if<bench::Error>(&res)) {
     state.SkipWithError(err->msg.c_str());
     return;
   }
-  auto& program = std::get<benchmark::ProgramAndFile>(res).program;
+  auto& program = std::get<bench::ProgramAndFile>(res).program;
   for (auto _ : state) {
     auto res = Generate(&program, {});
     if (!res.error.empty()) {
diff --git a/src/writer/msl/generator_bench.cc b/src/writer/msl/generator_bench.cc
index d2b53df..fb9fee6 100644
--- a/src/writer/msl/generator_bench.cc
+++ b/src/writer/msl/generator_bench.cc
@@ -14,18 +14,18 @@
 
 #include <string>
 
-#include "src/benchmark/benchmark.h"
+#include "src/bench/benchmark.h"
 
 namespace tint::writer::msl {
 namespace {
 
-void GenerateMSL(::benchmark::State& state, std::string input_name) {
-  auto res = benchmark::LoadProgram(input_name);
-  if (auto err = std::get_if<benchmark::Error>(&res)) {
+void GenerateMSL(benchmark::State& state, std::string input_name) {
+  auto res = bench::LoadProgram(input_name);
+  if (auto err = std::get_if<bench::Error>(&res)) {
     state.SkipWithError(err->msg.c_str());
     return;
   }
-  auto& program = std::get<benchmark::ProgramAndFile>(res).program;
+  auto& program = std::get<bench::ProgramAndFile>(res).program;
   for (auto _ : state) {
     auto res = Generate(&program, {});
     if (!res.error.empty()) {
diff --git a/src/writer/spirv/generator_bench.cc b/src/writer/spirv/generator_bench.cc
index fb937d1..1f9ebde 100644
--- a/src/writer/spirv/generator_bench.cc
+++ b/src/writer/spirv/generator_bench.cc
@@ -14,18 +14,18 @@
 
 #include <string>
 
-#include "src/benchmark/benchmark.h"
+#include "src/bench/benchmark.h"
 
 namespace tint::writer::spirv {
 namespace {
 
-void GenerateSPIRV(::benchmark::State& state, std::string input_name) {
-  auto res = benchmark::LoadProgram(input_name);
-  if (auto err = std::get_if<benchmark::Error>(&res)) {
+void GenerateSPIRV(benchmark::State& state, std::string input_name) {
+  auto res = bench::LoadProgram(input_name);
+  if (auto err = std::get_if<bench::Error>(&res)) {
     state.SkipWithError(err->msg.c_str());
     return;
   }
-  auto& program = std::get<benchmark::ProgramAndFile>(res).program;
+  auto& program = std::get<bench::ProgramAndFile>(res).program;
   for (auto _ : state) {
     auto res = Generate(&program, {});
     if (!res.error.empty()) {
diff --git a/src/writer/wgsl/generator_bench.cc b/src/writer/wgsl/generator_bench.cc
index 524d9cf..b070ecc 100644
--- a/src/writer/wgsl/generator_bench.cc
+++ b/src/writer/wgsl/generator_bench.cc
@@ -14,18 +14,18 @@
 
 #include <string>
 
-#include "src/benchmark/benchmark.h"
+#include "src/bench/benchmark.h"
 
 namespace tint::writer::wgsl {
 namespace {
 
-void GenerateWGSL(::benchmark::State& state, std::string input_name) {
-  auto res = benchmark::LoadProgram(input_name);
-  if (auto err = std::get_if<benchmark::Error>(&res)) {
+void GenerateWGSL(benchmark::State& state, std::string input_name) {
+  auto res = bench::LoadProgram(input_name);
+  if (auto err = std::get_if<bench::Error>(&res)) {
     state.SkipWithError(err->msg.c_str());
     return;
   }
-  auto& program = std::get<benchmark::ProgramAndFile>(res).program;
+  auto& program = std::get<bench::ProgramAndFile>(res).program;
   for (auto _ : state) {
     auto res = Generate(&program, {});
     if (!res.error.empty()) {