[tint][lang] Standardise lower / raise namespaces
These were inconsistent between languages. This CL applies the following rules:
* Lower transforms are declared in the tint::<lang>::reader::lower namespace.
* Raise transforms are declared in the tint::<lang>::writer::raise namespace.
To avoid pointless repetition:
* The main Lower() function is declared in the tint::<lang>::reader namespace.
* The main Raise() function is declared in the tint::<lang>::writer namespace.
Change-Id: I6931e50c9868219950af63c54a248a79f6b9c0dc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/168227
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/lang/glsl/writer/printer/helper_test.h b/src/tint/lang/glsl/writer/printer/helper_test.h
index f6b31dd..a720241 100644
--- a/src/tint/lang/glsl/writer/printer/helper_test.h
+++ b/src/tint/lang/glsl/writer/printer/helper_test.h
@@ -62,7 +62,7 @@
/// Run the writer on the IR module and validate the result.
/// @returns true if generation and validation succeeded
bool Generate() {
- if (auto raised = raise::Raise(mod); raised != Success) {
+ if (auto raised = Raise(mod); raised != Success) {
err_ = raised.Failure().reason.str();
return false;
}
diff --git a/src/tint/lang/glsl/writer/raise/raise.cc b/src/tint/lang/glsl/writer/raise/raise.cc
index 33c17e9..1985ec7 100644
--- a/src/tint/lang/glsl/writer/raise/raise.cc
+++ b/src/tint/lang/glsl/writer/raise/raise.cc
@@ -27,7 +27,7 @@
#include "src/tint/lang/glsl/writer/raise/raise.h"
-namespace tint::glsl::raise {
+namespace tint::glsl::writer {
Result<SuccessType> Raise(core::ir::Module&) {
// #define RUN_TRANSFORM(name)
@@ -41,4 +41,4 @@
return Success;
}
-} // namespace tint::glsl::raise
+} // namespace tint::glsl::writer
diff --git a/src/tint/lang/glsl/writer/raise/raise.h b/src/tint/lang/glsl/writer/raise/raise.h
index 2ff1489..846790d 100644
--- a/src/tint/lang/glsl/writer/raise/raise.h
+++ b/src/tint/lang/glsl/writer/raise/raise.h
@@ -35,13 +35,13 @@
class Module;
} // namespace tint::core::ir
-namespace tint::glsl::raise {
+namespace tint::glsl::writer {
/// Raise a core IR module to the MSL dialect of the IR.
/// @param mod the core IR module to raise to MSL dialect
/// @returns success or failure
Result<SuccessType> Raise(core::ir::Module& mod);
-} // namespace tint::glsl::raise
+} // namespace tint::glsl::writer
#endif // SRC_TINT_LANG_GLSL_WRITER_RAISE_RAISE_H_
diff --git a/src/tint/lang/glsl/writer/writer.cc b/src/tint/lang/glsl/writer/writer.cc
index 1402afe..3f8437d 100644
--- a/src/tint/lang/glsl/writer/writer.cc
+++ b/src/tint/lang/glsl/writer/writer.cc
@@ -40,7 +40,7 @@
Output output;
// Raise from core-dialect to GLSL-dialect.
- if (auto res = raise::Raise(ir); res != Success) {
+ if (auto res = Raise(ir); res != Success) {
return res.Failure();
}
diff --git a/src/tint/lang/msl/writer/printer/helper_test.h b/src/tint/lang/msl/writer/printer/helper_test.h
index b52e60d..410153b 100644
--- a/src/tint/lang/msl/writer/printer/helper_test.h
+++ b/src/tint/lang/msl/writer/printer/helper_test.h
@@ -80,7 +80,7 @@
/// Run the writer on the IR module and validate the result.
/// @returns true if generation and validation succeeded
bool Generate() {
- if (auto raised = raise::Raise(mod, {}); raised != Success) {
+ if (auto raised = Raise(mod, {}); raised != Success) {
err_ = raised.Failure().reason.str();
return false;
}
diff --git a/src/tint/lang/msl/writer/raise/raise.cc b/src/tint/lang/msl/writer/raise/raise.cc
index 7bbe7c1..63591e7 100644
--- a/src/tint/lang/msl/writer/raise/raise.cc
+++ b/src/tint/lang/msl/writer/raise/raise.cc
@@ -43,7 +43,7 @@
#include "src/tint/lang/msl/writer/common/option_helpers.h"
#include "src/tint/lang/msl/writer/raise/builtin_polyfill.h"
-namespace tint::msl::writer::raise {
+namespace tint::msl::writer {
Result<SuccessType> Raise(core::ir::Module& module, const Options& options) {
#define RUN_TRANSFORM(name, ...) \
@@ -103,9 +103,9 @@
RUN_TRANSFORM(core::ir::transform::DemoteToHelper);
RUN_TRANSFORM(core::ir::transform::ValueToLet);
- RUN_TRANSFORM(BuiltinPolyfill);
+ RUN_TRANSFORM(raise::BuiltinPolyfill);
return Success;
}
-} // namespace tint::msl::writer::raise
+} // namespace tint::msl::writer
diff --git a/src/tint/lang/msl/writer/raise/raise.h b/src/tint/lang/msl/writer/raise/raise.h
index 256925d..a4d5895 100644
--- a/src/tint/lang/msl/writer/raise/raise.h
+++ b/src/tint/lang/msl/writer/raise/raise.h
@@ -39,7 +39,7 @@
class Module;
} // namespace tint::core::ir
-namespace tint::msl::writer::raise {
+namespace tint::msl::writer {
/// Raise a core IR module to the MSL dialect of the IR.
/// @param module the core IR module to raise to MSL dialect
@@ -47,6 +47,6 @@
/// @returns success or failure
Result<SuccessType> Raise(core::ir::Module& module, const Options& options);
-} // namespace tint::msl::writer::raise
+} // namespace tint::msl::writer
#endif // SRC_TINT_LANG_MSL_WRITER_RAISE_RAISE_H_
diff --git a/src/tint/lang/msl/writer/writer.cc b/src/tint/lang/msl/writer/writer.cc
index e997959..c0f9d41 100644
--- a/src/tint/lang/msl/writer/writer.cc
+++ b/src/tint/lang/msl/writer/writer.cc
@@ -53,7 +53,7 @@
Output output;
// Raise from core-dialect to MSL-dialect.
- if (auto res = raise::Raise(ir, options); res != Success) {
+ if (auto res = Raise(ir, options); res != Success) {
return res.Failure();
}
diff --git a/src/tint/lang/spirv/writer/common/helper_test.h b/src/tint/lang/spirv/writer/common/helper_test.h
index df4936e..1c08ab9 100644
--- a/src/tint/lang/spirv/writer/common/helper_test.h
+++ b/src/tint/lang/spirv/writer/common/helper_test.h
@@ -115,7 +115,7 @@
/// storage class with OpConstantNull
/// @returns true if generation and validation succeeded
bool Generate(Options options = {}, bool zero_init_workgroup_memory = false) {
- auto raised = raise::Raise(mod, options);
+ auto raised = Raise(mod, options);
if (raised != Success) {
err_ = raised.Failure().reason.str();
return false;
diff --git a/src/tint/lang/spirv/writer/raise/raise.cc b/src/tint/lang/spirv/writer/raise/raise.cc
index bfa4285..6372390 100644
--- a/src/tint/lang/spirv/writer/raise/raise.cc
+++ b/src/tint/lang/spirv/writer/raise/raise.cc
@@ -54,7 +54,7 @@
#include "src/tint/lang/spirv/writer/raise/shader_io.h"
#include "src/tint/lang/spirv/writer/raise/var_for_dynamic_index.h"
-namespace tint::spirv::writer::raise {
+namespace tint::spirv::writer {
Result<SuccessType> Raise(core::ir::Module& module, const Options& options) {
#define RUN_TRANSFORM(name, ...) \
@@ -122,7 +122,7 @@
if (options.pass_matrix_by_pointer) {
// PassMatrixByPointer must come after PreservePadding+DirectVariableAccess.
- RUN_TRANSFORM(PassMatrixByPointer, module);
+ RUN_TRANSFORM(raise::PassMatrixByPointer, module);
}
RUN_TRANSFORM(core::ir::transform::AddEmptyEntryPoint, module);
@@ -138,16 +138,16 @@
// DemoteToHelper must come before any transform that introduces non-core instructions.
RUN_TRANSFORM(core::ir::transform::DemoteToHelper, module);
- RUN_TRANSFORM(BuiltinPolyfill, module);
- RUN_TRANSFORM(ExpandImplicitSplats, module);
- RUN_TRANSFORM(HandleMatrixArithmetic, module);
- RUN_TRANSFORM(MergeReturn, module);
- RUN_TRANSFORM(ShaderIO, module,
- ShaderIOConfig{options.clamp_frag_depth, options.emit_vertex_point_size});
+ RUN_TRANSFORM(raise::BuiltinPolyfill, module);
+ RUN_TRANSFORM(raise::ExpandImplicitSplats, module);
+ RUN_TRANSFORM(raise::HandleMatrixArithmetic, module);
+ RUN_TRANSFORM(raise::MergeReturn, module);
+ RUN_TRANSFORM(raise::ShaderIO, module,
+ raise::ShaderIOConfig{options.clamp_frag_depth, options.emit_vertex_point_size});
RUN_TRANSFORM(core::ir::transform::Std140, module);
- RUN_TRANSFORM(VarForDynamicIndex, module);
+ RUN_TRANSFORM(raise::VarForDynamicIndex, module);
return Success;
}
-} // namespace tint::spirv::writer::raise
+} // namespace tint::spirv::writer
diff --git a/src/tint/lang/spirv/writer/raise/raise.h b/src/tint/lang/spirv/writer/raise/raise.h
index ba6270d..64854f3 100644
--- a/src/tint/lang/spirv/writer/raise/raise.h
+++ b/src/tint/lang/spirv/writer/raise/raise.h
@@ -39,7 +39,7 @@
class Module;
}
-namespace tint::spirv::writer::raise {
+namespace tint::spirv::writer {
/// Raise a core IR module to the SPIR-V dialect of the IR.
/// @param module the core IR module to raise to SPIR-V dialect
@@ -47,6 +47,6 @@
/// @returns success or failure
Result<SuccessType> Raise(core::ir::Module& module, const Options& options);
-} // namespace tint::spirv::writer::raise
+} // namespace tint::spirv::writer
#endif // SRC_TINT_LANG_SPIRV_WRITER_RAISE_RAISE_H_
diff --git a/src/tint/lang/spirv/writer/writer.cc b/src/tint/lang/spirv/writer/writer.cc
index a605c36..88f8233 100644
--- a/src/tint/lang/spirv/writer/writer.cc
+++ b/src/tint/lang/spirv/writer/writer.cc
@@ -54,7 +54,7 @@
Output output;
// Raise from core-dialect to SPIR-V-dialect.
- if (auto res = raise::Raise(ir, options); res != Success) {
+ if (auto res = Raise(ir, options); res != Success) {
return std::move(res.Failure());
}
diff --git a/src/tint/lang/wgsl/reader/lower/lower_test.cc b/src/tint/lang/wgsl/reader/lower/lower_test.cc
index dd05a5d..d8ec462 100644
--- a/src/tint/lang/wgsl/reader/lower/lower_test.cc
+++ b/src/tint/lang/wgsl/reader/lower/lower_test.cc
@@ -33,7 +33,7 @@
#include "src/tint/lang/wgsl/ir/builtin_call.h"
#include "src/tint/lang/wgsl/reader/lower/lower.h"
-namespace tint::wgsl::reader::lower {
+namespace tint::wgsl::reader {
namespace {
using namespace tint::core::fluent_types; // NOLINT
@@ -124,4 +124,4 @@
}
} // namespace
-} // namespace tint::wgsl::reader::lower
+} // namespace tint::wgsl::reader
diff --git a/src/tint/lang/wgsl/writer/raise/raise.cc b/src/tint/lang/wgsl/writer/raise/raise.cc
index 9d69c41..9a64c26 100644
--- a/src/tint/lang/wgsl/writer/raise/raise.cc
+++ b/src/tint/lang/wgsl/writer/raise/raise.cc
@@ -229,7 +229,8 @@
}
}
}
- if (auto result = RenameConflicts(&mod); result != Success) {
+
+ if (auto result = raise::RenameConflicts(mod); result != Success) {
return result.Failure();
}
diff --git a/src/tint/lang/wgsl/writer/raise/rename_conflicts.cc b/src/tint/lang/wgsl/writer/raise/rename_conflicts.cc
index 8ab6b7e..f54efd1 100644
--- a/src/tint/lang/wgsl/writer/raise/rename_conflicts.cc
+++ b/src/tint/lang/wgsl/writer/raise/rename_conflicts.cc
@@ -50,7 +50,7 @@
#include "src/tint/utils/rtti/switch.h"
#include "src/tint/utils/text/string.h"
-namespace tint::wgsl::writer {
+namespace tint::wgsl::writer::raise {
namespace {
@@ -58,7 +58,7 @@
struct State {
/// Constructor
/// @param i the IR module
- explicit State(core::ir::Module* i) : ir(i) {}
+ explicit State(core::ir::Module& i) : ir(i) {}
/// Processes the module, renaming all declarations that would prevent an identifier resolving
/// to the correct declaration.
@@ -69,17 +69,17 @@
RegisterModuleScopeDecls();
// Process the module-scope variable declarations
- for (auto* inst : *ir->root_block) {
+ for (auto* inst : *ir.root_block) {
Process(inst);
}
// Process the functions
- for (core::ir::Function* fn : ir->functions) {
+ for (core::ir::Function* fn : ir.functions) {
scopes.Push(Scope{});
TINT_DEFER(scopes.Pop());
for (auto* param : fn->Params()) {
EnsureResolvable(param->Type());
- if (auto symbol = ir->NameOf(param); symbol.IsValid()) {
+ if (auto symbol = ir.NameOf(param); symbol.IsValid()) {
Declare(scopes.Back(), param, symbol.NameView());
}
}
@@ -93,7 +93,7 @@
using Scope = Hashmap<std::string_view, CastableBase*, 8>;
/// The IR module.
- core::ir::Module* ir = nullptr;
+ core::ir::Module& ir;
/// Stack of scopes
Vector<Scope, 8> scopes{};
@@ -102,7 +102,7 @@
/// Duplicate declarations with the same name will renamed.
void RegisterModuleScopeDecls() {
// Declare all the user types
- for (auto* ty : ir->Types()) {
+ for (auto* ty : ir.Types()) {
if (auto* str = ty->As<core::type::Struct>()) {
auto name = str->Name().NameView();
if (!IsBuiltinStruct(str)) {
@@ -112,17 +112,17 @@
}
// Declare all the module-scope vars
- for (auto* inst : *ir->root_block) {
+ for (auto* inst : *ir.root_block) {
for (auto* result : inst->Results()) {
- if (auto symbol = ir->NameOf(result)) {
+ if (auto symbol = ir.NameOf(result)) {
Declare(scopes.Front(), result, symbol.NameView());
}
}
}
// Declare all the functions
- for (core::ir::Function* fn : ir->functions) {
- if (auto symbol = ir->NameOf(fn); symbol.IsValid()) {
+ for (core::ir::Function* fn : ir.functions) {
+ if (auto symbol = ir.NameOf(fn); symbol.IsValid()) {
Declare(scopes.Back(), fn, symbol.NameView());
}
}
@@ -142,7 +142,7 @@
for (auto* operand : inst->Operands()) {
if (operand) {
// Ensure that named operands can be resolved.
- if (auto symbol = ir->NameOf(operand)) {
+ if (auto symbol = ir.NameOf(operand)) {
EnsureResolvesTo(symbol.NameView(), operand);
}
// If the operand is a constant, then ensure that type name can be resolved.
@@ -195,7 +195,7 @@
// Register new operands and check their types can resolve
for (auto* result : inst->Results()) {
- if (auto symbol = ir->NameOf(result); symbol.IsValid()) {
+ if (auto symbol = ir.NameOf(result); symbol.IsValid()) {
Declare(scopes.Back(), result, symbol.NameView());
}
}
@@ -266,10 +266,10 @@
/// Rename changes the name of @p thing with the old name of @p old_name
void Rename(CastableBase* thing, std::string_view old_name) {
- Symbol new_name = ir->symbols.New(old_name);
+ Symbol new_name = ir.symbols.New(old_name);
Switch(
thing, //
- [&](core::ir::Value* value) { ir->SetName(value, new_name); },
+ [&](core::ir::Value* value) { ir.SetName(value, new_name); },
[&](core::type::Struct* str) { str->SetName(new_name); }, //
TINT_ICE_ON_NO_MATCH);
}
@@ -283,8 +283,8 @@
} // namespace
-Result<SuccessType> RenameConflicts(core::ir::Module* ir) {
- auto result = ValidateAndDumpIfNeeded(*ir, "RenameConflicts transform");
+Result<SuccessType> RenameConflicts(core::ir::Module& ir) {
+ auto result = ValidateAndDumpIfNeeded(ir, "RenameConflicts transform");
if (result != Success) {
return result;
}
@@ -294,4 +294,4 @@
return Success;
}
-} // namespace tint::wgsl::writer
+} // namespace tint::wgsl::writer::raise
diff --git a/src/tint/lang/wgsl/writer/raise/rename_conflicts.h b/src/tint/lang/wgsl/writer/raise/rename_conflicts.h
index 9f5d989..e9c6816 100644
--- a/src/tint/lang/wgsl/writer/raise/rename_conflicts.h
+++ b/src/tint/lang/wgsl/writer/raise/rename_conflicts.h
@@ -38,15 +38,15 @@
class Module;
}
-namespace tint::wgsl::writer {
+namespace tint::wgsl::writer::raise {
/// RenameConflicts is a transform that renames declarations which prevent identifiers from
/// resolving to the correct declaration, and those with identical identifiers declared in the same
/// scope.
/// @param module the module to transform
/// @returns success or failure
-Result<SuccessType> RenameConflicts(core::ir::Module* module);
+Result<SuccessType> RenameConflicts(core::ir::Module& module);
-} // namespace tint::wgsl::writer
+} // namespace tint::wgsl::writer::raise
#endif // SRC_TINT_LANG_WGSL_WRITER_RAISE_RENAME_CONFLICTS_H_
diff --git a/src/tint/lang/wgsl/writer/raise/rename_conflicts_test.cc b/src/tint/lang/wgsl/writer/raise/rename_conflicts_test.cc
index 6facee7..8b28870 100644
--- a/src/tint/lang/wgsl/writer/raise/rename_conflicts_test.cc
+++ b/src/tint/lang/wgsl/writer/raise/rename_conflicts_test.cc
@@ -36,7 +36,7 @@
#include "src/tint/lang/core/ir/validator.h"
#include "src/tint/lang/core/type/matrix.h"
-namespace tint::wgsl::writer {
+namespace tint::wgsl::writer::raise {
namespace {
using namespace tint::core::fluent_types; // NOLINT
@@ -56,7 +56,7 @@
}
// Run the transforms.
- auto result = RenameConflicts(&mod);
+ auto result = RenameConflicts(mod);
EXPECT_EQ(result, Success);
// Validate the output IR.
@@ -1102,4 +1102,4 @@
}
} // namespace
-} // namespace tint::wgsl::writer
+} // namespace tint::wgsl::writer::raise