Remove tint::Namer
Replaced with tint::transform::Rename and was never used. Bug: tint:273 Change-Id: Icf0b19b389377f3c9a6efcf3ca232ba294775f9b Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/43981 Auto-Submit: Ben Clayton <bclayton@google.com> Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
This commit is contained in:
parent
798876e7eb
commit
d1781fd0af
3
BUILD.gn
3
BUILD.gn
|
@ -371,8 +371,6 @@ source_set("libtint_core_src") {
|
||||||
"src/inspector/scalar.h",
|
"src/inspector/scalar.h",
|
||||||
"src/intrinsic_table.cc",
|
"src/intrinsic_table.cc",
|
||||||
"src/intrinsic_table.h",
|
"src/intrinsic_table.h",
|
||||||
"src/namer.cc",
|
|
||||||
"src/namer.h",
|
|
||||||
"src/program.cc",
|
"src/program.cc",
|
||||||
"src/program.h",
|
"src/program.h",
|
||||||
"src/program_builder.cc",
|
"src/program_builder.cc",
|
||||||
|
@ -844,7 +842,6 @@ source_set("tint_unittests_core_src") {
|
||||||
"src/diagnostic/printer_test.cc",
|
"src/diagnostic/printer_test.cc",
|
||||||
"src/inspector/inspector_test.cc",
|
"src/inspector/inspector_test.cc",
|
||||||
"src/intrinsic_table_test.cc",
|
"src/intrinsic_table_test.cc",
|
||||||
"src/namer_test.cc",
|
|
||||||
"src/program_builder_test.cc",
|
"src/program_builder_test.cc",
|
||||||
"src/program_test.cc",
|
"src/program_test.cc",
|
||||||
"src/scope_stack_test.cc",
|
"src/scope_stack_test.cc",
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include "src/demangler.h"
|
#include "src/demangler.h"
|
||||||
#include "src/diagnostic/printer.h"
|
#include "src/diagnostic/printer.h"
|
||||||
#include "src/inspector/inspector.h"
|
#include "src/inspector/inspector.h"
|
||||||
#include "src/namer.h"
|
|
||||||
#include "src/reader/reader.h"
|
#include "src/reader/reader.h"
|
||||||
#include "src/transform/bound_array_accessors.h"
|
#include "src/transform/bound_array_accessors.h"
|
||||||
#include "src/transform/emit_vertex_point_size.h"
|
#include "src/transform/emit_vertex_point_size.h"
|
||||||
|
|
|
@ -185,8 +185,6 @@ set(TINT_LIB_SRCS
|
||||||
inspector/inspector.h
|
inspector/inspector.h
|
||||||
inspector/scalar.cc
|
inspector/scalar.cc
|
||||||
inspector/scalar.h
|
inspector/scalar.h
|
||||||
namer.cc
|
|
||||||
namer.h
|
|
||||||
program_builder.cc
|
program_builder.cc
|
||||||
program_builder.h
|
program_builder.h
|
||||||
program.cc
|
program.cc
|
||||||
|
@ -473,7 +471,6 @@ if(${TINT_BUILD_TESTS})
|
||||||
diagnostic/printer_test.cc
|
diagnostic/printer_test.cc
|
||||||
inspector/inspector_test.cc
|
inspector/inspector_test.cc
|
||||||
intrinsic_table_test.cc
|
intrinsic_table_test.cc
|
||||||
namer_test.cc
|
|
||||||
program_test.cc
|
program_test.cc
|
||||||
scope_stack_test.cc
|
scope_stack_test.cc
|
||||||
symbol_table_test.cc
|
symbol_table_test.cc
|
||||||
|
|
61
src/namer.cc
61
src/namer.cc
|
@ -1,61 +0,0 @@
|
||||||
// Copyright 2020 The Tint Authors.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#include "src/namer.h"
|
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
#include <iomanip>
|
|
||||||
#include <sstream>
|
|
||||||
|
|
||||||
#include "src/symbol.h"
|
|
||||||
|
|
||||||
namespace tint {
|
|
||||||
|
|
||||||
Namer::Namer(SymbolTable* symbols) : symbols_(symbols) {}
|
|
||||||
|
|
||||||
Namer::~Namer() = default;
|
|
||||||
|
|
||||||
bool Namer::IsUsed(const std::string& name) {
|
|
||||||
auto it = used_.find(name);
|
|
||||||
return it != used_.end();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string Namer::GenerateName(const std::string& prefix) {
|
|
||||||
std::string name = prefix;
|
|
||||||
uint32_t i = 0;
|
|
||||||
while (IsUsed(name)) {
|
|
||||||
name = prefix + "_" + std::to_string(i);
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
used_.insert(name);
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
MangleNamer::MangleNamer(SymbolTable* symbols) : Namer(symbols) {}
|
|
||||||
|
|
||||||
MangleNamer::~MangleNamer() = default;
|
|
||||||
|
|
||||||
std::string MangleNamer::NameFor(const Symbol& sym) {
|
|
||||||
return sym.to_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
UnsafeNamer::UnsafeNamer(SymbolTable* symbols) : Namer(symbols) {}
|
|
||||||
|
|
||||||
UnsafeNamer::~UnsafeNamer() = default;
|
|
||||||
|
|
||||||
std::string UnsafeNamer::NameFor(const Symbol& sym) {
|
|
||||||
return symbols_->NameFor(sym);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace tint
|
|
93
src/namer.h
93
src/namer.h
|
@ -1,93 +0,0 @@
|
||||||
// Copyright 2020 The Tint Authors.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#ifndef SRC_NAMER_H_
|
|
||||||
#define SRC_NAMER_H_
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <unordered_map>
|
|
||||||
#include <unordered_set>
|
|
||||||
|
|
||||||
#include "src/symbol_table.h"
|
|
||||||
|
|
||||||
namespace tint {
|
|
||||||
|
|
||||||
/// Base class for the namers.
|
|
||||||
class Namer {
|
|
||||||
public:
|
|
||||||
/// Constructor
|
|
||||||
/// @param symbols the symbol table this namer works with
|
|
||||||
explicit Namer(SymbolTable* symbols);
|
|
||||||
/// Destructor
|
|
||||||
virtual ~Namer();
|
|
||||||
|
|
||||||
/// Returns the name for `sym`
|
|
||||||
/// @param sym the symbol to retrieve the name for
|
|
||||||
/// @returns the sanitized version of `name` or "" if not found
|
|
||||||
virtual std::string NameFor(const Symbol& sym) = 0;
|
|
||||||
|
|
||||||
/// Generates a unique name for `prefix`
|
|
||||||
/// @param prefix the prefix name
|
|
||||||
/// @returns the unique name string
|
|
||||||
std::string GenerateName(const std::string& prefix);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
/// Checks if `name` has been used
|
|
||||||
/// @param name the name to check
|
|
||||||
/// @returns true if `name` has already been used
|
|
||||||
bool IsUsed(const std::string& name);
|
|
||||||
|
|
||||||
/// The symbol table
|
|
||||||
SymbolTable* symbols_ = nullptr;
|
|
||||||
|
|
||||||
private:
|
|
||||||
// The list of names taken by the remapper
|
|
||||||
std::unordered_set<std::string> used_;
|
|
||||||
};
|
|
||||||
|
|
||||||
/// A namer class which mangles the name
|
|
||||||
class MangleNamer : public Namer {
|
|
||||||
public:
|
|
||||||
/// Constructor
|
|
||||||
/// @param symbols the symbol table this namer works with
|
|
||||||
explicit MangleNamer(SymbolTable* symbols);
|
|
||||||
/// Destructor
|
|
||||||
~MangleNamer() override;
|
|
||||||
|
|
||||||
/// Returns a mangled name for `sym`
|
|
||||||
/// @param sym the symbol to name
|
|
||||||
/// @returns the name for `sym` or "" if not found
|
|
||||||
std::string NameFor(const Symbol& sym) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
/// A namer which returns the user provided name. This is unsafe in general as
|
|
||||||
/// it passes user provided data through to the backend compiler. It is useful
|
|
||||||
/// for development and debugging.
|
|
||||||
class UnsafeNamer : public Namer {
|
|
||||||
public:
|
|
||||||
/// Constructor
|
|
||||||
/// @param symbols the symbol table this namer works with
|
|
||||||
explicit UnsafeNamer(SymbolTable* symbols);
|
|
||||||
/// Destructor
|
|
||||||
~UnsafeNamer() override;
|
|
||||||
|
|
||||||
/// Returns `name`
|
|
||||||
/// @param sym the symbol
|
|
||||||
/// @returns `name` or "" if not found
|
|
||||||
std::string NameFor(const Symbol& sym) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace tint
|
|
||||||
|
|
||||||
#endif // SRC_NAMER_H_
|
|
|
@ -1,64 +0,0 @@
|
||||||
// Copyright 2020 The Tint Authors.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#include "src/namer.h"
|
|
||||||
|
|
||||||
#include "gtest/gtest.h"
|
|
||||||
#include "src/symbol_table.h"
|
|
||||||
|
|
||||||
namespace tint {
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
using NamerTest = testing::Test;
|
|
||||||
|
|
||||||
TEST_F(NamerTest, GenerateName) {
|
|
||||||
SymbolTable t;
|
|
||||||
MangleNamer n(&t);
|
|
||||||
EXPECT_EQ("name", n.GenerateName("name"));
|
|
||||||
EXPECT_EQ("name_0", n.GenerateName("name"));
|
|
||||||
EXPECT_EQ("name_1", n.GenerateName("name"));
|
|
||||||
}
|
|
||||||
|
|
||||||
using MangleNamerTest = testing::Test;
|
|
||||||
|
|
||||||
TEST_F(MangleNamerTest, ReturnsName) {
|
|
||||||
SymbolTable t;
|
|
||||||
auto s = t.Register("my_sym");
|
|
||||||
|
|
||||||
MangleNamer n(&t);
|
|
||||||
EXPECT_EQ("tint_symbol_1", n.NameFor(s));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(MangleNamerTest, ReturnsSameValueForSameName) {
|
|
||||||
SymbolTable t;
|
|
||||||
auto s1 = t.Register("my_sym");
|
|
||||||
auto s2 = t.Register("my_sym2");
|
|
||||||
|
|
||||||
MangleNamer n(&t);
|
|
||||||
EXPECT_EQ("tint_symbol_1", n.NameFor(s1));
|
|
||||||
EXPECT_EQ("tint_symbol_2", n.NameFor(s2));
|
|
||||||
EXPECT_EQ("tint_symbol_1", n.NameFor(s1));
|
|
||||||
}
|
|
||||||
|
|
||||||
using UnsafeNamerTest = testing::Test;
|
|
||||||
TEST_F(UnsafeNamerTest, ReturnsName) {
|
|
||||||
SymbolTable t;
|
|
||||||
auto s = t.Register("my_sym");
|
|
||||||
|
|
||||||
UnsafeNamer n(&t);
|
|
||||||
EXPECT_EQ("my_sym", n.NameFor(s));
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
} // namespace tint
|
|
Loading…
Reference in New Issue