[ir] Remove the `clamp_function` robustness config.
The `clamp_function` flag is never set to false, remove it and just set
it to true unconditionally in the clamp function.
Change-Id: I7ea98dd126519f1d82a84f48d709dd85d4dff624
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/273134
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/lang/core/ir/transform/robustness.cc b/src/tint/lang/core/ir/transform/robustness.cc
index 3a1be3e..cacaa2e 100644
--- a/src/tint/lang/core/ir/transform/robustness.cc
+++ b/src/tint/lang/core/ir/transform/robustness.cc
@@ -166,7 +166,7 @@
TINT_IR_ASSERT(ir, ptr);
switch (ptr->AddressSpace()) {
case AddressSpace::kFunction:
- return config.clamp_function;
+ return true;
case AddressSpace::kPrivate:
return config.clamp_private;
case AddressSpace::kImmediate:
diff --git a/src/tint/lang/core/ir/transform/robustness.h b/src/tint/lang/core/ir/transform/robustness.h
index 8cea51c..8ccfd7e 100644
--- a/src/tint/lang/core/ir/transform/robustness.h
+++ b/src/tint/lang/core/ir/transform/robustness.h
@@ -57,8 +57,6 @@
/// Should texture accesses be clamped?
bool clamp_texture = true;
- /// Should accesses to pointers with the 'function' address space be clamped?
- bool clamp_function = true;
/// Should accesses to pointers with the 'private' address space be clamped?
bool clamp_private = true;
/// Should accesses to pointers with the 'immediate' address space be clamped?
@@ -87,7 +85,6 @@
TINT_REFLECT(RobustnessConfig,
clamp_value,
clamp_texture,
- clamp_function,
clamp_private,
clamp_immediate_data,
clamp_storage,
diff --git a/src/tint/lang/core/ir/transform/robustness_test.cc b/src/tint/lang/core/ir/transform/robustness_test.cc
index 8390db5..2f6f8fd 100644
--- a/src/tint/lang/core/ir/transform/robustness_test.cc
+++ b/src/tint/lang/core/ir/transform/robustness_test.cc
@@ -48,6 +48,8 @@
using namespace tint::core::fluent_types; // NOLINT
using namespace tint::core::number_suffixes; // NOLINT
+using IR_RobustnessDefaultTest = TransformTest;
+
// Tests for non-binding variables
using IR_RobustnessTest = TransformTestWithParam<bool>;
@@ -70,7 +72,7 @@
// Test signed vs unsigned indices.
////////////////////////////////////////////////////////////////
-TEST_P(IR_RobustnessTest, VectorLoad_ConstIndexViaLet) {
+TEST_F(IR_RobustnessDefaultTest, VectorLoad_ConstIndexViaLet) {
auto* func = b.Function("foo", ty.u32());
b.Append(func->Block(), [&] {
auto* vec = b.Var("vec", ty.ptr(function, ty.vec4<u32>()));
@@ -104,13 +106,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, VectorLoad_DynamicIndex) {
+TEST_F(IR_RobustnessDefaultTest, VectorLoad_DynamicIndex) {
auto* func = b.Function("foo", ty.u32());
auto* idx = b.FunctionParam("idx", ty.u32());
func->SetParams({idx});
@@ -143,13 +144,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, VectorLoad_DynamicIndex_Signed) {
+TEST_F(IR_RobustnessDefaultTest, VectorLoad_DynamicIndex_Signed) {
auto* func = b.Function("foo", ty.u32());
auto* idx = b.FunctionParam("idx", ty.i32());
func->SetParams({idx});
@@ -183,13 +183,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, VectorStore_ConstIndexViaLet) {
+TEST_F(IR_RobustnessDefaultTest, VectorStore_ConstIndexViaLet) {
auto* func = b.Function("foo", ty.void_());
b.Append(func->Block(), [&] {
auto* vec = b.Var("vec", ty.ptr(function, ty.vec4<u32>()));
@@ -223,13 +222,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, VectorStore_DynamicIndex) {
+TEST_F(IR_RobustnessDefaultTest, VectorStore_DynamicIndex) {
auto* func = b.Function("foo", ty.void_());
auto* idx = b.FunctionParam("idx", ty.u32());
func->SetParams({idx});
@@ -262,13 +260,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, VectorStore_DynamicIndex_Signed) {
+TEST_F(IR_RobustnessDefaultTest, VectorStore_DynamicIndex_Signed) {
auto* func = b.Function("foo", ty.void_());
auto* idx = b.FunctionParam("idx", ty.i32());
func->SetParams({idx});
@@ -302,13 +299,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, Matrix_ConstIndex) {
+TEST_F(IR_RobustnessDefaultTest, Matrix_ConstIndex) {
auto* func = b.Function("foo", ty.vec4<f32>());
b.Append(func->Block(), [&] {
auto* mat = b.Var("mat", ty.ptr(function, ty.mat4x4<f32>()));
@@ -332,13 +328,12 @@
auto* expect = src;
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, Matrix_ConstIndexViaLet) {
+TEST_F(IR_RobustnessDefaultTest, Matrix_ConstIndexViaLet) {
auto* func = b.Function("foo", ty.vec4<f32>());
b.Append(func->Block(), [&] {
auto* mat = b.Var("mat", ty.ptr(function, ty.mat4x4<f32>()));
@@ -375,13 +370,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, Matrix_DynamicIndex) {
+TEST_F(IR_RobustnessDefaultTest, Matrix_DynamicIndex) {
auto* func = b.Function("foo", ty.vec4<f32>());
auto* idx = b.FunctionParam("idx", ty.u32());
func->SetParams({idx});
@@ -417,13 +411,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, Matrix_DynamicIndex_Signed) {
+TEST_F(IR_RobustnessDefaultTest, Matrix_DynamicIndex_Signed) {
auto* func = b.Function("foo", ty.vec4<f32>());
auto* idx = b.FunctionParam("idx", ty.i32());
func->SetParams({idx});
@@ -460,13 +453,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, Array_ConstSize_ConstIndex) {
+TEST_F(IR_RobustnessDefaultTest, Array_ConstSize_ConstIndex) {
auto* func = b.Function("foo", ty.u32());
b.Append(func->Block(), [&] {
auto* arr = b.Var("arr", ty.ptr(function, ty.array<u32, 4>()));
@@ -490,13 +482,12 @@
auto* expect = src;
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, Array_ConstSize_ConstIndexViaLet) {
+TEST_F(IR_RobustnessDefaultTest, Array_ConstSize_ConstIndexViaLet) {
auto* func = b.Function("foo", ty.u32());
b.Append(func->Block(), [&] {
auto* arr = b.Var("arr", ty.ptr(function, ty.array<u32, 4>()));
@@ -533,13 +524,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, Array_ConstSize_DynamicIndex) {
+TEST_F(IR_RobustnessDefaultTest, Array_ConstSize_DynamicIndex) {
auto* func = b.Function("foo", ty.u32());
auto* idx = b.FunctionParam("idx", ty.u32());
func->SetParams({idx});
@@ -575,13 +565,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, Array_ConstSize_DynamicIndex_Signed) {
+TEST_F(IR_RobustnessDefaultTest, Array_ConstSize_DynamicIndex_Signed) {
auto* func = b.Function("foo", ty.u32());
auto* idx = b.FunctionParam("idx", ty.i32());
func->SetParams({idx});
@@ -618,13 +607,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, NestedArrays) {
+TEST_F(IR_RobustnessDefaultTest, NestedArrays) {
auto* func = b.Function("foo", ty.u32());
auto* idx1 = b.FunctionParam("idx1", ty.u32());
auto* idx2 = b.FunctionParam("idx2", ty.u32());
@@ -667,13 +655,12 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
-TEST_P(IR_RobustnessTest, NestedMixedTypes) {
+TEST_F(IR_RobustnessDefaultTest, NestedMixedTypes) {
auto* structure = ty.Struct(mod.symbols.Register("structure"),
{
{mod.symbols.Register("arr"), ty.array(ty.mat3x4<f32>(), 4)},
@@ -726,10 +713,9 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = GetParam();
Run(Robustness, cfg);
- EXPECT_EQ(GetParam() ? expect : src, str());
+ EXPECT_EQ(expect, str());
}
////////////////////////////////////////////////////////////////
@@ -5504,7 +5490,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -5582,7 +5567,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -5661,7 +5645,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -5693,7 +5676,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -5789,7 +5771,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -5869,7 +5850,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -5947,7 +5927,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6026,7 +6005,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6107,7 +6085,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6140,7 +6117,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6227,7 +6203,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.clamp_storage = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6304,7 +6279,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6380,7 +6354,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6457,7 +6430,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6487,7 +6459,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6565,7 +6536,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6641,7 +6611,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6717,7 +6686,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6794,7 +6762,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6824,7 +6791,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);
@@ -6902,7 +6868,6 @@
)";
RobustnessConfig cfg;
- cfg.clamp_function = true;
cfg.use_integer_range_analysis = true;
Run(Robustness, cfg);