summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-03-09 09:40:57 +0000
committerArne Juul <arnej@verizonmedia.com>2021-03-09 09:46:25 +0000
commit472cb7eead599f16a98d4abede0b902fae31dd32 (patch)
treecc3710bb7f7e5f660eccf0bbd5de462827e20fa4
parente00aebe8d27127316067ec5e43803b697779378c (diff)
check cell types instead of asserting
* cell type may change from input(s) to result (in more cases) in the future. * we will skip these optimizers when cell type changes, just run the generic code instead.
-rw-r--r--eval/src/vespa/eval/instruction/remove_trivial_dimension_optimizer.cpp4
-rw-r--r--eval/src/vespa/eval/instruction/sparse_full_overlap_join_function.cpp2
-rw-r--r--eval/src/vespa/eval/instruction/sparse_no_overlap_join_function.cpp2
3 files changed, 4 insertions, 4 deletions
diff --git a/eval/src/vespa/eval/instruction/remove_trivial_dimension_optimizer.cpp b/eval/src/vespa/eval/instruction/remove_trivial_dimension_optimizer.cpp
index bd0534e1d7d..06c3fb886b5 100644
--- a/eval/src/vespa/eval/instruction/remove_trivial_dimension_optimizer.cpp
+++ b/eval/src/vespa/eval/instruction/remove_trivial_dimension_optimizer.cpp
@@ -30,9 +30,9 @@ RemoveTrivialDimensionOptimizer::optimize(const TensorFunction &expr, Stash &sta
const TensorFunction &child = reduce->child();
if (expr.result_type().has_dimensions() &&
aggr::is_ident(reduce->aggr()) &&
- is_trivial_dim_list(child.result_type(), reduce->dimensions()))
+ is_trivial_dim_list(child.result_type(), reduce->dimensions()) &&
+ (expr.result_type().cell_type() == child.result_type().cell_type()))
{
- assert(expr.result_type().cell_type() == child.result_type().cell_type());
return ReplaceTypeFunction::create_compact(expr.result_type(), child, stash);
}
}
diff --git a/eval/src/vespa/eval/instruction/sparse_full_overlap_join_function.cpp b/eval/src/vespa/eval/instruction/sparse_full_overlap_join_function.cpp
index 85ccfd69871..2072555bb3d 100644
--- a/eval/src/vespa/eval/instruction/sparse_full_overlap_join_function.cpp
+++ b/eval/src/vespa/eval/instruction/sparse_full_overlap_join_function.cpp
@@ -107,12 +107,12 @@ bool
SparseFullOverlapJoinFunction::compatible_types(const ValueType &res, const ValueType &lhs, const ValueType &rhs)
{
if ((lhs.cell_type() == rhs.cell_type()) &&
+ (res.cell_type() == lhs.cell_type()) &&
is_sparse_like(lhs) && is_sparse_like(rhs) &&
(res.count_mapped_dimensions() == lhs.count_mapped_dimensions()) &&
(res.count_mapped_dimensions() == rhs.count_mapped_dimensions()))
{
assert(is_sparse_like(res));
- assert(res.cell_type() == lhs.cell_type());
return true;
}
return false;
diff --git a/eval/src/vespa/eval/instruction/sparse_no_overlap_join_function.cpp b/eval/src/vespa/eval/instruction/sparse_no_overlap_join_function.cpp
index e8e0bc212e0..9c82b1f7bcd 100644
--- a/eval/src/vespa/eval/instruction/sparse_no_overlap_join_function.cpp
+++ b/eval/src/vespa/eval/instruction/sparse_no_overlap_join_function.cpp
@@ -113,11 +113,11 @@ bool
SparseNoOverlapJoinFunction::compatible_types(const ValueType &res, const ValueType &lhs, const ValueType &rhs)
{
if ((lhs.cell_type() == rhs.cell_type()) &&
+ (res.cell_type() == lhs.cell_type()) &&
is_sparse_like(lhs) && is_sparse_like(rhs) &&
(res.count_mapped_dimensions() == (lhs.count_mapped_dimensions() + rhs.count_mapped_dimensions())))
{
assert(is_sparse_like(res));
- assert(res.cell_type() == lhs.cell_type());
return true;
}
return false;