Remove HLSL override generation
This CL removes the override emission from the HLSL backend. The
override should be removed by the substitute_override transform
before making it to the backend.
Bug: tint:1155
Change-Id: I6fecf47a5f5616a81281b179853e0f00ba31011f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/101663
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc
index b05db3e..802c5a7 100644
--- a/src/tint/writer/hlsl/generator_impl.cc
+++ b/src/tint/writer/hlsl/generator_impl.cc
@@ -2846,7 +2846,12 @@
}
}
},
- [&](const ast::Override* override) { return EmitOverride(override); },
+ [&](const ast::Override*) {
+ // Override is removed with SubstituteOverride
+ TINT_ICE(Writer, diagnostics_)
+ << "Override should have been removed by the substitute_override transform.";
+ return false;
+ },
[&](const ast::Const*) {
return true; // Constants are embedded at their use
},
@@ -4092,36 +4097,6 @@
return true;
}
-bool GeneratorImpl::EmitOverride(const ast::Override* override) {
- auto* sem = builder_.Sem().Get(override);
- auto* type = sem->Type();
-
- auto override_id = sem->OverrideId();
-
- line() << "#ifndef " << kSpecConstantPrefix << override_id.value;
-
- if (override->constructor != nullptr) {
- auto out = line();
- out << "#define " << kSpecConstantPrefix << override_id.value << " ";
- if (!EmitExpression(out, override->constructor)) {
- return false;
- }
- } else {
- line() << "#error spec constant required for constant id " << override_id.value;
- }
- line() << "#endif";
- {
- auto out = line();
- out << "static const ";
- if (!EmitTypeAndName(out, type, sem->StorageClass(), sem->Access(),
- builder_.Symbols().NameFor(override->symbol))) {
- return false;
- }
- out << " = " << kSpecConstantPrefix << override_id.value << ";";
- }
- return true;
-}
-
template <typename F>
bool GeneratorImpl::CallBuiltinHelper(std::ostream& out,
const ast::CallExpression* call,