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()) {